static void Update_name() { Navigation.Main_menu("Podgląd"); string nickname = Get.Element("//div[contains(@class,'ellipsis')]").Text; form.Invoke((MethodInvoker) delegate { form.labelName.Text = nickname; }); }
public static void Filter_auction_house(string variable, string category) { if (category == "") { category = "Wszystko"; } Get.Element("//select[@name='itemType']//option[text()='" + category + "']").Click(); Basic.Click_element("//input[@value='Filtr']"); }
public static void Click_element(string path) { Check_events(); IWebElement element = Get.Element(path); ac = new Actions(Bot.driver); ac.MoveToElement(element).Perform(); element.Click(); }
public static void Move_release(string path1, string path2) { IWebElement element1 = Get.Element(path1); IWebElement element2 = Get.Element(path2); ac = new Actions(Bot.driver); ac.ClickAndHold(element1); ac.Release(element2).Perform(); }
public static void Main_menu(string path) { path = "//a[contains(@class,'menuitem')][text() = '" + path + "']"; if (!Get.Element(path).Displayed) { Basic.Click_element("//a[contains(@href,'mod=arena')]"); Basic.Click_element("//a[contains(text(),'Arena')]"); } Basic.Click_element(path); }
public static void Drag_and_drop(string path1, string path2) { Wait_for_element(path1); IWebElement element1 = Get.Element(path1); Wait_for_element(path2); IWebElement element2 = Get.Element(path2); ac = new Actions(Bot.driver); ac.DragAndDrop(element1, element2).Perform(); }
public static void Login() { Bot.driver.Navigate().GoToUrl("https://lobby.gladiatus.gameforge.com/pl_PL/?mod=start&submod=index"); Basic.Click_element("//ul[@class='tabsList']//span[text()='Login']"); Get.Element("//input[@type='email']").SendKeys(Settings.username); Get.Element("//input[@type='password']").SendKeys(Settings.password); Basic.Click_element("//button[@type='submit']"); Basic.Click_element("//span[text()='Ostatnia gra']"); foreach (string title in Bot.driver.WindowHandles) { Bot.driver.SwitchTo().Window(title); } }
public static void Extract_items() { if (!RegistryValues.Read_b("c_extract")) { return; } Get_items(); Navigation.Main_menu("Roztapiarka"); Navigation.Backpack(Settings.b_extract); string inv_draggable = "//div[@id='inv']//div[contains(@class,'ui-draggable')]"; for (int i = 0; i < 6; i++) { if (!Basic.Search_element(inv_draggable)) { break; } string first = "//div[contains(@class,'forge_closed " + Convert.ToString(i) + "')]"; string second = "//div[contains(@class,'forge_finished-succeeded " + Convert.ToString(i) + "')]"; if (Basic.Click_if(first)) { } else if (Basic.Click_if(second)) { Basic.Click_element("//div[contains(text(),'Wyślij jako pakiet')]"); } else { continue; } Basic.Wait_for_element("//div[@class='forge_closed " + Convert.ToString(i) + " tabActive']"); Navigation.Backpack(Settings.b_extract); Basic.Move_release(inv_draggable, "//fieldset[@id='crafting_input']//div[@class='ui-droppable']"); while (!Get.Element("//div[@class='icon_gold']").Displayed) { Thread.Sleep(100); } Basic.Click_element("//div[@class='icon_gold']"); Basic.Wait_for_element("//div[@class='forge_crafting " + Convert.ToString(i) + " tabActive']"); } Store(); }
public static void Filter_packages(string category, string quality) { if (category == "") { category = "Wszystko"; } if (quality == "") { quality = "Normalny"; } try { Convert.ToInt32(category); category = Get.Category_packages(category); } catch { } try { Convert.ToInt32(quality); quality = Get.Quality_pack(quality); } catch { } Get.Element("//select[@name='f']//option[text() = '" + category + "']").Click(); Get.Element("//select[@name='fq']//option[text() = '" + quality + "']").Click(); Basic.Click_element("//input[@value='Filtr']"); }
public static bool Dungeon() { if (Basic.Search_element("//div[@id='cooldown_bar_dungeon']/a[@class='cooldown_bar_link']")) { if (!Get.Element("//div[@id='cooldown_bar_dungeon']/a[@class='cooldown_bar_link']").Displayed) { return(false); } } int points = Convert.ToInt32(Get.Element("//*[@id='dungeonpoints_value_point']").Text); if (!RegistryValues.Read_b("c_dungeon") || points == 0) { return(false); } Basic.Wait_for_element("//div[@id='cooldown_bar_dungeon']/div[@class='cooldown_bar_text']"); Basic.Click_element("//div[@id='cooldown_bar_dungeon']/a[@class='cooldown_bar_link']"); if (Basic.Search_element("//input[@value='normalne']") || Basic.Search_element("//input[@value='zaawansowane']")) { if (Settings.o_dungeon == 1 && Basic.Click_if("input[@value='zaawansowane']")) { } else { Basic.Click_element("//input[@value='normalne']"); } } Basic.Wait_for_element("//span[@class='dungeon_header_open']"); Basic.Click_element("//img[contains(@src,'combatloc.gif')]"); Basic.Wait_for_element("//table[@style='border-spacing:0;']//td[2]"); if (points == 1) { return(true); } else { return(false); } }
static void Sell_on_market() { while (true) { Navigation.Guild_market(); Navigation.Backpack(Settings.b_sell); Basic.Drag_and_drop(xpath2, "//div[@id='market_sell']/div[@class='ui-droppable']"); Get.Element("//select[@id='dauer']//option[@value='3']").Click(); IWebElement element = Get.Element("//input[@name='preis']"); element.Clear(); element.SendKeys(prices[found_it]); Basic.Click_element("//input[@value='Oferta']"); if (!Basic.Search_element("//div[@class='message fail']")) { return; } else { Basic.Wait_for_element("//div[@class='cooldown_bar_text'][text()='Na wyprawę']"); Bot.driver.Navigate().Refresh(); Task.Expedition(); } } }
public static void Buy() { if (!RegistryValues.Read_b("c_pack") || RegistryValues.Read_i("gold_pack") > Get.Gold()) { return; } Read_packages(); while (Get.Gold() > Settings.gold_pack) { Navigation.Guild_market(); if (!Basic.Search_element("//input[@value='Kup']")) { return; } int found_case = 0; int orginal_case = 0; int gold_level = Get.Gold(); for (int i = 0; i < lines.Count(); i++) { if (gold_level - Convert.ToInt32(prices[i]) > 0) { found_case = i; orginal_case = i; break; } } int first_it = Bot.driver.FindElementsByXPath("//input[@value='Kup']").Count; int second_it = Bot.driver.FindElementsByXPath("//input[@value='Anuluj']").Count; int it = first_it + second_it; Item item = new Item(); while (true) { item = new Item { name = classes[found_case], price = prices[found_case], level = levels[found_case], quality = qualities[found_case], amount = amounts[found_case], soulbound = soulbounds[found_case] }; List <IWebElement> elements = new List <IWebElement>(); List <int> positions = new List <int>(); for (int i = 2; i < it + 2; i++) { if (Basic.Search_element("//section[@id='market_table']//tr[position()='" + Convert.ToString(i) + "']/" + "td[@align='center']/input[@value='Kup']")) { elements.Add(Get.Element("//section[@id='market_table']//" + "tr[position()='" + Convert.ToString(i) + "']/td[@style]/div[@style]")); positions.Add(i); } } int found_i = -1; for (int i = 0; i < elements.Count; i++) { if (Compare_elements(elements.ElementAt(i), found_case)) { found_i = positions[i]; found_it = found_case; break; } } if (found_i != -1) { int gold_before = Get.Gold(); Basic.Click_element("//section[@id='market_table']//tr[position()='" + Convert.ToString(found_i) + "']" + "/td[@align='center']/input[@value='Kup']"); if (gold_before - Get.Gold() == Convert.ToInt32(item.price)) { break; } } if (found_case != lines.Count() - 1) { found_case++; } else if (Basic.Search_element("//a[contains(text(),'Następna strona')]") && found_case == lines.Count() - 1) { found_case = orginal_case; Basic.Click_element("//a[contains(text(),'Następna strona')]"); } else if (found_case == lines.Count() - 1) { return; } } Prepare_xpath(item); Navigation.Packages(); Navigation.Filter_packages(categories[found_case], qualities[found_case]); Navigation.Backpack(Settings.b_sell); if (!Take_from_packages()) { return; } Sell_on_market(); } }
public static void Save() { string path = "settings/packages.txt"; if (File.Exists(path)) { File.Delete(path); } Directory.CreateDirectory("settings"); Navigation.Guild_market(); while (true) { int first_it = Bot.driver.FindElementsByXPath("//input[@value='Kup']").Count; int second_it = Bot.driver.FindElementsByXPath("//input[@value='Anuluj']").Count; int it = first_it + second_it; int minimum = 0; bool first_minimum = true; for (int i = 2; i < it + 2; i++) { string price = Get.Element("//section[@id='market_table']//" + "tr[position()='" + Convert.ToString(i) + "']/td[position()='3']").Text.Replace(".", ""); IWebElement element = Get.Element("//section[@id='market_table']//" + "tr[position()='" + Convert.ToString(i) + "']/td[@style]/div[@style]"); string soulbound = element.GetAttribute("data-soulbound-to"); string level = element.GetAttribute("data-level"); string amount = element.GetAttribute("data-amount"); string quality = element.GetAttribute("data-quality"); string category = element.GetAttribute("data-content-type"); string name = Regex.Match(element.GetAttribute("class"), @"item-i-\d{1,2}-\d{1,2}").Value; bool solds = false; if (first_minimum) { minimum = Convert.ToInt32(price); first_minimum = false; } else if (minimum > Convert.ToInt32(price)) { minimum = Convert.ToInt32(price); } ac = new Actions(Bot.driver); ac.MoveToElement(Get.Element("//section[@id='market_table']//tr[position()='" + Convert.ToString(i) + "']/td[@style]/div[@style]")).Perform(); if (Basic.Search_element("//p[contains(text(),'Wskazówka')]")) { solds = true; } string ready_line = "class_name='" + name + "' soulbound='" + soulbound + "' price='" + price + "' category='" + category + "' quality='" + quality + "' level='" + level + "' amount='" + amount + "' sold='" + solds + "'"; File.AppendAllText(path, ready_line + Environment.NewLine); } RegistryValues.SetKey("gold_pack", minimum); if (Basic.Click_if("//a[contains(text(), 'Następna strona')]")) { } else { return; } } }
public static void Mouse_move(string path) { ac = new Actions(Bot.driver); ac.MoveToElement(Get.Element(path)).Perform(); }
static void Get_items() { Navigation.Main_menu("Roztapiarka"); Navigation.Backpack(Settings.b_extract); int first_it = Bot.driver.FindElementsByXPath("//div[contains(@class,'forge_closed')]").Count; int second_it = Bot.driver.FindElementsByXPath("//div[contains(@class,'forge_finished-succeeded')]").Count; int third_it = Bot.driver.FindElementsByXPath("//div[@id='inv']//div[contains(@class,'draggable')]").Count; int it = first_it + second_it - third_it; string colour = "Neptun (niebieski)"; if (RegistryValues.Read_b("c_extract_purple")) { colour = "Mars (purpurowy)"; } else if (RegistryValues.Read_b("c_extract_orange")) { colour = "Jupiter (pomarańczowy)"; } else if (RegistryValues.Read_b("c_extract_red")) { colour = "Olimp (czerwony)"; } Navigation.Packages(); Navigation.Filter_packages("", colour); Basic.Click_if("//a[@class='paging_button paging_right_full']"); while (true) { List <IWebElement> elements = Load_items(); if (elements.Count == 0) { if (Basic.Click_if("//a[@class='paging_button paging_left_step']")) { continue; } break; } it = Move_items(elements, it, false); if (it < 0) { return; } Basic.Click_if("//a[@class='paging_button paging_left_step']"); } if (it > 0) { string[] customs = null; if (File.Exists(@"settings/extract.txt")) { customs = File.ReadAllLines(@"settings/extract.txt"); } Navigation.Packages(); Navigation.Backpack(Settings.b_extract); for (int i = 0; i < customs.Length; i++) { IWebElement textbox = Get.Element("//input[@name='qry']"); textbox.SendKeys(OpenQA.Selenium.Keys.Control + "a"); textbox.SendKeys(OpenQA.Selenium.Keys.Delete); textbox.SendKeys(customs[i]); Basic.Click_element("//input[@value='Filtr']"); do { List <IWebElement> elements = Load_items(); if (elements.Count == 0) { break; } it = Move_items(elements, it, false); if (it < 0) { return; } } while (Basic.Click_if("//a[@class='paging_button paging_left_step']")); } } if (it > 0) { Navigation.Packages(); Navigation.Backpack(Settings.b_extract); Basic.Click_if("//a[@class='paging_button paging_right_full']"); while (true) { List <IWebElement> elements = Load_items(); if (elements.Count == 0) { if (Basic.Click_if("//a[@class='paging_button paging_left_step']")) { continue; } break; } it = Move_items(elements, it, true); if (it < 0) { return; } } } }