private bool SendResources(SendResourcesParameters parameters)
 {
     //id=33&r1=&r2=&r3=20000&r4=&dname=&x=-16&y=-93&s1.x=27&s1.y=14&s1=ok
     //id=33&r1=172&r2=206&r3=172&r4=100&dname=&x=-15&y=-93&s1.x=35&s1.y=5&s1=ok
     //<input type="hidden" name="id" value="33">
     //<input type="hidden" name="a" value="83117">
     //<input type="hidden" name="sz" value="47406">
     //<input type="hidden" name="kid" value="395278">
     Random rnd = new Random();
     String button = String.Format(CultureInfo.InvariantCulture,
                                   "&s1.x={0}&s1.y={1}&s1=ok",
                                   rnd.Next(0, 79),
                                   rnd.Next(0, 19));
     StringBuilder resources = new StringBuilder();
     resources.Append("&r1=" + parameters.WoodAmount);
     resources.Append("&r2=" + parameters.ClayAmount);
     resources.Append("&r3=" + parameters.IronAmount);
     resources.Append("&r4=" + parameters.CropAmount);
     String postData = String.Format(CultureInfo.InvariantCulture,
                                     "id=33{0}&dname=&x={1}&y={2}{3}",
                                     resources,
                                     parameters.DestinationVillageX,
                                     parameters.DestinationVillageY,
                                     button);
     string url = String.Format(CultureInfo.InvariantCulture, "{0}?newdid={1}&gid=17", serverInfo.BuildUrl,
                                parameters.SourceVillageId);
     string pageSource = Http.SendData(url, postData, serverInfo.CookieContainer, serverInfo.CookieCollection);
     HtmlParser htmlParser = new HtmlParser(pageSource);
     int sz = htmlParser.ParseMarketPlaceHiddenData();
     if (sz == -1)
     {
         return false;
     }
     //id=33&a=83117&sz=47406&kid=395278&r1=&r2=&r3=20000&r4=&s1.x=24&s1.y=11&s1=ok
     //id=33&a=93284&sz=53492&kid=395279&r1=172&r2=206&r3=172&r4=100&s1.x=26&s1.y=10&s1=ok
     button = String.Format(CultureInfo.InvariantCulture,
                            "&s1.x={0}&s1.y={1}&s1=ok",
                            rnd.Next(0, 79),
                            rnd.Next(0, 19));
     postData = String.Format(CultureInfo.InvariantCulture,
                              "id=33&a={0}&sz={1}&kid={2}{3}{4}",
                              parameters.SourceVillageId,
                              sz,
                              Misc.ConvertXY(parameters.DestinationVillageX, parameters.DestinationVillageY),
                              resources,
                              button);
     Http.SendData(url, postData, serverInfo.CookieContainer, serverInfo.CookieCollection);
     return true;
 }
示例#2
0
 public void AddSendResourcesParameters(SendResourcesParameters sendParameters)
 {
     sendResourcesParameters.Add(sendParameters);
 }
 private bool EnoughResources(SendResourcesParameters parameters)
 {
     string url = String.Format(CultureInfo.InvariantCulture, "{0}?newdid={1}", serverInfo.Dorf1Url,
                                parameters.SourceVillageId);
     string pageSource = Http.SendData(url, null, serverInfo.CookieContainer, serverInfo.CookieCollection);
     HtmlParser htmlParser = new HtmlParser(pageSource);
     Village village = new Village(parameters.SourceVillageId, "noName");
     htmlParser.ParseVillageProduction(village);
     if (village.WoodAvailable < parameters.WoodAmount
         || village.ClayAvailable < parameters.ClayAmount
         || village.IronAvailable < parameters.IronAmount
         || village.CropAvailable < parameters.CropAmount)
     {
         return false;
     }
     return true;
 }
