public void OnItemInventoryItem(SM_ITEM_INVENTORY_ITEM p) { long session = p.SessionID; if (packetSessions.TryGetValue(session, out T client)) { OnGotInventoryItem(client, p.Item, p.End); if (p.End) { packetSessions.TryRemove(session, out client); } } }
public void OnItemInventoryGet(Packets.Client.CM_ITEM_INVENTORY_GET p) { long session = p.SessionID; List <uint> ids = ItemDB.Instance.GetItemIDs(p.CharID); foreach (uint i in ItemCache.Instance.GetItemIDsForChar(p.CharID)) { if (!ids.Contains(i)) { ids.Add(i); } } if (ids.Count > 0) { for (int i = 0; i < ids.Count; i++) { SM_ITEM_INVENTORY_ITEM p1 = new SM_ITEM_INVENTORY_ITEM() { SessionID = session, End = i == (ids.Count - 1), Item = ItemCache.Instance[ids[i]] }; Network.SendPacket(p1); } } else { SM_ITEM_INVENTORY_ITEM p1 = new SM_ITEM_INVENTORY_ITEM() { SessionID = session, End = true, Item = null }; Network.SendPacket(p1); } }