示例#1
0
文件: Filters.cs 项目: mozkandemir/RE
        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"));
                }
            }
        }
示例#2
0
        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);
        }
示例#3
0
文件: Filters.cs 项目: mozkandemir/RE
        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);
                }
            }
        }
示例#4
0
文件: Item.cs 项目: mozkandemir/RE
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        // 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);
            }
        }
示例#7
0
        // 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);
            }
        }
示例#8
0
 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);
     }
 }
示例#9
0
        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);
                        }
                    }
                }
            }
        }
示例#10
0
        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!");
        }
示例#11
0
        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.");
        }
示例#12
0
        /// <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");
            }
        }
示例#13
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
示例#14
0
        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);
                            }
                        }
                    }
                }
            }
        }
示例#15
0
        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);
                        }
                    }
                }
            }
        }