예제 #1
0
        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; });
        }
예제 #2
0
 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']");
 }
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }
예제 #5
0
 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);
 }
예제 #6
0
        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();
        }
예제 #7
0
 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);
     }
 }
예제 #8
0
        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();
        }
예제 #9
0
        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']");
        }
예제 #10
0
        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);
            }
        }
예제 #11
0
 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();
         }
     }
 }
예제 #12
0
        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();
            }
        }
예제 #13
0
        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;
                }
            }
        }
예제 #14
0
 public static void Mouse_move(string path)
 {
     ac = new Actions(Bot.driver);
     ac.MoveToElement(Get.Element(path)).Perform();
 }
예제 #15
0
        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;
                    }
                }
            }
        }