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