internal static void BoneCutterEngine(Items.Filter filter) { if (!Assistant.Engine.Running) { return; } if (World.Player == null) // Esce se non loggato { return; } if (BoneCutterBlade == 0) // Esce in caso di errore lettura blade { return; } List <Item> bones = RazorEnhanced.Items.ApplyFilter(filter); foreach (RazorEnhanced.Item bone in bones) { Target.Cancel(); if (Items.FindBySerial(BoneCutterBlade) != null) { Items.UseItem(Items.FindBySerial(BoneCutterBlade)); Target.WaitForTarget(1000, true); Target.TargetExecute(bone.Serial); Thread.Sleep(RazorEnhanced.Settings.General.ReadInt("ObjectDelay")); } } }
internal static int SearchBandage(int itemid, int color) { // Genero filtro item Items.Filter itemFilter = new Items.Filter { Enabled = true }; itemFilter.Graphics.Add(itemid); if (color != -1) { itemFilter.Hues.Add(color); } List <Item> containeritem = RazorEnhanced.Items.ApplyFilter(itemFilter); foreach (Item found in containeritem) { if (!found.IsInBank && found.RootContainer == World.Player.Serial) { return(found.Serial); } } return(0); }
internal static void AutoCarverEngine(Items.Filter filter) { if (!Assistant.Engine.Running) { return; } if (World.Player == null) // Esce se non loggato { return; } if (AutoCarverBlade == 0) // Esce in caso di errore lettura blade { return; } List <Item> corpi = RazorEnhanced.Items.ApplyFilter(filter); foreach (RazorEnhanced.Item corpo in corpi) { if (!m_IgnoreCutCorpiQueue.Contains(corpo.Serial)) { DragDropManager.CorpseToCutSerial.Enqueue(corpo.Serial); m_IgnoreCutCorpiQueue.Enqueue(corpo.Serial); } } }
public static int BackpackCount(int itemid, int color) { // Genero filtro item Items.Filter itemFilter = new Items.Filter(); itemFilter.Enabled = true; itemFilter.Graphics.Add(itemid); if (color != -1) { itemFilter.Hues.Add(color); } List <Item> containeritem = RazorEnhanced.Items.ApplyFilter(itemFilter); int amount = 0; foreach (Item found in containeritem) { if (!found.IsInBank && found.RootContainer == World.Player) { amount = amount + found.Amount; } } return(amount); }
public static bool UseItemByID(int itemid, int color = -1) { // Genero filtro item Items.Filter itemFilter = new Items.Filter { Enabled = true }; itemFilter.Graphics.Add(itemid); if (color != -1) { itemFilter.Hues.Add(color); } List <Item> containeritem = RazorEnhanced.Items.ApplyFilter(itemFilter); foreach (Item found in containeritem) { if (!found.IsInBank && found.RootContainer == World.Player.Serial) { RazorEnhanced.Items.UseItem(found); return(true); } } return(false); }
// Find item by id public static Item FindByID(int itemid, int color, int container) { if (container != -1) // search in specific container { Item cont = FindBySerial(container); if (cont == null) // not valid serial or container not found { Scripts.SendMessageScriptError("Script Error: FindByID: Container serial not found"); return(null); } foreach (Item i in cont.Contains) { if (i.ItemID == itemid) // check item id { if (color != -1) // color -1 ALL { if (i.Hue == color) { return(i); } } else { return(i); } } else if (i.IsContainer) { FindByID(itemid, color, i.Serial); // recall for sub container } } return(null); // Return null if no item found } else // Search in world { Items.Filter itemFilter = new Items.Filter { Enabled = true }; itemFilter.Graphics.Add(itemid); if (color != -1) { itemFilter.Hues.Add(color); } List <Item> containeritem = RazorEnhanced.Items.ApplyFilter(itemFilter); foreach (Item found in containeritem) // Return frist one found { return(found); } return(null); } }
// Funzioni da script /// <summary> /// @nodoc /// Run the Scavenger Agent once on the currently active list, for a given amount of time, using a filter. /// </summary> /// <param name="scavengerList"></param> /// <param name="millisec"></param> /// <param name="filter"></param> public static void RunOnce(List <ScavengerItem> scavengerList, int millisec, Items.Filter filter) { if (Assistant.Engine.MainWindow.ScavengerCheckBox.Checked == true) { Scripts.SendMessageScriptError("Script Error: Scavenger.Start: Scavenger already running"); } else { Engine(scavengerList, millisec, filter); } }
public static void RunOnce(List <AutoLootItem> autoLootList, int mseconds, Items.Filter filter) { if (Assistant.Engine.MainWindow.AutolootCheckBox.Checked == true) { Scripts.SendMessageScriptError("Script Error: Autoloot.Start: Autoloot already running"); } else { Engine(autoLootList, mseconds, filter); } }
internal static void Engine(List <ScavengerItem> scavengerItemList, int mseconds, Items.Filter filter) { List <Item> itemsOnGround = RazorEnhanced.Items.ApplyFilter(filter); if (ClientCommunication.ServerEncrypted) { Items.Filter osifilter = filter; osifilter.Movable = false; itemsOnGround.AddRange(RazorEnhanced.Items.ApplyFilter(osifilter)); } foreach (ScavengerItem scavengerItem in scavengerItemList) { if (World.Player.IsGhost) { ResetIgnore(); Thread.Sleep(2000); return; } if (!scavengerItem.Selected) { continue; } foreach (RazorEnhanced.Item itemGround in itemsOnGround) { if (DragDropManager.HoldingItem) { continue; } if (scavengerItem.Color == -1) // Colore ALL { if (itemGround.ItemID == scavengerItem.Graphics) { GrabItem(scavengerItem, itemGround); } } else { if (itemGround.ItemID == scavengerItem.Graphics && itemGround.Hue == scavengerItem.Color) { GrabItem(scavengerItem, itemGround); } } } } }
public void Run() { Items.Filter filter = new Items.Filter(); filter.Enabled = false; List <Item> itemList = Items.ApplyFilter(filter); int containerCount = 0; foreach (Item item in itemList) { if (item.IsContainer == true) { containerCount += 1; } } Log("There are " + containerCount + " containers near you!"); }
public void Run() { // Method #1 Items.Filter filter = new Items.Filter(); filter.Enabled = false; List <Item> itemList = Items.ApplyFilter(filter); string path = "d:\\"; Log("Saving into path: " + path); if (itemList.Count > 0) { Bitmap bitmap1 = itemList[0].Image; bitmap1.Save(path + "myImage_1.jpg", ImageFormat.Jpeg); } // Method #2 : 0x0EFA = spellbook, #1196 = yellowish Bitmap bitmap2 = Items.GetImage(0x0EFA, 1196); bitmap2.Save(path + "myImage_2.jpg", ImageFormat.Jpeg); Log("Finished saving 2 bitmaps."); }
/// <summary> /// Start Autoloot with custom parameters. /// </summary> /// <param name="lootListName">Name of the Autoloot listfilter for search on ground.</param> /// <param name="millisec">Delay in milliseconds. (unused)</param> /// <param name="filter">Item filter</param> public static void RunOnce(string lootListName, int millisec, Items.Filter filter) { if (Assistant.Engine.MainWindow.AutolootCheckBox.Checked == true) { Scripts.SendMessageScriptError("Script Error: Autoloot.Start: Autoloot already running"); return; } Dictionary <int, List <AutoLootItem> > autoLootList = Settings.AutoLoot.ItemsRead(lootListName); if (autoLootList.Count > 0) { Engine(autoLootList, millisec, filter); uint lootbag = GetLootBag(); // at login, backpack is sometimes null if (lootbag != 0) { DragDropManager.ProcessLootList(lootbag); } } else { Scripts.SendMessageScriptError("Script Error: Autoloot.RunOnce: list specified is empty or doesn't exist"); } }
internal static void Engine(Dictionary <int, List <AutoLootItem> > autoLootList, int mseconds, Items.Filter filter) { //TODO: msecond it's unused List <Item> corpi = RazorEnhanced.Items.ApplyFilter(filter); if (World.Player != null && World.Player.IsGhost) { Thread.Sleep(2000); ResetIgnore(); return; } foreach (RazorEnhanced.Item corpse in corpi) { RazorEnhanced.Item m_sharedcont = null; RazorEnhanced.Item m_OSIcont = null; RefreshCorpse(corpse); foreach (RazorEnhanced.Item item in corpse.Contains) { // Blocco shared if (item.ItemID == 0x0E75 && item.Properties.Count > 0) // Attende l'arrivo delle props { if (item.ItemID == 0x0E75 && item.Properties[0].ToString() == "Instanced loot container") // Rilevato backpack possibile shared loot verifico props UODREAMS { m_sharedcont = item; break; } } if (item.IsCorpse) // Rilevato contenitore OSI { m_OSIcont = item; break; } } RazorEnhanced.Item m_cont = null; if (m_sharedcont != null) { m_cont = m_sharedcont; } else if (m_OSIcont != null) { m_cont = m_OSIcont; } else { m_cont = corpse; } // If container is empty move on if (m_cont.Contains.Count() == 0) { continue; } // get all the all-ID lists List <AutoLootItem> matchAll = null; if (!autoLootList.TryGetValue(-1, out matchAll)) { matchAll = new List <AutoLootItem>(); } foreach (RazorEnhanced.Item item in m_cont.Contains) { if (!item.IsLootable) { continue; } // Check match all by graphics foreach (AutoLootItem autoLootItem in matchAll) { if (autoLootItem.Selected) { if (autoLootItem.Color == item.Hue || autoLootItem.Color == -1) { GrabItem(autoLootItem, item, corpse.Serial); } } } // check if in dictionary by graphics List <AutoLootItem> autoLootItemList2 = null; if (autoLootList.TryGetValue(item.ItemID, out autoLootItemList2)) { foreach (AutoLootItem autoLootItem2 in autoLootItemList2) { if (autoLootItem2.Selected) { if (autoLootItem2.Color == item.Hue || autoLootItem2.Color == -1) { GrabItem(autoLootItem2, item, corpse.Serial); } } } } } } }
internal static void Engine(List <AutoLootItem> autoLootList, int mseconds, Items.Filter filter) { List <Item> corpi = RazorEnhanced.Items.ApplyFilter(filter); if (World.Player != null && World.Player.IsGhost) { Thread.Sleep(2000); ResetIgnore(); return; } foreach (RazorEnhanced.Item corpo in corpi) { RazorEnhanced.Item m_sharedcont = null; RazorEnhanced.Item m_OSIcont = null; RefreshCorpse(corpo); foreach (RazorEnhanced.Item oggettoContenuto in corpo.Contains) { // Blocco shared if (oggettoContenuto.ItemID == 0x0E75 && oggettoContenuto.Properties.Count > 0) // Attende l'arrivo delle props { if (oggettoContenuto.ItemID == 0x0E75 && oggettoContenuto.Properties[0].ToString() == "Instanced loot container") // Rilevato backpack possibile shared loot verifico props UODREAMS { m_sharedcont = oggettoContenuto; break; } } if (oggettoContenuto.IsCorpse) // Rilevato contenitore OSI { m_OSIcont = oggettoContenuto; break; } } RazorEnhanced.Item m_cont = null; if (m_sharedcont != null) { m_cont = m_sharedcont; } else if (m_OSIcont != null) { m_cont = m_OSIcont; } else { m_cont = corpo; } foreach (AutoLootItem autoLootItem in autoLootList) { if (!autoLootItem.Selected) { continue; } foreach (RazorEnhanced.Item oggettoContenuto in m_cont.Contains) { if (autoLootItem.Graphics == oggettoContenuto.ItemID || autoLootItem.Graphics == -1) // match ALL id { if (autoLootItem.Color == oggettoContenuto.Hue || autoLootItem.Color == -1) { GrabItem(autoLootItem, oggettoContenuto, corpo.Serial); } } } } } }
internal static void Engine(List <ScavengerItem> scavengerItemList, int mseconds, Items.Filter filter) { List <Item> itemsOnGround = RazorEnhanced.Items.ApplyFilter(filter); if (Assistant.Client.Instance.ServerEncrypted) // OSI shard use movable flag for different, item on ground lootable can have both flag { m_itemfilterOsi.RangeMax = m_maxrange; itemsOnGround.AddRange(RazorEnhanced.Items.ApplyFilter(m_itemfilterOsi)); } foreach (ScavengerItem scavengerItem in scavengerItemList) { if (World.Player != null && World.Player.IsGhost) { ResetIgnore(); Thread.Sleep(2000); return; } if (!scavengerItem.Selected) { continue; } foreach (RazorEnhanced.Item itemGround in itemsOnGround) { if (scavengerItem.Color == -1) // Colore ALL { if (itemGround.ItemID == scavengerItem.Graphics) { GrabItem(scavengerItem, itemGround); } } else { if (itemGround.ItemID == scavengerItem.Graphics && itemGround.Hue == scavengerItem.Color) { GrabItem(scavengerItem, itemGround); } } } } }