コード例 #1
0
        public static Packet AddBoss(IFieldObject <Mob> mob)
        {
            PacketWriter pWriter = PacketWriter.Of(SendOp.FIELD_ADD_NPC);

            pWriter.WriteInt(mob.ObjectId);
            pWriter.WriteInt(mob.Value.Id);
            pWriter.Write(mob.Coord);
            pWriter.Write(CoordF.From(0, 0, 0));       // Unknown
            pWriter.WriteMapleString(mob.Value.Model); // StrA - kfm model string
            // If NPC is not valid, the packet seems to stop here

            // NPC Stat
            StatPacket.DefaultStatsMob(pWriter, mob);
            // NPC Stat
            pWriter.WriteLong();
            pWriter.WriteLong();
            pWriter.WriteInt();
            pWriter.WriteByte();
            int count = 0;

            pWriter.WriteInt(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();
            }
            // Unknown
            pWriter.WriteLong();
            pWriter.WriteByte();
            pWriter.WriteInt(1);
            pWriter.WriteInt();
            pWriter.WriteByte();

            return(pWriter);
        }
コード例 #2
0
        public static Packet AddMob(IFieldObject <Mob> mob)
        {
            PacketWriter pWriter = PacketWriter.Of(SendOp.FIELD_ADD_NPC);

            pWriter.WriteInt(mob.ObjectId);
            pWriter.WriteInt(mob.Value.Id);
            pWriter.Write(mob.Coord);
            pWriter.Write(mob.Rotation);
            // If NPC is not valid, the packet seems to stop here

            StatPacket.DefaultStatsMob(pWriter, mob);

            pWriter.WriteLong();
            pWriter.WriteInt();
            pWriter.WriteInt(0x0E); // NPC level
            pWriter.WriteInt();
            pWriter.WriteByte();

            return(pWriter);
        }
コード例 #3
0
ファイル: FieldPacket.cs プロジェクト: rhydev/MapleServer2
        public static Packet AddMob(IFieldObject <Mob> mob)
        {
            PacketWriter pWriter = PacketWriter.Of(SendOp.FIELD_ADD_NPC)
                                   .WriteInt(mob.ObjectId)
                                   .WriteInt(mob.Value.Id)
                                   .Write(mob.Coord)
                                   .Write(CoordF.From(0, 0, 0)); // Unknown

            // If NPC is not valid, the packet seems to stop here

            // NPC Stat
            StatPacket.DefaultStatsMob(pWriter, mob);
            // 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);
        }