all of packets works well but monsters names dosn't shown yet.
Code:
public static implicit operator byte[](SpawnEntityPacket packet) { byte[] data = new byte[100 + packet.Names.Length];//100 fixed (byte* ptr = data) { PacketBuilder.AppendHeader(ptr, data.Length, 1014); *((uint*)(ptr + 4)) = packet.UID; *((uint*)(ptr + 8)) = packet.Lookface; *((ClientEffect*)(ptr + 12)) = packet.StatusEffects; *((uint*)(ptr + 20)) = packet.GuildID; *((byte*)(ptr + 23)) = packet.GuildRank; *((uint*) (ptr + 24)) = packet.GarmentType; *((uint*)(ptr + 28)) = packet.HelmetType; *((uint*)(ptr + 32)) = packet.ArmorType; *((uint*)(ptr + 36)) = packet.WeaponRType; *((uint*)(ptr + 40)) = packet.WeaponLType; //48 uint realted to hp? *((ushort*)(ptr + 48)) = (ushort)packet.Life; *((ushort*)(ptr + 50)) = packet.Level; *((ushort*)(ptr + 52)) = packet.PositionX; *((ushort*)(ptr + 54)) = packet.PositionY; *((ushort*)(ptr + 56)) = packet.Hair; *(ptr + 58) = packet.Direction; *(ptr + 59) = (byte)packet.Action; *(ptr + 60) = packet.RebornCount; *((ushort*)(ptr + 62)) = packet.Level; *((byte*)(ptr + 84)) = packet.HelmetColor; *((byte*)(ptr + 86)) = packet.ArmorColor; *((byte*)(ptr + 68)) = packet.Nobility; *((uint*)(ptr + 76)) = packet.NobilityRank; PacketBuilder.AppendNetStringPacker(ptr + 90, packet.Names); } return data; }