Пример #1
0
 private static void OnCommand(string[] args)
 {
     foreach (Item item in WorldEx.FindItemsG(0x2006, i => i.Amount == 0x0096 || i.Amount == 0x004D || (i.Hue == 0 && i.Amount == 0x0010)))
     {
         WorldEx.SendToClient(new RemoveObject(item));
     }
 }
Пример #2
0
        private static void UseKey()
        {
            lock (list)
            {
                Item item = World.Player.Backpack.FindItem(i => IsKey(i) && !IsLockpick(i) && !list.Contains(i.Serial));
                if (item == null && list.Count > 0)
                {
                    list.Clear();
                    item = World.Player.Backpack.FindItem(i => IsKey(i) && !IsLockpick(i) && !list.Contains(i.Serial));
                }
                if (item == null)
                {
                    item = World.Player.Backpack.FindItem(i => IsKey(i) && !list.Contains(i.Serial));
                }

                if (item != null)
                {
                    door = WorldEx.FindItem(i => i.IsDoor && i.DistanceTo(World.Player) <= 1);
                    if (door != null)
                    {
                        timer.Start();
                    }
                    else
                    {
                        Item item2 = WorldEx.FindItemsG(i => IsSwitch(i) && i.DistanceTo(World.Player) < 3)
                                     .OrderBy(i => Utility.DistanceSqrt(i.Position, World.Player.Position))
                                     .FirstOrDefault();
                        if (item2 != null)
                        {
                            item = item2;
                        }
                    }

                    if (!IsSwitch(item))
                    {
                        list.Add(item.Serial);
                        list.RemoveAll(i => !World.Items.ContainsKey(i));
                    }

                    WorldEx.SendToServer(new DoubleClick(item.Serial));
                }
                else
                {
                    item = WorldEx.FindItemsG(i => IsSwitch(i) && i.DistanceTo(World.Player) < 3)
                           .OrderBy(i => Utility.DistanceSqrt(i.Position, World.Player.Position))
                           .FirstOrDefault();

                    if (item != null)
                    {
                        WorldEx.SendToServer(new DoubleClick(item.Serial));
                    }
                    else
                    {
                        WorldEx.SendMessage("No key found.");
                    }
                }
            }
        }
Пример #3
0
        private static void Dress(ItemID itemID)
        {
            Item item = WorldEx.FindItem(i => i.ItemID == itemID && i.RootContainer == World.Player && (!i.IsInBank || Bank.Opened))
                        ?? WorldEx.FindItemG(i => i.ItemID == itemID && i.DistanceTo(World.Player) < 3);

            if (item == null)
            {
                foreach (Item cont in WorldEx.FindItemsG(i => i.IsContainer && i.DistanceTo(World.Player) < 3))
                {
                    if ((item = cont.FindItem(itemID)) != null)
                    {
                        break;
                    }
                }
            }
            if (item != null)
            {
                DressInternal(item.Serial);
            }
        }