Jump to content

a question about SMSG_MONSTER_MOVE .


Guest dahe

Recommended Posts

void Unit::SendMonsterMoveByPath(Path const& path, uint32 start, uint32 end, uint32 MovementFlags)

{

uint32 traveltime = uint32(path.GetTotalLength(start, end) * 32);

uint32 pathSize = end-start;

WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) );

data.append(GetPackGUID());

data << GetPositionX( )

<< GetPositionY( )

<< GetPositionZ( );

data << GetOrientation( );

data << uint8( 0 );

data << uint32( MovementFlags );

data << uint32( traveltime );

data << uint32( pathSize );

data.append( (char*)path.GetNodes(start), pathSize * 4 * 3 );

//WPAssert( data.size() == 37 + pathnodes.Size( ) * 4 * 3 );

SendMessageToSet(&data, true);

}

From the realdata ,i found that data after "data << uint32( pathSize ) "

is not same as "(char*)path.GetNodes(start), pathSize * 4 * 3 " .

I think it is compressed

But I do know how it be compressed .

can Someone give some infomation ?

a sample

----------------------

00 56

DD 00

DB AF 06 38 2C 30 F1

55 C8 72 C1 A7 1B 48 C2 E0 E8 AE C1

C5 F8 00 00

03

28 73 02 01 00 00 00 00

00 01 00 00

E1 0F 00 00

08 00 00 00

03 59 29 40 56 39 B8 C1 38 6A A2 C1

1A 40 41 00

0F C0 40 00

05 40 40 00

FA BF 7F 00

F2 67 7F 00

E9 EF 3E 00

E1 8F 7E FF

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use