public ClientMoveWarehouseItemEventArgs(MoveWarehouseItemInfo i) { info = i; }
private bool MoveWarehouseItem(Client c, MoveWarehouseItemInfo m, BaseItem item) { BaseItem itemunder = null; if (m.ItemUnderID != 0) itemunder = c.MyCharacter.Warehouse.Items.First(x => x.ItemID == m.ItemUnderID); if (m.ToSlot <= 65) { if (c.MyCharacter.Warehouse.MoveItem(c.MyCharacter, item, m.ToSlot, out itemunder)) { if (itemunder == null) { item.Slot = (byte)(m.ToSlot); itemDataManager.UpdateItem(item); } else { int tempslot; tempslot = item.Slot; item.Slot = itemunder.Slot; itemunder.Slot = (byte)tempslot; itemDataManager.UpdateItem(item); itemDataManager.UpdateItem(itemunder); } byte[] SendRemoveWarehouseItem = PacketManager.SendWarehouseRemoveItem(m.FromSlot, item.ItemID); c.Send(SendRemoveWarehouseItem); byte[] SendAddWarehouseItem = PacketManager.SendAddItemToWarehouse(2, item); c.Send(SendAddWarehouseItem); if (itemunder != null) { byte[] SendRemoveWarehouseItemUnder = PacketManager.SendWarehouseRemoveItem(m.ToSlot, itemunder.ItemID); c.Send(SendRemoveWarehouseItemUnder); byte[] SendAddWarehouseItemUnder = PacketManager.SendAddItemToWarehouse(2, itemunder); c.Send(SendAddWarehouseItemUnder); } return true; } } return false; }
public static MoveWarehouseItemInfo RecvMoveWarehouseItem(Packet p) { p.Skip(2); byte fromslot = p.ReadByte(); int itemid = p.ReadInt(); byte toslot = p.ReadByte(); int itemunderid = p.ReadInt(); MoveWarehouseItemInfo i = new MoveWarehouseItemInfo { FromSlot = fromslot, ItemID = itemid, ToSlot = toslot, ItemUnderID = itemunderid }; return i; }