static void WriteInventoryItem(IOutgoingMessageStream stream, InventoryItem inventoryItem)
        {
            if (inventoryItem == null)
            {
                Logger.Write("Writing empty inventory item");
                stream.WriteInt32(EmptyInventorySlotSpecId);
                return;
            }

            Logger.Write(string.Format("Writing inventory item with item spec id {0}", inventoryItem.ItemSpecId));

            if (inventoryItem.ItemSpecId == 0)
            {
                throw new Exception("ItemSpec has id of 0. Make sure you use correct StaticItemSpecCache ritual.");
            }

            stream.WriteInt32(inventoryItem.ItemSpecId);
            stream.Write(inventoryItem.GetProperties().ToList());
        }
예제 #2
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteEntityId(EntityId);
     messageStream.WriteInt32(SpecId);
     messageStream.WriteInt32(UsageTime);
 }
예제 #3
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteInt32(Amount);
 }
예제 #4
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteInt32(ItemSpecId);
 }
예제 #5
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.Write(RemotePlayer);
     messageStream.WriteInt32(NewLevel);
 }
예제 #6
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteInt32(ContainerEntityId);
 }
예제 #7
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteInt32(ItemSpec.Id);
     messageStream.Write(ItemSpec.GetProperties().ToList());
 }
예제 #8
0
 protected override void SerializeImpl(IOutgoingMessageStream messageStream)
 {
     messageStream.WriteInt32(LoadedAmmoTotal);
 }