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 ProcessItem( MapClient client, string args ) { int itemID; Item nItem; try { itemID = int.Parse( args ); } catch( Exception ) { itemID = 1; } try { nItem = new Item(itemID); } catch(Exception) { client.SendMessage( _MasterName, "cannot create item with ID " + itemID ); return; } byte index, amount; AddItemResult res = client.Char.inv.AddItem( nItem, out index, out amount ); if( res == AddItemResult.ERROR ) { client.SendMessage( _MasterName, "cannot add item with ID " + itemID ); 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 ); client.netIO.SendPacket(p1, client.SessionID); MapServer.charDB.NewItem(client.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(ITEM_UPDATE_REASON.FOUND); client.netIO.SendPacket(p2, client.SessionID); MapServer.charDB.UpdateItem(client.Char, nItem); client.SendMessage( _MasterName, "Created item with ID " + itemID ); }
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); }