{ WorldPacket data( SMSG_MONSTER_MOVE, (41 + GetPackGUID().size()) ); data.append(GetPackGUID()); // Point A, starting location data << GetPositionX() << GetPositionY() << GetPositionZ(); // unknown field - unrelated to orientation // seems to increment about 1000 for every 1.7 seconds // for now, we'll just use mstime data << getMSTime(); data << uint8(type); // unknown switch(type) { case 0: // normal packet break; case 1: // stop packet SendMessageToSet( &data, true ); return; case 3: // not used currently data << uint64(0); // probably target guid break; case 4: // not used currently data << float(0); // probably orientation break; } data << uint32(Run ? 0x00000100 : 0x00000000); // flags (0x100 - running, 0x200 - taxi) /* Flags: 512: Floating, moving without walking/running */ data << Time; // Time in between points data << uint32(1); // 1 single waypoint data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B SendMessageToSet( &data, true ); }