static void Main(string[] args)
        {
            SkillGainTracker skillGainTracker = new SkillGainTracker(Skill.ItemIdentification, new DiscordSkillChangeEventHandler());
            skillGainTracker.Start();

            while (StealthAPI.Stealth.Client.GetSkillValue(Skill.ItemIdentification) < MAXIMUM_SKILL_VALUE)
            {
                var weapon = ObjectsFinder.FindInBackpackOrPaperdoll<Item>(EasyUOItem.PICKAXES);
                if (weapon.Count == 0)
                {
                    StealthAPI.Stealth.Client.Wait(1000);

                    continue;
                }

                StealthAPI.Stealth.Client.UseSkill(Skill.ItemIdentification);
                StealthAPI.Stealth.Client.WaitForTarget(5000);
                StealthAPI.Stealth.Client.TargetToObject(weapon[0].Serial.Value);

                DateTime dateTime = DateTime.Now;
                DateTime maxDateTime = dateTime.AddMilliseconds(6000);

                while (DateTime.Now < maxDateTime)
                {
                    if (StealthAPI.Stealth.Client.InJournalBetweenTimes("You estimate", dateTime, DateTime.Now) >= 0)
                        break;

                    Thread.Sleep(100);
                }
            }

            skillGainTracker.Stop();
        }
Beispiel #2
0
        public void MineCave()
        {
            var tiles  = UltimaTileReader.GetMineSpots(playerMobile.Location.X, playerMobile.Location.Y);
            var forges = ObjectsFinder.Find <Item>(EasyUOItem.FORGE, 18);

            while (tiles.Count > 0)
            {
                Data.Point3D playerLocation      = playerMobile.Location;
                var          nearestMineableTile = tiles.FindAll(tile => Math.Sqrt(Math.Pow((tile.X - playerLocation.X), 2) + Math.Pow((tile.Y - playerLocation.Y), 2)) != 0).OrderBy(tile => Math.Sqrt(Math.Pow((tile.X - playerLocation.X), 2) + Math.Pow((tile.Y - playerLocation.Y), 2))).First();

                movingHelper.newMoveXY(nearestMineableTile.X, nearestMineableTile.Y, true, 0, true);

                var mineableTilesAroundPlayer = tiles.FindAll(tile => Math.Sqrt(Math.Pow((tile.X - nearestMineableTile.X), 2) + Math.Pow((tile.Y - nearestMineableTile.Y), 2)) == 1);

                if (mineableTilesAroundPlayer.Count == 0)
                {
                    tiles.Remove(nearestMineableTile);

                    continue;
                }

                while (mineableTilesAroundPlayer.Count > 0)
                {
                    var mineableTile = mineableTilesAroundPlayer[0];

                    var pickaxe = ObjectsFinder.FindInBackpackOrPaperdoll <Item>(EasyUOItem.PICKAXES);
                    if (pickaxe.Count == 0)
                    {
                        Bank(new Data.Point2D(playerMobile.Location.X, playerMobile.Location.Y));

                        continue;
                    }

                    if (MineTile(pickaxe.First(), mineableTile) == MineTileResult.DONE)
                    {
                        mineableTilesAroundPlayer.Remove(mineableTile);
                        tiles.Remove(mineableTile);
                    }

                    if (playerMobile.Weight >= smeltWeight)
                    {
                        Smelt(forges);

                        if (playerMobile.Weight >= bankWeight)
                        {
                            Bank(new Data.Point2D(playerMobile.Location.X, playerMobile.Location.Y));
                        }
                    }
                }
            }
        }
Beispiel #3
0
        private void SplitOres()
        {
            var oresStacks = ObjectsFinder.FindInBackpack <Item>(EasyUOItem.ORES_STACKS);

            while (oresStacks.Count > 0)
            {
                foreach (var oresStack in oresStacks)
                {
                    oresStack.MoveItem(playerMobile.Backpack, 1, new Data.Point3D(100, 100, 0));

                    Thread.Sleep(1000);
                }

                oresStacks = ObjectsFinder.FindInBackpack <Item>(EasyUOItem.ORES_STACKS);
            }
        }
Beispiel #4
0
        private void Smelt(List <Item> forges)
        {
            if (forges.Count > 0)
            {
                var forge = forges.OrderBy(_forge => Math.Sqrt(Math.Pow((_forge.Location.X - playerMobile.Location.X), 2) + Math.Pow((_forge.Location.Y - playerMobile.Location.Y), 2))).First();

                movingHelper.newMoveXY((ushort)forge.Location.X, (ushort)forge.Location.Y, true, 1, true);

                if (smelt1x1)
                {
                    SplitOres();
                }

                ObjectsFinder.ClearIgnoreList("smelt");

                var oresStacks = ObjectsFinder.FindInBackpack <Item>(EasyUOItem.ORES, "smelt");
                while (oresStacks.Count > 0)
                {
                    var oresStack = oresStacks[0];

                    var beforeSmeltDateTime = DateTime.Now;
                    var smeltTimeout        = beforeSmeltDateTime.Add(TimeSpan.FromSeconds(10));

                    oresStack.DoubleClick();

                    while (DateTime.Now < smeltTimeout)
                    {
                        if (StealthAPI.Stealth.Client.InJournalBetweenTimes("mining to smelt that ore", beforeSmeltDateTime, DateTime.Now) >= 0)
                        {
                            ObjectsFinder.AddToIgnoreList("smelt", oresStack.Serial);

                            break;
                        }

                        if (!oresStack.Valid)
                        {
                            break;
                        }
                    }

                    oresStacks = ObjectsFinder.FindInBackpack <Item>(EasyUOItem.ORES, "smelt");
                }
            }
        }
