///////////////////////////////////////////////////////////////////////// // // www.ultima.smoce.net // Name: Refull -> scritpt // ///////////////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using System.Text; using Phoenix; using Phoenix.WorldData; namespace Phoenix.Scripts { public class Refuling { [Executable] public void tttest() { UOItem test = new UOItem(0x4003223F); UO.MoveItem(test, 1, World.Player.Backpack); } [Executable] public void Reful() { UO.PrintObject(World.Player.Serial, "Zamer container s potiony"); UOItem potionsContainer = World.GetItem(UIManager.TargetObject());; UO.PrintObject(World.Player.Serial, "Zamer container s reagenty"); UOItem reagentsContainer = World.GetItem(UIManager.TargetObject()); UO.PrintObject(World.Player.Serial, "Zamer container se svitky"); UOItem scrollsContainer = World.GetItem(UIManager.TargetObject()); UO.PrintObject(World.Player.Serial, "Zamer container s ostatnimy vecmi"); UOItem othersContainer = World.GetItem(UIManager.TargetObject()); reagents(reagentsContainer); potions(potionsContainer); scrolls(scrollsContainer); UO.PrintObject(World.Player.Serial, "Refulled !"); } public void reagents(UOItem container) { UOItem reagent; int count = 8; string chyby = ""; ushort[] itemToPickGraphic = new ushort[15]; itemToPickGraphic[0] = 0x0F8D; //spider silk itemToPickGraphic[1] = 0x0F7B; //Blood Moss itemToPickGraphic[2] = 0x0F84; //garlic itemToPickGraphic[3] = 0x0F7A; //blackpearls itemToPickGraphic[4] = 0x0F8C; //sulforous ash itemToPickGraphic[5] = 0x0F85; //;Ginseng itemToPickGraphic[6] = 0x0F86; //;mandrake root itemToPickGraphic[7] = 0x0F88; //;Nightshade itemToPickGraphic[8] = 0x0F7C; //;BloodSpawn itemToPickGraphic[9] = 0x0F7F; //;Brimstone itemToPickGraphic[10] = 0x0F7D; //;Blood Vial itemToPickGraphic[11] = 0x0F83; //;Execution's Cap itemToPickGraphic[12] = 0x0F79; //;Blackmoor itemToPickGraphic[13] = 0x0F89; //;Obsidian itemToPickGraphic[14] = 0x0F7E; //;Bone if (!container.Opened) { using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial)) { container.Use(); if (!ew.Wait(60000)) { UO.PrintWarning("Item open timeout"); return; } } } if (Config.Profile.ProfileName == "Necromancer") { count = 15; } for (int i = 0; i < 15; i++) { while ((World.Player.Backpack.AllItems.Count(itemToPickGraphic[i], 0x0000)) > 0) { reagent = World.Player.Backpack.AllItems.FindType(itemToPickGraphic[i], 0x0000); using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(reagent)) { reagent.Move(reagent.Amount, container.Serial); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get reagents from backpack."); return; } } } } for (int i = 0; i < count; i++) { if ((container.AllItems.Count(itemToPickGraphic[i], 0x0000)) > 0) { reagent = container.AllItems.FindType(itemToPickGraphic[i], 0x0000); using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(reagent)) { reagent.Move(200, World.Player.Backpack); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get reagents from source bag."); return; } } } else { chyby += itemToPickGraphic[i] + ", "; } } UO.PrintWarning(chyby); } public void scrolls(UOItem container) { UOItem scroll; string chyby = ""; ushort[] svitkyID = new ushort[3]; svitkyID[0] = 0x1F5F ; //KVF svitkyID[1] = 0x1F50 ; //IJS svitkyID[2] = 0x1F42 ; //Porty ushort[] svitkyPocet = new ushort[3]; svitkyPocet[0] = 15 ;//KVF svitkyPocet[1] = 7 ;//IJS svitkyPocet[2] = 3 ;//Porty if (!container.Opened) { using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial)) { container.Use(); if (!ew.Wait(60000)) { UO.PrintWarning("Item open timeout"); return; } } } for (int i = 0; i < 3; i++) { while ((World.Player.Backpack.AllItems.Count(svitkyID[i], 0x0000)) > 0) { scroll = World.Player.Backpack.AllItems.FindType(svitkyID[i], 0x0000); using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(scroll)) { scroll.Move(scroll.Amount, container.Serial); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get scrolls from backpack."); return; } } } } for (int i = 0; i < 3; i++) { if ((container.AllItems.Count(svitkyID[i], 0x0000)) > 0) { scroll = container.AllItems.FindType(svitkyID[i], 0x0000); using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(scroll)) { scroll.Move(svitkyPocet[i], World.Player.Backpack); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get scrolls from source bag."); return; } } } else { chyby += svitkyID[i] + ", "; } } UO.PrintWarning(chyby); } public void potions(UOItem container) { UOItem kad; int potionsNalevam; ushort kadX; ushort kadY; string chyby = ""; UOItem lahvicky; ushort[] kadBarva = new ushort[5]; kadBarva[0] = 0x0003 ;//TMR kadBarva[1] = 0x08A7 ;//GH kadBarva[2] = 0x0481 ;//GS kadBarva[3] = 0x0842 ;//GC kadBarva[4] = 0x014D ;//TR ushort[] potionID = new ushort[5]; potionID[0] = 0x0F09 ;//TMR potionID[1] = 0x0F0C ;//GH potionID[2] = 0x0F09 ;//GS potionID[3] = 0x0F07 ;//GC potionID[4] = 0x0F0B ;//TR ushort[] potionColor = new ushort[5]; potionColor[0] = 0x0003 ;//TMR potionColor[1] = 0x0000 ;//GH potionColor[2] = 0x0000 ;//GS potionColor[3] = 0x0000 ;//GC potionColor[4] = 0x0000 ;//TR ushort[] potionPocet = new ushort[5]; potionPocet[0] = 25 ;//TMR potionPocet[1] = 5 ;//GH potionPocet[2] = 6 ;//GS potionPocet[3] = 3 ;//GC potionPocet[4] = 6 ;//TR if (!container.Opened) { using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial)) { container.Use(); if (!ew.Wait(60000)) { UO.PrintWarning("Item open timeout"); return; } } } lahvicky = container.AllItems.FindType(0x0F0E, 0x0000); for (int i = 0; i < 5; i++) { if ((container.AllItems.Count(0x1843, kadBarva[i])) > 0) { kad = container.AllItems.FindType(0x1843, kadBarva[i]); kadX = kad.X; kadY = kad.Y; using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(kad)) { kad.Move(1, World.Player.Backpack); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get tube from source bag."); return; } } while (World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i]) < potionPocet[i]) { potionsNalevam = World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i]); UO.WaitTargetObject(lahvicky.Serial); UO.UseObject(kad.Serial); while (potionsNalevam == World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i])) { } } using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(kad)) { kad.Move(1, container, kadX, kadY); if (!ew.Wait(5000)) { ScriptErrorException.Throw("Unable to get tube to source bag."); return; } } } else { chyby += kadBarva[i] + ", "; } } } } }