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; } }
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; } }
public void AddItemToActor(Actor destinationActor, Item nItem, ITEM_UPDATE_REASON reason) { destinationActor.e.OnAddItem(nItem, reason); }
public void AddItemToActor(Actor destinationActor, Item nItem, ITEM_UPDATE_REASON reason) { destinationActor.e.OnAddItem(nItem, reason); }