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)); } }
public UseItemResponse(uint item, byte newQuantity, Item.ItemError err = Item.ItemError.None) { _itemID = item; _quantity = newQuantity; _err = (byte)err; }
public ClearToolbarLink(byte slot, Item.ItemError err = Item.ItemError.None) { _slot = slot; _err = (byte)err; }
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; }