Exemple #1
0
        public void OnAddItem(Item nItem, SagaDB.Items.ITEM_UPDATE_REASON reason)
        {
            byte          index, amount;
            AddItemResult res = I.inv.AddItem(nItem, out index, out amount);

            if (res == AddItemResult.ERROR)
            {
                Logger.ShowWarning("pc event handler: cannot add item with ID " + nItem.id, null);
                return;
            }

            nItem.index = index;
            nItem.stack = amount;

            if (res == AddItemResult.NEW_INDEX)
            {
                Packets.Server.AddItem p1 = new SagaMap.Packets.Server.AddItem();
                p1.SetContainer(CONTAINER_TYPE.INVENTORY);
                p1.SetItem(nItem);
                C.netIO.SendPacket(p1, C.SessionID);
                MapServer.charDB.NewItem(this.C.Char, nItem);
            }

            Packets.Server.UpdateItem p2 = new SagaMap.Packets.Server.UpdateItem();
            p2.SetContainer(CONTAINER_TYPE.INVENTORY);
            p2.SetItemIndex(nItem.index);
            p2.SetAmount(nItem.stack);
            p2.SetUpdateType(SagaMap.Packets.Server.ITEM_UPDATE_TYPE.AMOUNT);
            p2.SetUpdateReason(reason);
            C.netIO.SendPacket(p2, C.SessionID);
            MapServer.charDB.UpdateItem(this.C.Char, nItem);
        }
 public void OnAddItem(Item nitem, SagaDB.Items.ITEM_UPDATE_REASON reason)
 {
 }
Exemple #3
0
 public void SetUpdateReason(SagaDB.Items.ITEM_UPDATE_REASON reason)
 {
     this.PutByte((byte)reason, 6);
 }