public static void UnEquipArmor() { List <UOItem> equip = new List <UOItem>(); equip.Add(World.Player.Layers[Layer.Arms]); equip.Add(World.Player.Layers[Layer.Cloak]); equip.Add(World.Player.Layers[Layer.Gloves]); equip.Add(World.Player.Layers[Layer.Hat]); equip.Add(World.Player.Layers[Layer.InnerLegs]); equip.Add(World.Player.Layers[Layer.InnerTorso]); equip.Add(World.Player.Layers[Layer.MiddleTorso]); equip.Add(World.Player.Layers[Layer.Neck]); equip.Add(World.Player.Layers[Layer.Arms]); equip.Add(World.Player.Layers[Layer.OuterLegs]); equip.Add(World.Player.Layers[Layer.OuterTorso]); equip.Add(World.Player.Layers[Layer.Pants]); //equip.Add(World.Player.Layers[Layer.LeftHand]); equip.Add(World.Player.Layers[Layer.Shirt]); equip.Add(World.Player.Layers[Layer.Shoes]); equip.Add(World.Player.Layers[Layer.Waist]); UOItem containerTo = null;//World.Player.Backpack.Items.FindType(0x0E75); kvuly NB vecem radsi do batuzku if (containerTo == null || !containerTo.Exist) { containerTo = World.Player.Backpack; } if (!containerTo.Opened) { ItemHelper.EnsureContainer(containerTo); } int counter = 0; foreach (UOItem item in equip) { if (item.IsItemType(ItemLibrary.KnightCloakGold) || item.IsItemType(ItemLibrary.KnightCloakBlack)) { continue; } if (item != null && item.Exist && item.Graphic != null) { item.Move(1, containerTo.Serial, 143, 123); counter++; } } World.Player.PrintMessage("* Armor schozen " + counter + " *"); }
//--------------------------------------------------------------------------------------------- public void TrainAlchemyMag(Potion potion, PotionQuality quality) { //WatchDogHelper.Watch(); Game.CurrentGame.Mode = GameMode.Working; Game.PrintMessage("Vyber zdrojovy konterjner s regy:"); UOItem container = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(container); while (GetMixureReagent(container, potion, quality)) { FillKadRecursive(potion, quality); if (!MixurePotion(potion, quality)) { break; } } Game.PrintMessage("Trenovani dokonceno."); }
public static void UnEquipShield() { List <UOItem> equip = new List <UOItem>(); equip.Add(World.Player.Layers[Layer.LeftHand]); UOItem containerTo = null;//World.Player.Backpack.Items.FindType(0x0E75); kvuly NB vecem radsi do batuzku if (containerTo == null || !containerTo.Exist) { containerTo = World.Player.Backpack; } if (!containerTo.Opened) { ItemHelper.EnsureContainer(containerTo); } int counter = 0; foreach (UOItem item in equip) { if (item != null && item.Exist && item.Graphic != null) { if (Array.IndexOf(ItemLibrary.Shields.GraphicArray, item.Graphic) > -1) { item.Move(1, containerTo.Serial, 143, 123); counter++; } } } if (counter > 0) { World.Player.PrintMessage("* Stit schozen *"); } else { World.Player.PrintMessage("* Nemas Stit *"); } }
//--------------------------------------------------------------------------------------------- public void TrainAlchemy(Potion potion, PotionQuality quality) { //WatchDogHelper.Watch(); Game.CurrentGame.Mode = GameMode.Working; Game.PrintMessage("Vyber zdrojovy konterjner s regy:"); UOItem container = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(container); decimal okCount = 0; decimal count = 0; while (GetMixureReagent(container, potion, quality)) { FillKadRecursive(potion, quality); if (!MixurePotion(potion, quality)) { //break; } else { count++; if (Journal.Contains(true, "You pour")) { okCount++; } decimal okDivide = (okCount / count); decimal okPerc = okDivide * 100; int regAmount = potion.GetAmountOrDefault(quality); decimal pricePerPcs = (1 / (okDivide > 0 ? (okCount / count) : 1)) * (decimal)regAmount * 5.0m;// Game.PrintMessage("Ks: " + okCount + " / " + count + " : " + String.Format("{0:n} %", okPerc)); } } Game.PrintMessage("Trenovani dokonceno."); }
public void Rewind() { ItemHelper.EnsureContainer(World.Player.Backpack); UOItem uOItem = World.Player.Backpack.Items.FindType(GreeziArtefakt.Graphic); if (uOItem.Exist) { Journal.Clear(); uOItem.Use(); if (Journal.WaitForText(true, 500, "You used Rewind")) { Game.PrintMessage("Rewin Start"); AsyncCounter counter = new AsyncCounter(); counter.PrefixText = "Rewind: "; counter.PrintType = "Game"; counter.ForceCounter = true; counter.HighlightTime = 3100; counter.HighlightColor = 0x055A; counter.Step = 500; counter.MaxTries = 12; counter.StopMessage = "You was ported back in time"; counter.StopMethod = Hiding.IsHidden; counter.RunComplete += Counter_RunComplete; counter.Run(); } } else { World.Player.PrintMessage("Nemas artefakt", MessageType.Warning); } }
public void TrainAlchemyMag(string name, string quality) { Game.PrintMessage("TrainAlchemyMag"); Potion potion = PotionCollection.Potions.GetItemByName(name); PotionQuality pq = Potion.ParsePQOrDefault(quality, PotionQuality.Lesser); Game.PrintMessage("Vyber zdrojovy konterjner s regy:"); UOItem container = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(container); decimal okCount = 0; decimal count = 0; while (!UO.Dead && World.Player.Backpack.AllItems.FindType(Reagent.Nightshade.Graphic, Reagent.Nightshade.Color).Exist&& World.Player.Backpack.AllItems.FindType(Reagent.BlackPearl.Graphic, Reagent.BlackPearl.Color).Exist ) { while (World.Player.Mana > 10) { if (World.Player.Hits < 40) { while (World.Player.Hits < World.Player.Strenght) { UOItem banda = World.Ground.FindType(0x0E21);//bandy if (!banda.Exist) { return; } UO.WaitTargetSelf(); banda.Use(); Game.Wait(2500); } } UO.Cast(StandardSpell.MagicArrow, Aliases.Self); Game.Wait(1500); } while (World.Player.Hits < World.Player.Strenght) { UOItem banda = World.Ground.FindType(0x0E21);//bandy if (!banda.Exist) { break; } UO.WaitTargetSelf(); banda.Use(); Game.Wait(2500); } //UOItem mrKad = new UOItem(World.Player.Backpack.Items.FindType(Potion.KadGraphic, Potion.ManaRefresh.TopKadColor)); //UOItem tmrKad = new UOItem(World.Player.Backpack.Items.FindType(Potion.KadGraphic, Potion.TotalManaRefresh.TopKadColor)); //if (mrKad.Exist || tmrKad.Exist) //{ // Game.CurrentGame.CurrentPlayer.GetSkillInstance<Alchemy>().DrinkPotion("Total Mana Refresh"); // Game.Wait(); //} //else { while (GetMixureReagent(container, potion, pq) && World.Player.Mana < World.Player.Intelligence) { FillKadRecursive(potion, pq); if (!MixurePotion(potion, pq)) { break; } else { count++; if (Journal.Contains(true, "You pour")) { okCount++; } decimal okDivide = (okCount / count); decimal okPerc = okDivide * 100; int regAmount = potion.GetAmountOrDefault(pq); decimal pricePerPcs = (1 / (okDivide > 0 ? (okCount / count) : 1)) * (decimal)regAmount * 5.0m;// Game.PrintMessage("Ks: " + okCount + " / " + String.Format("{0:n} %", okPerc) + " Prc: " + String.Format("{0:n} gp", pricePerPcs)); } } } } Game.PrintMessage("TrainAlchemyMag END"); }
//--------------------------------------------------------------------------------------------- protected bool BezVylozit() { if (this.ContainerPosition != null) { UO.Print("BezVylozit"); if (this.Robot.GoTo(this.ContainerPosition, this.ContainerDistance)) { Serial container; if (this.ContainerLayer == Layer.Bank) { UO.Say("Bank"); Game.Wait(); container = World.Player.Layers[this.ContainerLayer]; } else { container = this.Container; } UOItem mainCont = new UOItem(container); ItemHelper.EnsureContainer(mainCont); Game.Wait(250); UO.Backpack.Use(); Game.Wait(250); Serial dropContainer = container; if (this.InnerContainer != null) { dropContainer = this.InnerContainer; } UOItem ingot = new UOItem(Serial.Invalid); while (dropContainer.IsValid && ((ingot = FindLog(UO.Backpack.Items)).Exist)) { ingot.Move(100, dropContainer); Game.Wait(); } Game.Wait(); bool opened = false; while (World.Player.Backpack.AllItems.Count(NastrojGraphic) <= this.NastrojLoad) { if (!opened) { ItemHelper.OpenContainerRecursive(container); Game.Wait(); opened = true; } if (mainCont.AllItems.FindType(NastrojGraphic).Exist) { mainCont.AllItems.FindType(NastrojGraphic).Move(1, World.Player.Backpack); Game.Wait(); } else { break; } } if (this.ContainerPosition.Count > 1) { List <IUOPosition> reverse = new List <IUOPosition>(); reverse.AddRange(this.ContainerPosition.ToArray()); reverse.Reverse(); this.Robot.GoTo(reverse, this.ContainerDistance); } return(this.BezLast()); } else { UO.Print("BezVylozit - !GoTo ContainerPosition"); } } else { UO.Print("BezVylozit - ContainerPosition == null"); } return(false); }
public void CopyKeys(int copiesNum) { Game.PrintMessage("Vyber kontejner s Blank klici a key ringy:"); UOItem blankBag = new UOItem(UIManager.TargetObject()); Game.PrintMessage("Pytlik nebo Key ring k okopirovani:"); UOItem toCopyBag = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(blankBag); int blankCount = blankBag.Items.Count(ItemLibrary.BlankMagicKey.Graphic); int keyRingCount = blankBag.Items.Count(ItemLibrary.KeyRing0.Graphic); UOItemExtInfo extInfo = ItemHelper.GetItemExtInfo(toCopyBag, null); int toCopyCount = extInfo.Success ? extInfo.Charges.GetValueOrDefault() : toCopyBag.Items.Count(ItemLibrary.BlankMagicKey.Graphic); bool sourceIsKeyRing = false; if (keyRingCount < copiesNum) { Game.PrintMessage("Neni dostatek Key ringu."); return; } if (blankCount < (copiesNum * toCopyCount)) { Game.PrintMessage("Neni dostatek Blank Keys."); return; } List <UOItem> originals = new List <UOItem>(); List <Serial> keyRingItems = new List <Serial>(); if ( toCopyBag.Graphic == ItemLibrary.KeyRing1.Graphic || toCopyBag.Graphic == ItemLibrary.KeyRing2.Graphic || toCopyBag.Graphic == ItemLibrary.KeyRing3.Graphic) { sourceIsKeyRing = true; List <Serial> saveState = ItemHelper.ContainerState(World.Player.Backpack); UO.WaitTargetObject(toCopyBag); toCopyBag.Use(); Game.Wait(); keyRingItems = ItemHelper.ContainerStateDiff(saveState, ItemHelper.ContainerState(World.Player.Backpack)); foreach (var ser in keyRingItems) { UOItem itm = new UOItem(ser); if (itm.Graphic == ItemLibrary.BlankMagicKey.Graphic && itm.Color == ItemLibrary.BlankMagicKey.Color) { originals.Add(itm); } } } else { ItemHelper.EnsureContainer(toCopyBag); originals.AddRange(toCopyBag.Items.Where(itm => itm.Graphic == ItemLibrary.BlankMagicKey.Graphic && itm.Color == ItemLibrary.BlankMagicKey.Color).ToArray()); } toCopyCount = originals.Count; Game.PrintMessage(String.Format("Ke kopirovani: {0}, prazdnych: {1}/{2}", toCopyCount, blankCount, keyRingCount)); for (int i = 0; i < copiesNum; i++) { UOItem emptyKeyRing = blankBag.Items.FindType(ItemLibrary.KeyRing0.Graphic); if (emptyKeyRing.Move(1, World.Player.Backpack)) { Game.Wait(); foreach (var orig in originals) { UOItem empty = blankBag.Items.FindType(ItemLibrary.BlankMagicKey.Graphic); if (empty.Move(1, World.Player.Backpack)) { Game.Wait(); UO.WaitTargetObject(empty); orig.Use(); Game.Wait(); if (empty.Move(1, emptyKeyRing)) { Game.Wait(); } } } } } if (sourceIsKeyRing) { Game.PrintMessage("Vracim klice"); foreach (var ser in keyRingItems) { UOItem itm = new UOItem(ser); itm.Move(1, toCopyBag); Game.Wait(); } } Game.PrintMessage("KOnec."); }
public static void MakeVlasce() { UO.Print("Vyber container s matrosem:"); UOItem containerFrom = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(containerFrom); if (containerFrom.Exist) { while (containerFrom.Items.FindType(Thread.Graphic, Thread.Color).Amount > 4 && containerFrom.Items.FindType(IronWire.Graphic, IronWire.Color).Amount > 2) { if (UO.Backpack.Items.FindType(Thread.Graphic, Thread.Color).Amount < 4) { UO.Backpack.Items.FindType(Vlasec.Graphic, Vlasec.Color).Move(100, containerFrom); Game.Wait(); containerFrom.Items.FindType(Thread.Graphic, Thread.Color).Move(80, UO.Backpack); Game.Wait(); } if (UO.Backpack.Items.FindType(IronWire.Graphic, IronWire.Color).Amount < 2) { containerFrom.Items.FindType(IronWire.Graphic, IronWire.Color).Move(40, UO.Backpack); Game.Wait(); } while (UO.Backpack.Items.FindType(IronWire.Graphic, IronWire.Color).Amount >= 2 && UO.Backpack.Items.Count(IronString.Graphic, IronString.Color) < 2) { string[] menus = new string[] { "Tinkering", "Wires", "Wires", "Iron String" }; JournalEventWaiter jew = new JournalEventWaiter(true, "You put the", "Tinkering failed"); UO.WaitMenu(menus); UOItem tools = UO.Backpack.Items.FindType(TinkersTools); if (tools.Exist) { tools.Use(); jew.Wait(7500); if (Journal.Contains(true, "You can't make anything with what you have")) { Journal.Clear(); break; } } else { UO.Print("Nejsou toolsy."); break; } } if (UO.Backpack.Items.FindType(Thread.Graphic, Thread.Color).Amount >= 4 && UO.Backpack.Items.Count(IronString.Graphic, IronString.Color) >= 2) { JournalEventWaiter jew = new JournalEventWaiter(true, "You put the", "Tinkering failed"); UO.WaitMenu("Tinkering", "Wires", "Wires", "Vlasec"); UOItem tools = UO.Backpack.Items.FindType(TinkersTools); if (tools.Exist) { tools.Use(); jew.Wait(7500); if (Journal.Contains(true, "You can't make anything with what you have")) { Journal.Clear(); break; } } else { UO.Print("Nejsou toolsy."); break; } } } } Game.PrintMessage("Konec make vlasce"); }
public void CopyKeys(int copiesNum) { Game.PrintMessage("Vyber kontejner s Blank klici a key ringy:"); UOItem blankBag = new UOItem(UIManager.TargetObject()); Game.PrintMessage("Pytlik nebo Key ring k okopirovani:"); UOItem toCopyBag = new UOItem(UIManager.TargetObject()); Game.PrintMessage("Pytlik kam davat klice:"); UOItem targetBag = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(blankBag); int blankCount = blankBag.Items.Count(ItemLibrary.BlankMagicKey.Graphic); int keyRingCount = blankBag.Items.Count(ItemLibrary.KeyRing0.Graphic); UOItemExtInfo extInfo = ItemHelper.GetItemExtInfo(toCopyBag, null); int toCopyCount = extInfo.Success ? extInfo.Charges.GetValueOrDefault() : toCopyBag.Items.Count(ItemLibrary.BlankMagicKey.Graphic); bool sourceIsKeyRing = false; if (keyRingCount > 0 && keyRingCount < copiesNum) { Game.PrintMessage("Neni dostatek Key ringu."); return; } if (blankCount < (copiesNum * toCopyCount)) { Game.PrintMessage("Neni dostatek Blank Keys."); return; } List <UOItem> originals = new List <UOItem>(); List <Serial> keyRingItems = new List <Serial>(); if ( toCopyBag.Graphic == ItemLibrary.KeyRing1.Graphic || toCopyBag.Graphic == ItemLibrary.KeyRing2.Graphic || toCopyBag.Graphic == ItemLibrary.KeyRing3.Graphic) { sourceIsKeyRing = true; List <Serial> saveState = ItemHelper.ContainerState(World.Player.Backpack); UO.WaitTargetObject(toCopyBag); toCopyBag.Use(); Game.Wait(); keyRingItems = ItemHelper.ContainerStateDiff(saveState, ItemHelper.ContainerState(World.Player.Backpack)); foreach (var ser in keyRingItems) { UOItem itm = new UOItem(ser); if (itm.Graphic == ItemLibrary.BlankMagicKey.Graphic && itm.Color == ItemLibrary.BlankMagicKey.Color) { originals.Add(itm); } } } else { ItemHelper.EnsureContainer(toCopyBag); originals.AddRange(toCopyBag.Items.Where(itm => itm.Graphic == ItemLibrary.BlankMagicKey.Graphic && itm.Color == ItemLibrary.BlankMagicKey.Color).ToArray()); } toCopyCount = originals.Count; Game.PrintMessage(String.Format("Ke kopirovani: {0}, prazdnych: {1}/{2}", toCopyCount, blankCount, keyRingCount)); for (int i = 0; i < copiesNum; i++) { UOItem emptyKeyRing = blankBag.Items.FindType(ItemLibrary.KeyRing0.Graphic); if (keyRingCount == 0 || emptyKeyRing.Move(1, World.Player.Backpack)) { Game.Wait(); int counter = 0; foreach (var orig in originals) { string origName = ""; if (orig.Container != World.Player.Backpack) { orig.Move(1, World.Player.Backpack); Game.Wait(); ItemHelper.EnsureItem(orig); } origName = (orig.Name + String.Empty).Replace("Key to:", ""); if (String.IsNullOrEmpty(origName)) { origName = "Klicek " + (counter + 1); } UOItem empty = blankBag.Items.FindType(ItemLibrary.BlankMagicKey.Graphic); if (empty.Move(1, World.Player.Backpack)) { Game.Wait(); UO.WaitTargetObject(empty); orig.Use(); Game.Wait(); RenameKey(empty, origName); Game.Wait(); if (emptyKeyRing.Exist && empty.Move(1, emptyKeyRing)) { Game.Wait(); } else if (targetBag.Exist && empty.Move(1, targetBag)) { Game.Wait(); } } counter++; } } } // Serial: 0x4018E69C Name: "Key to:calebovo novy" Position: 62.119.0 Flags: 0x0000 Color: 0x0000 Graphic: 0x1012 Amount: 1 Layer: None Container: 0x4032F802 if (sourceIsKeyRing) { Game.PrintMessage("Vracim klice"); foreach (var ser in keyRingItems) { UOItem itm = new UOItem(ser); itm.Move(1, toCopyBag); Game.Wait(); } } else { foreach (var orig in originals) { if (orig.Container != toCopyBag.Serial) { orig.Move(1, toCopyBag.Serial); Game.Wait(); } } } Game.PrintMessage("KOnec."); }
public static void MakeVlasce() { UO.Print(0x456, "Start"); UOItem backpack = World.Player.Backpack; UO.Print("Vyber container s matrosem:"); UOItem containerFrom = new UOItem(UIManager.TargetObject()); ItemHelper.EnsureContainer(containerFrom); //3 odloz drevo UO.Backpack.AllItems.FindType(Log.Graphic, Log.Color).Move(100, containerFrom); Game.Wait(); //4 zober 25 dreva containerFrom.AllItems.FindType(Log.Graphic, Log.Color).Move(10, backpack); Game.Wait(); UO.Print(0x456, "Container check"); if (containerFrom.Exist) { UO.Print(0x456, "Threads check: " + containerFrom.AllItems.FindType(Thread.Graphic, Thread.Color).Amount); while (containerFrom.AllItems.FindType(Thread.Graphic, Thread.Color).Amount > 4) { //1 odloz ingoty UO.Backpack.AllItems.FindType(IronIngot.Graphic, IronIngot.Color).Move(100, containerFrom); Game.Wait(); //2 zober si 10 ingotov containerFrom.AllItems.FindType(IronIngot.Graphic, IronIngot.Color).Move(50, backpack); Game.Wait(); while ( containerFrom.AllItems.Count(IronString.Graphic, IronString.Color) > 4 && backpack.AllItems.Count(IronString.Graphic, IronString.Color) < 2) { containerFrom.AllItems.FindType(IronString.Graphic, IronString.Color).Move(1, backpack); Game.Wait(); } while (backpack.AllItems.Count(IronString.Graphic, IronString.Color) < 2) { while (backpack.AllItems.Count(IronWire.Graphic, IronWire.Color) < 1) { containerFrom.AllItems.FindType(IronIngot.Graphic, IronIngot.Color).Move(2, backpack); Game.Wait(); backpack.AllItems.FindType(IronIngot.Graphic, IronIngot.Color).Move(1, containerFrom); Game.Wait(); MakeOneWire(); Game.Wait(); } MakeOneString(); Game.Wait(); } if (UO.Backpack.AllItems.FindType(Thread.Graphic, Thread.Color).Amount < 4) { containerFrom.AllItems.FindType(Thread.Graphic, Thread.Color).Move(4, UO.Backpack); Game.Wait(); } MakeOneVlasec(); if (backpack.AllItems.Count(Vlasec.Graphic, Vlasec.Color) > 0) { UO.Print(0x456, "Vlasce: " + containerFrom.AllItems.FindType(Vlasec.Graphic, Vlasec.Color).Amount); UO.Print(0x456, "Thready: " + containerFrom.AllItems.FindType(Thread.Graphic, Thread.Color).Amount); backpack.AllItems.FindType(Vlasec.Graphic, Vlasec.Color).Move(1000, containerFrom); } } } }