Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }