コード例 #1
0
ファイル: NatureRings.cs プロジェクト: RazorTag/runescape_bot
        /// <summary>
        /// Empties up to the first three pouches and crafts their runes.
        /// Does nothing if the player is not using small, medium, or large pouch.
        /// </summary>
        /// <returns>true if successful</returns>
        protected bool CraftSmallMediumLargePouches()
        {
            if (UserSelections.NumberOfPouches == 0)
            {
                return(true);
            }

            for (int i = 0; i < Math.Min(3, UserSelections.NumberOfPouches); i++)
            {
                Inventory.RightClickInventoryOption(PouchSlots[i].X, PouchSlots[i].Y, 1);
            }

            Point altarLocation = new Point(Screen.Center.X, Screen.Center.Y - Screen.ArtifactLength(0.120));

            if (UserSelections.NumberOfPouches > 3)
            {
                Inventory.InventoryToScreen(ref InventorySlotGiantPouch);
                CraftInventory(altarLocation, InventorySlotGiantPouch);
                WaitForRunesToCraft();
            }
            else
            {
                CraftInventory(altarLocation, null);
                WaitForRunesToCraft(true);
            }

            return(true);
        }
コード例 #2
0
ファイル: NatureRings.cs プロジェクト: RazorTag/runescape_bot
        /// <summary>
        /// Clicks the exterior nature altar to enter it and clicks the nature altar to craft the first inventory of essence
        /// </summary>
        /// <returns>true if successful</returns>
        protected bool EnterAltar()
        {
            int   minimumSize = Screen.ArtifactArea(0.01); //ex 0.0236
            Blob  exteriorAltar;
            Point searchCenter = new Point(Screen.Center.X + Screen.ArtifactLength(0.25), Screen.Center.Y - Screen.ArtifactLength(0.24));

            if (!HandEye.MouseOverStationaryObject(new Blob(searchCenter), true, 10, 1000))  //click on the exterior nature altar to enter
            {
                if (!LocateAltar(out exteriorAltar, searchCenter, Screen.ArtifactLength(0.3)))
                {
                    return(false);
                }
                Vision.WaitDuringPlayerAnimation(3000);
                if (!HandEye.MouseOverStationaryObject(exteriorAltar, true, 10, 2000))
                {
                    return(false);
                }
            }
            SafeWaitPlus((int)(2.5 * BotRegistry.GAME_TICK), 150);

            //click on the interior nature altar to craft inventory by guessing the location
            Point altarLocation = new Point(Screen.Center.X, Screen.Center.Y - Screen.ArtifactLength(0.311));
            int   x = InventorySlotSmallPouch.X, y = InventorySlotSmallPouch.Y;

            Inventory.InventoryToScreen(ref x, ref y);

            for (int i = 0; i < 5; i++)
            {
                CraftInventory(altarLocation, new Point(x, y));
                if (WaitForRunesToCraft(false, 3 * BotRegistry.GAME_TICK))
                {
                    break;
                }
                SafeWait(BotRegistry.GAME_TICK);
            }

            return(true);
        }