void cProtocol146::SendPickupSpawn(const cPickup & a_Pickup) { ASSERT(!a_Pickup.GetItem().IsEmpty()); cCSLock Lock(m_CSPacket); // Send a SPAWN_OBJECT packet for the base entity: WriteByte(PACKET_SPAWN_OBJECT); WriteInt (a_Pickup.GetUniqueID()); WriteByte(0x02); WriteInt ((int)(a_Pickup.GetPosX() * 32)); WriteInt ((int)(a_Pickup.GetPosY() * 32)); WriteInt ((int)(a_Pickup.GetPosZ() * 32)); WriteInt (1); WriteShort((short)(a_Pickup.GetSpeed().x * 32)); WriteShort((short)(a_Pickup.GetSpeed().y * 32)); WriteShort((short)(a_Pickup.GetSpeed().z * 32)); WriteByte(0); WriteByte(0); // Send a ENTITY_METADATA packet with the slot info: WriteByte(PACKET_ENTITY_METADATA); WriteInt(a_Pickup.GetUniqueID()); WriteByte(0xaa); // a slot value at index 10 WriteItem(a_Pickup.GetItem()); WriteByte(0x7f); // End of metadata Flush(); }
void cProtocol142::SendPickupSpawn(const cPickup & a_Pickup) { cCSLock Lock(m_CSPacket); WriteByte (PACKET_PICKUP_SPAWN); WriteInt (a_Pickup.GetUniqueID()); WriteItem (a_Pickup.GetItem()); WriteVectorI((Vector3i)(a_Pickup.GetPosition() * 32)); WriteByte ((char)(a_Pickup.GetSpeed().x * 8)); WriteByte ((char)(a_Pickup.GetSpeed().y * 8)); WriteByte ((char)(a_Pickup.GetSpeed().z * 8)); Flush(); }