Пример #1
0
        void UseItem_Handler(Task t)
        {
            Item.ItemError err   = Item.ItemError.None;
            uint           item  = (uint)t.Args;
            Item           stack = t.Client.Character.FindItem(item);

            if (stack != null)
            {
                err = stack.Use(t.Client);
                if (err == Item.ItemError.None)
                {
                    if (stack.Quantity <= 0)
                    {
                        // Stack is gone, delete the item
                        string sql = string.Format("DELETE FROM item_instances WHERE instance_id={0};", stack.ID);
                        AddDBQuery(sql, null, false);
                    }
                    else
                    {
                        // Update the stack in the database and the client
                        AddDBQuery(stack.UpdateDBString(), null, false);
                        t.Client.SendPacket(new GiveItemPacket(stack));
                    }
                }

                t.Client.SendPacket(new UseItemResponse(stack.ID, (byte)stack.Quantity, err));
            }
            else
            {
                t.Client.SendPacket(new UseItemResponse(0, 0, Item.ItemError.UnableToFindItem));
            }
        }
Пример #2
0
 public UseItemResponse(uint item, byte newQuantity, Item.ItemError err = Item.ItemError.None)
 {
     _itemID   = item;
     _quantity = newQuantity;
     _err      = (byte)err;
 }
Пример #3
0
 public ClearToolbarLink(byte slot, Item.ItemError err = Item.ItemError.None)
 {
     _slot = slot;
     _err  = (byte)err;
 }
Пример #4
0
        public SetToolbarLink(uint id, ToolbarItemSetRequest.TargetType type, int slot, Item.ItemError err = Item.ItemError.None)
        {
            _id = id;
            int t        = (type == ToolbarItemSetRequest.TargetType.Skill ? 3 : 2);
            int typeByte = (slot << 2) | t;

            _type = (byte)typeByte;
            _err  = (byte)err;
        }