示例#1
0
文件: Map.cs 项目: x3sphiorx/SagaRO2
        public void RemoveItemFromActorPC(ActorPC pc, int itemID, byte amount, ITEM_UPDATE_REASON reason)
        {
            ActorEventHandlers.PC_EventHandler eh = (SagaMap.ActorEventHandlers.PC_EventHandler)pc.e;
            DeleteItemResult res;
            byte             namount, index;
            Item             item = pc.inv.GetItem(CONTAINER_TYPE.INVENTORY, itemID);

            res = pc.inv.DeleteItem(CONTAINER_TYPE.INVENTORY, itemID, amount, out index, out namount);
            if (res == DeleteItemResult.ERROR || res == DeleteItemResult.WRONG_ITEMID)
            {
                return;
            }
            switch (res)
            {
            case DeleteItemResult.NOT_ALL_DELETED:
                Packets.Server.UpdateItem p2 = new SagaMap.Packets.Server.UpdateItem();
                p2.SetContainer(CONTAINER_TYPE.INVENTORY);
                p2.SetItemIndex(index);
                p2.SetAmount(namount);
                p2.SetUpdateType(SagaMap.Packets.Server.ITEM_UPDATE_TYPE.AMOUNT);
                p2.SetUpdateReason(reason);
                eh.C.netIO.SendPacket(p2, eh.C.SessionID);
                MapServer.charDB.UpdateItem(pc, item);
                break;

            case DeleteItemResult.ALL_DELETED:
                Packets.Server.DeleteItem delI = new SagaMap.Packets.Server.DeleteItem();
                delI.SetContainer(CONTAINER_TYPE.INVENTORY);
                delI.SetAmount(1);
                delI.SetIndex(index);
                eh.C.netIO.SendPacket(delI, eh.C.SessionID);
                MapServer.charDB.DeleteItem(pc, item);
                break;
            }
        }
示例#2
0
文件: Map.cs 项目: Willyham/SagaRO2
 public void RemoveItemFromActorPC(ActorPC pc, int itemID, byte amount,ITEM_UPDATE_REASON reason)
 {
     ActorEventHandlers.PC_EventHandler eh = (SagaMap.ActorEventHandlers.PC_EventHandler)pc.e;
     DeleteItemResult res;
     byte namount, index;
     Item item = pc.inv.GetItem(CONTAINER_TYPE.INVENTORY, itemID);
     res = pc.inv.DeleteItem(CONTAINER_TYPE.INVENTORY, itemID, amount, out index, out namount);
     if (res == DeleteItemResult.ERROR || res == DeleteItemResult.WRONG_ITEMID) return;
     switch (res)
     {
         case DeleteItemResult.NOT_ALL_DELETED:
             Packets.Server.UpdateItem p2 = new SagaMap.Packets.Server.UpdateItem();
             p2.SetContainer(CONTAINER_TYPE.INVENTORY);
             p2.SetItemIndex(index);
             p2.SetAmount(namount);
             p2.SetUpdateType(SagaMap.Packets.Server.ITEM_UPDATE_TYPE.AMOUNT);
             p2.SetUpdateReason(reason);
             eh.C.netIO.SendPacket(p2, eh.C.SessionID);
             MapServer.charDB.UpdateItem(pc, item);
             break;
         case DeleteItemResult.ALL_DELETED:
             Packets.Server.DeleteItem delI = new SagaMap.Packets.Server.DeleteItem();
             delI.SetContainer(CONTAINER_TYPE.INVENTORY);
             delI.SetAmount(1);
             delI.SetIndex(index);
             eh.C.netIO.SendPacket(delI, eh.C.SessionID);
             MapServer.charDB.DeleteItem(pc, item);
             break;
     }
 }
示例#3
0
文件: Map.cs 项目: x3sphiorx/SagaRO2
 public void AddItemToActor(Actor destinationActor, Item nItem, ITEM_UPDATE_REASON reason)
 {
     destinationActor.e.OnAddItem(nItem, reason);
 }
示例#4
0
文件: Map.cs 项目: Willyham/SagaRO2
 public void AddItemToActor(Actor destinationActor, Item nItem, ITEM_UPDATE_REASON reason)
 {
     destinationActor.e.OnAddItem(nItem, reason);
 }