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(); }
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)); } } } } }
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); } }
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"); } } }
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); }
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); } } }
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); } } }
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(); }
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(); }