Beispiel #5
0
 private bool TryGetDirection(out Vector3 direction)
 {
     playersFinder = new CreatureFinder(this.gameObject, enemyTags);
     if (playersFinder.Objects.Count == 0)
     {
         direction = Vector3.zero;
         return(false);
     }
     if (playersFinder.NearestObject.TryGetComponent(out IInvisible invisibility))
     {
         curAggroDistance = invisibility.Invisible ? AggroDistance / 3 : AggroDistance;
         direction        = invisibility.Invisible ? this.direction : playersFinder.Direction;
     }
     else
     {
         direction = playersFinder.Direction;
     }
     return(true);
 }
Beispiel #6
0
        private void RestockPickaxes()
        {
            var missingPickaxes = pickaxesCount - ObjectsFinder.FindInBackpackOrPaperdoll <Item>(EasyUOItem.PICKAXES).Count;

            if (missingPickaxes > 0)
            {
                var pickaxes = ObjectsFinder.FindInContainer <Item>(EasyUOItem.PICKAXES, dropContainer);

                foreach (var pickaxe in pickaxes)
                {
                    pickaxe.Grab();

                    if (--missingPickaxes == 0)
                    {
                        return;
                    }

                    Thread.Sleep(1000);
                }
            }
        }
Beispiel #7
0
        public void Start()
        {
            var tiles = UltimaTileReader.GetLumberSpots(TILE_SCAN_DISTANCE);

            while (tiles.Count > 0)
            {
                Data.Point3D playerLocation  = PlayerMobile.GetPlayer().Location;
                var          nearestTreeTile = tiles.OrderBy(tile => Math.Sqrt(Math.Pow((tile.X - playerLocation.X), 2) + Math.Pow((tile.Y - playerLocation.Y), 2))).First();

                MovingHelper.GetMovingHelper().newMoveXY(nearestTreeTile.X, nearestTreeTile.Y, true, 1, true);

                var hatchet = ObjectsFinder.FindInBackpackOrPaperdoll <Item>(EasyUOItem.HATCHETS);
                if (hatchet.Count == 0)
                {
                    return;
                }

                if (ChopTree(hatchet.First(), nearestTreeTile) == ChopTreeResult.DONE)
                {
                    tiles.Remove(nearestTreeTile);
                }
            }
        }
Beispiel #8
0
        static void Main(string[] args)
        {
            SkillGainTracker skillGainTracker = new SkillGainTracker(Skill.Anatomy, new DiscordSkillChangeEventHandler());

            skillGainTracker.Start();

            while (StealthAPI.Stealth.Client.GetSkillValue(Skill.Anatomy) < MAXIMUM_SKILL_VALUE)
            {
                var human = ObjectsFinder.Find <Mobile>(EasyUOItem.MOBILE_HUMANS, 2).Find(_human => _human.Serial.Value != PlayerMobile.GetPlayer().Serial.Value);
                if (human == null)
                {
                    StealthAPI.Stealth.Client.Wait(1000);

                    continue;
                }

                StealthAPI.Stealth.Client.UseSkill(Skill.Anatomy);
                StealthAPI.Stealth.Client.WaitForTarget(5000);
                StealthAPI.Stealth.Client.TargetToObject(human.Serial.Value);
                StealthAPI.Stealth.Client.Wait(4000);
            }

            skillGainTracker.Stop();
        }
        static void Main(string[] args)
        {
            SkillGainTracker skillGainTracker = new SkillGainTracker(Skill.AnimalLore, new DiscordSkillChangeEventHandler());

            skillGainTracker.Start();

            while (StealthAPI.Stealth.Client.GetSkillValue(Skill.AnimalLore) < MAXIMUM_SKILL_VALUE)
            {
                var animals = ObjectsFinder.Find <Mobile>(EasyUOItem.GRAY_HORSE, 4);
                if (animals.Count == 0)
                {
                    StealthAPI.Stealth.Client.Wait(1000);

                    continue;
                }

                StealthAPI.Stealth.Client.UseSkill(Skill.AnimalLore);
                StealthAPI.Stealth.Client.WaitForTarget(5000);
                StealthAPI.Stealth.Client.TargetToObject(animals[0].Serial.Value);
                StealthAPI.Stealth.Client.Wait(4000);
            }

            skillGainTracker.Stop();
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            SkillGainTracker skillGainTracker = new SkillGainTracker(ArmsLore, new DiscordSkillChangeEventHandler());

            skillGainTracker.Start();

            while (StealthAPI.Stealth.Client.GetSkillValue(ArmsLore) < MAXIMUM_SKILL_VALUE)
            {
                var weapon = ObjectsFinder.FindInBackpackOrPaperdoll <Item>(EasyUOItem.PICKAXES);
                if (weapon.Count == 0)
                {
                    StealthAPI.Stealth.Client.Wait(1000);

                    continue;
                }

                StealthAPI.Stealth.Client.UseSkill(ArmsLore);
                StealthAPI.Stealth.Client.WaitForTarget(5000);
                StealthAPI.Stealth.Client.TargetToObject(weapon[0].Serial.Value);
                StealthAPI.Stealth.Client.Wait(2000);
            }

            skillGainTracker.Stop();
        }