public static Packet AddNpc(IFieldObject <Npc> npc) { PacketWriter pWriter = PacketWriter.Of(SendOp.FIELD_ADD_NPC) .WriteInt(npc.ObjectId) .WriteInt(npc.Value.Id) .Write(npc.Coord) .Write(CoordF.From(0, 0, 0)); // Unknown // If NPC is not valid, the packet seems to stop here // NPC Stat StatPacket.DefaultStatsNpc(pWriter); // NPC Stat pWriter.WriteByte(); short count = 0; pWriter.WriteShort(count); // branch for (int i = 0; i < count; i++) { pWriter.WriteInt() .WriteInt() .WriteInt() .WriteInt() .WriteInt() .WriteInt() .WriteShort() .WriteInt() .WriteByte() .WriteLong(); } pWriter.WriteLong() // uid .WriteByte() .WriteInt(1) .WriteInt() .WriteByte(); return(pWriter); }
public static Packet AddNpc(IFieldObject <Npc> npc) { PacketWriter pWriter = PacketWriter.Of(SendOp.FIELD_ADD_NPC); pWriter.WriteInt(npc.ObjectId); pWriter.WriteInt(npc.Value.Id); pWriter.Write(npc.Coord); pWriter.Write(npc.Rotation); // If NPC is not valid, the packet seems to stop here StatPacket.DefaultStatsNpc(pWriter); pWriter.WriteByte(); short count = 0; pWriter.WriteShort(count); // branch for (int i = 0; i < count; i++) { pWriter.WriteInt(); pWriter.WriteInt(); pWriter.WriteInt(); pWriter.WriteInt(); pWriter.WriteInt(); pWriter.WriteInt(); pWriter.WriteShort(); pWriter.WriteInt(); pWriter.WriteByte(); pWriter.WriteLong(); } pWriter.WriteLong(); // uid pWriter.WriteByte(); pWriter.WriteInt(1); // NPC level pWriter.WriteInt(); pWriter.WriteByte(); return(pWriter); }