private void HandleWornItemPacket(WornItemPacket packet) { gameObjects.UpdateObject(new Item(packet.ItemId, packet.Type, 1, new Location3D(0, 0, 0), packet.Color, packet.PlayerId, packet.Layer)); eventJournalSource.Publish(new ItemWornEvent(packet.ItemId, packet.PlayerId, packet.Layer)); }
private void ReceiveWornItem(IRecvPacket packet) { WornItemPacket p = (WornItemPacket)packet; Item item = add_Item(p.Serial, p.ItemId, p.Hue, p.ParentSerial, 0); Mobile m = EntityManager.GetObject <Mobile>(p.ParentSerial, false); m.WearItem(item, p.Layer); if (item.PropertyList.Hash == 0) { World.Engine.Client.Send(new QueryPropertiesPacket(item.Serial)); } }
public void Can_deserialize() { var rawPacket = FakePackets.Instantiate(new byte[] { 0x2E, // packet 0x40, 0x05, 0xA4, 0x96, // item id 0x0E, 0x7C, // type 0x00, // unknown 0x1D, // layer 0x00, 0x04, 0x5B, 0x2A, // player id 0x03, 0x84, // color }); var packet = new WornItemPacket(); packet.Deserialize(rawPacket); packet.ItemId.Should().Be(new ObjectId(0x4005a496)); packet.Type.Should().Be((ModelId)0x0e7c); packet.Layer.Should().Be(Layer.BankBox); packet.PlayerId.Should().Be(new ObjectId(0x00045B2A)); packet.Color.Should().Be((Color)0x0384); }