Code:
case DepositActionID.DepositItem:
{
if (Role.Instance.Warehouse.IsWarehouse((MsgNpc.NpcID)ware->NpcID))
{
MsgGameItem item;
if (client.Inventory.TryGetItem(ware->ItemUID, out item))
{
if (client.Warehouse.AddItem(item, ware->NpcID))
{
client.Inventory.Update(item, Role.Instance.AddMode.REMOVE, true);
byte* Warehouse = Game.MsgServer.MsgWarehouse.WarehousePacket.Create(1);
Game.MsgServer.MsgWarehouse.WarehousePacket* Packet = (Game.MsgServer.MsgWarehouse.WarehousePacket*)Warehouse;
Packet->Action = Game.MsgServer.MsgWarehouse.DepositActionID.DepositItem;
Packet->Count = 1;
Packet->NpcID = ware->NpcID;
Game.MsgServer.MsgWarehouse.WarehouseItem* start = (Game.MsgServer.MsgWarehouse.WarehouseItem*)&Packet->Start;
for (byte x = 0; x < Packet->Count; x++)
{
start[x] = Game.MsgServer.MsgWarehouse.WarehouseItem.Create(item.Item);
}
*(ulong*)((byte*)Packet + Packet->Count * 56 + 24) = ServerSockets.Packet.TqPacket;
client.Send((byte*)Packet);
if (item.Refinary.InLife || item.Purification.InLife)
{
Game.MsgServer.MsgItemExtra extra = new MsgItemExtra();
if (item.Purification.InLife)
{
item.Purification.Typ = MsgItemExtra.Typing.PurificationAdding;
extra.Purifications.Add(item.Purification);
}
if (item.Refinary.InLife)
{
item.Refinary.Typ = MsgItemExtra.Typing.RefinaryAdding;
if (item.Refinary.EffectDuration == 0)
item.Refinary.Typ = MsgItemExtra.Typing.PermanentRefinery;
extra.Refinerys.Add(item.Refinary);
}
extra.CreateArray();
client.Send(extra.GetArray());
}
}
}
}
break;
}
case DepositActionID.