示例#4
0
        public static void ReadAction(ActionList actionList,
            XmlReader xmlReader)
        {
            xmlReader.Read();
            while (xmlReader.NodeType != XmlNodeType.EndElement)
            {
                switch (xmlReader.Name)
                {
                    case "attackAction":
                    {
                        // ReSharper disable UseObjectOrCollectionInitializer
                        ActionParameters actionParameters = new ActionParameters();
                        // ReSharper restore UseObjectOrCollectionInitializer
                        actionParameters.Id = ReadAttribute(xmlReader, "id");
                        actionParameters.Enabled = Int32.Parse(ReadAttribute(xmlReader, "enabled"));
                        actionParameters.CoordinateX = Int32.Parse(ReadAttribute(xmlReader, "coordinateX"));
                        actionParameters.CoordinateY = Int32.Parse(ReadAttribute(xmlReader, "coordinateY"));
                        actionParameters.SendTroopType = Int32.Parse(ReadAttribute(xmlReader, "sendTroopType"));
                        actionParameters.UnitCount = Int32.Parse(ReadAttribute(xmlReader, "unitCount"));
                        actionParameters.UnitId = Int32.Parse(ReadAttribute(xmlReader, "unitId"));
                        actionParameters.UnitName = ReadAttribute(xmlReader, "unitName");
                        actionParameters.VillageId = Int32.Parse(ReadAttribute(xmlReader, "villageId"));
                        actionParameters.Comment = ReadAttribute(xmlReader, "comment");
                        actionParameters.PlayerName = ReadAttribute(xmlReader, "playername");
                        actionParameters.Population = Int32.Parse(ReadAttribute(xmlReader, "population"));
                        actionParameters.VillageName = ReadAttribute(xmlReader, "villagename");
                        actionParameters.Aliance = ReadAttribute(xmlReader, "aliance");
                        Action action = new Action(actionParameters.Id);
                        action.AddActionParameters(actionParameters);
                        actionList.AddAction(actionParameters.Id, action);
                        xmlReader.Read();
                        break;
                    }

                    case "trooSenderAction":
                    {
                        TroopSenderParamaters troopSenderParamaters = new TroopSenderParamaters();
                        troopSenderParamaters.Id = ReadAttribute(xmlReader, "id");
                        troopSenderParamaters.Time = ReadAttribute(xmlReader, "time");
                        troopSenderParamaters.UseKatas = Int32.Parse(ReadAttribute(xmlReader, "useKatas"));
                        troopSenderParamaters.KataDest1 = Int32.Parse(ReadAttribute(xmlReader, "kataDest1"));
                        troopSenderParamaters.KataDest2 = Int32.Parse(ReadAttribute(xmlReader, "kataDest2"));
                        troopSenderParamaters.TroopList = ReadAttribute(xmlReader, "troopList");
                        troopSenderParamaters.DestX = Int32.Parse(ReadAttribute(xmlReader, "destX"));
                        troopSenderParamaters.DestY = Int32.Parse(ReadAttribute(xmlReader, "destY"));
                        troopSenderParamaters.VillageId = Int32.Parse(ReadAttribute(xmlReader, "villageId"));
                        troopSenderParamaters.AttackType = Int32.Parse(ReadAttribute(xmlReader, "attackType"));
                        Action action = new Action(troopSenderParamaters.Id);
                        action.AddTroopSenderParameters(troopSenderParamaters);
                        actionList.AddTroopSenderAction(action);
                        xmlReader.Read();
                        break;
                    }

                    case "fakeAttack":
                    {
                        FakeParamaters fakeParamaters = new FakeParamaters();
                        fakeParamaters.Id = ReadAttribute(xmlReader, "id");
                        fakeParamaters.VillageId = Int32.Parse(ReadAttribute(xmlReader, "villageId"));
                        fakeParamaters.UnitId = Int32.Parse(ReadAttribute(xmlReader, "unitId"));
                        fakeParamaters.UserIdUrl = ReadAttribute(xmlReader, "uid");
                        Action action = new Action(fakeParamaters.Id);
                        action.AddFakeParameters(fakeParamaters);
                        actionList.AddFakeAction(action);
                        xmlReader.Read();
                        break;
                    }

                    case "sendResources":
                    {
                        SendResourcesParameters sendResourcesParameters = new SendResourcesParameters();
                        sendResourcesParameters.Id = ReadAttribute(xmlReader, "id");
                        sendResourcesParameters.Enabled = Int32.Parse(ReadAttribute(xmlReader, "enabled"));
                        sendResourcesParameters.SourceVillageId = Int32.Parse(ReadAttribute(xmlReader, "sourceVillageId"));
                        sendResourcesParameters.DestinationVillageX = Int32.Parse(ReadAttribute(xmlReader, "destX"));
                        sendResourcesParameters.DestinationVillageY = Int32.Parse(ReadAttribute(xmlReader, "destY"));
                        sendResourcesParameters.WoodAmount = Int32.Parse(ReadAttribute(xmlReader, "woodAmount"));
                        sendResourcesParameters.ClayAmount = Int32.Parse(ReadAttribute(xmlReader, "clayAmount"));
                        sendResourcesParameters.IronAmount = Int32.Parse(ReadAttribute(xmlReader, "ironAmount"));
                        sendResourcesParameters.CropAmount = Int32.Parse(ReadAttribute(xmlReader, "cropAmount"));
                        Action action = new Action(sendResourcesParameters.Id);
                        action.AddSendResourcesParameters(sendResourcesParameters);
                        actionList.AddSendResourcesAction(action);
                        xmlReader.Read();
                        break;
                    }

                    default:
                    {
                        throw new NotSupportedException(xmlReader.Name + " not supported");
                    }
                }
            }
            xmlReader.Read();
        }