Get_AvailableEnchants_UpgradeRare() public static method

public static Get_AvailableEnchants_UpgradeRare ( List &Materials ) : double
Materials List
return double
Exemplo n.º 1
0
        public static void DoUpgrade()
        {
            try
            {
                IsUpgrading_Rare = true;
                ActorCommonData CubeStand;

                bool CubeNearby      = Tools.IsCubeNearby(out CubeStand);
                var  UpgradableItems = Tools.Get_Items("rare");

                int Count_AvailableEnchants = (int)Tools.Get_AvailableEnchants_UpgradeRare();

                if (CubeNearby & UpgradableItems.Count > 0 & Count_AvailableEnchants > 0)
                {
                    if (Tools.ClickOnCube(CubeStand))
                    {
                        Stopwatch s1 = new Stopwatch(); /////////
                        s1.Start();                     ///////////
                        int Count_Enchants = 0;

                        //receipe button
                        A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Recipe_Button);
                        Thread.Sleep(5);
                        //press next button 2x for upgrade rare menu
                        A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Page_Next);
                        Thread.Sleep(5);
                        A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Page_Next);
                        Thread.Sleep(5);
                        int numberOfItemsBeforeTrying = UpgradableItems.Count;
                        //var a = UpgradableItems.Where(a => a.);

                        foreach (var item in UpgradableItems)
                        {
                            if (StopConversion)
                            {
                                break;
                            }
                            if (Count_Enchants == Count_AvailableEnchants)
                            {
                                break;
                            }
                            Count_Enchants++;
                            if (Tools.ClickOnCube(CubeStand))
                            {
                                //put item in cube
                                UIRect UIRect_item =
                                    A_Collection.D3UI.InventoryItemUIRectMesh.FirstOrDefault(
                                        x => x.Key.ItemSlotX == item.x118_ItemSlotX && x.Key.ItemSlotY == item.x11C_ItemSlotY).Value;

                                A_Tools.T_D3UI.UIElement.rightClick(UIRect_item);
                                //fill
                                A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Fill_Button);
                                //transmute
                                A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Transmute_Button);
                                Thread.Sleep(Properties.Settings.Default.SleepTransmute);
                                //click next and back to reset
                                A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Page_Next);
                                A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Page_Previous);
                            }
                        }
                        //close all windows
                        int close_timeout = 5;
                        while (Tools.IsKanaisCube_MainPage_Visible())
                        {
                            //A_Tools.InputSimulator.IS_Keyboard.Close_AllWindows(); //doesnt work if not assigned :D
                            //Press "X" - Button in Kanais Cube
                            A_Tools.T_D3UI.UIElement.leftClick(UIElements.Kanai_Cube_Exit_Button);

                            close_timeout--;
                            if (close_timeout == 0)
                            {
                                break;
                            }
                            Thread.Sleep(200);
                        }
                        s1.Stop();                          /////////
                        TimeSpan t1 = s1.Elapsed;           //////
                        Console.WriteLine(t1.TotalSeconds); ////////
                    }
                }
                if (Properties.Settings.Default.RosBotUpgradeKadalaBool)
                {
                    WindowsInput.InputSimulator.SimulateKeyPress(WindowsInput.VirtualKeyCode.F6);
                }
                IsUpgrading_Rare = false;
            }
            catch (Exception)
            {
                IsUpgrading_Rare = false;
            }
        }
Exemplo n.º 2
0
        public static void DoUpgrade()
        {
            try
            {
                IsUpgrading_Rare = true;

                ActorCommonData CubeStand;

                bool CubeNearby = Tools.IsCubeNearby(out CubeStand);

                if (CubeNearby)
                {
                    while (true)
                    {
                        float RX_Cube, RY_Cube;

                        A_Tools.T_World.ToScreenCoordinate(CubeStand.x0D0_WorldPosX, CubeStand.x0D4_WorldPosY, CubeStand.x0D8_WorldPosZ, out RX_Cube, out RY_Cube);


                        if (Tools.IsVendorPage_Visible() && Tools.IsKanaisCube_MainPage_Visible())
                        {
                            break;
                        }

                        A_Tools.InputSimulator.IS_Mouse.MoveCursor((uint)RX_Cube, (uint)RY_Cube);
                        A_Tools.InputSimulator.IS_Mouse.LeftClick();

                        Thread.Sleep(100);
                    }

                    Stopwatch s1 = new Stopwatch(); /////////
                    s1.Start();                     ///////////

                    var UpgradableItems = Tools.Get_RareUpgradableItems();
                    List <ActorCommonData> Materials;
                    var Count_AvailableEnchants = Tools.Get_AvailableEnchants_UpgradeRare(out Materials);

                    var Count_Enchants = 0;

                    foreach (var item in UpgradableItems)
                    {
                        if (Count_Enchants == Count_AvailableEnchants)
                        {
                            break;
                        }

                        while (true)
                        {
                            float RX_Cube, RY_Cube;

                            A_Tools.T_World.ToScreenCoordinate(CubeStand.x0D0_WorldPosX, CubeStand.x0D4_WorldPosY, CubeStand.x0D8_WorldPosZ, out RX_Cube, out RY_Cube);


                            if (Tools.IsVendorPage_Visible() && Tools.IsKanaisCube_MainPage_Visible())
                            {
                                break;
                            }

                            A_Tools.InputSimulator.IS_Mouse.MoveCursor((uint)RX_Cube, (uint)RY_Cube);
                            A_Tools.InputSimulator.IS_Mouse.LeftClick();

                            Thread.Sleep(100);
                        }

                        UIRect UIRect_item =
                            A_Collection.D3UI.InventoryItemUIRectMesh.FirstOrDefault(
                                x => x.Key.ItemSlotX == item.x118_ItemSlotX && x.Key.ItemSlotY == item.x11C_ItemSlotY)
                            .Value;

                        A_Tools.InputSimulator.IS_Mouse.RightCLick((int)UIRect_item.Left, (int)UIRect_item.Top, (int)UIRect_item.Right, (int)UIRect_item.Bottom);
                        Thread.Sleep(100);

                        foreach (var material in Materials)
                        {
                            UIRect UIRect_material =
                                A_Collection.D3UI.InventoryItemUIRectMesh.FirstOrDefault(
                                    x => x.Key.ItemSlotX == material.x118_ItemSlotX && x.Key.ItemSlotY == material.x11C_ItemSlotY)
                                .Value;

                            A_Tools.InputSimulator.IS_Mouse.RightCLick((int)UIRect_material.Left, (int)UIRect_material.Top, (int)UIRect_material.Right, (int)UIRect_material.Bottom);
                            Thread.Sleep(100);
                        }

                        UIRect Transmute = A_Tools.T_D3UI.UIElement.getRect(BTN_Transmute);

                        A_Tools.InputSimulator.IS_Mouse.LeftClick((int)Transmute.Left, (int)Transmute.Top, (int)Transmute.Right, (int)Transmute.Bottom);
                        Thread.Sleep(100);

                        while (Tools.IsVendorPage_Visible())
                        {
                            A_Tools.InputSimulator.IS_Keyboard.Close_AllWindows();
                        }

                        Count_Enchants++;
                    }

                    s1.Stop();                          /////////
                    TimeSpan t1 = s1.Elapsed;           //////
                    Console.WriteLine(t1.TotalSeconds); ////////
                }

                IsUpgrading_Rare = false;
            }
            catch (Exception)
            {
                IsUpgrading_Rare = false;
            }
        }