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; }
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; }
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(); }