diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 97a26d978..e89658061 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -263,12 +263,8 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty { WorldPacket data( SMSG_MONSTER_MOVE, (41 + GetPackGUID().size()) ); data.append(GetPackGUID()); - - // Point A, starting location + data << uint8(0); // new in 3.1 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 @@ -279,7 +275,7 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty case 1: // stop packet SendMessageToSet( &data, true ); return; - case 2: // not used currently + case 2: // facing spot, not used currently data << float(0); data << float(0); data << float(0); @@ -288,13 +284,12 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty data << uint64(0); // probably target guid break; case 4: // not used currently - data << float(0); // probably orientation + data << float(0); // facing angle break; } //Movement Flags (0x0 = walk, 0x100 = run, 0x200 = fly/swim) data << uint32(MovementFlags); - data << Time; // Time in between points data << uint32(1); // 1 single waypoint data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B @@ -313,22 +308,16 @@ void Unit::SendMonsterMoveByPath(Path const& path, uint32 start, uint32 end, uin WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) ); data.append(GetPackGUID()); + data << uint8(0); data << GetPositionX(); data << GetPositionY(); data << 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( 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); } diff --git a/src/game/UpdateFields.h b/src/game/UpdateFields.h index 00ffb781f..54eb4e1b2 100644 --- a/src/game/UpdateFields.h +++ b/src/game/UpdateFields.h @@ -19,7 +19,7 @@ #ifndef _UPDATEFIELDS_AUTO_H #define _UPDATEFIELDS_AUTO_H -// Auto generated for version 0, 1, 0, 9614 +// Auto generated for version 0, 1, 0, 9626 enum EObjectFields { diff --git a/src/game/WaypointMovementGenerator.cpp b/src/game/WaypointMovementGenerator.cpp index 7679ef2d3..0d83f461e 100644 --- a/src/game/WaypointMovementGenerator.cpp +++ b/src/game/WaypointMovementGenerator.cpp @@ -240,7 +240,7 @@ void FlightPathMovementGenerator::Initialize(Player &player) // do not send movement, it was sent already i_destinationHolder.SetDestination(traveller, i_path[i_currentNode].x, i_path[i_currentNode].y, i_path[i_currentNode].z, false); - player.SendMonsterMoveByPath(GetPath(),GetCurrentNode(),GetPathAtMapEnd(),MOVEMENTFLAG_WALK_MODE|MOVEMENTFLAG_ONTRANSPORT); + player.SendMonsterMoveByPath(GetPath(),GetCurrentNode(),GetPathAtMapEnd(),0x420); } void FlightPathMovementGenerator::Finalize(Player & player) diff --git a/src/realmd/AuthCodes.h b/src/realmd/AuthCodes.h index dc3202f8a..b9351b748 100644 --- a/src/realmd/AuthCodes.h +++ b/src/realmd/AuthCodes.h @@ -66,8 +66,8 @@ enum LoginResult // we need to stick to 1 version or half of the stuff will work for someone // others will not and opposite -// will only support WoW, WoW:TBC and WoW:WotLK 3.1.0 client build 9614... +// will only support WoW, WoW:TBC and WoW:WotLK 3.1.0 client build 9626... -#define EXPECTED_MANGOS_CLIENT_BUILD {9614, 0} +#define EXPECTED_MANGOS_CLIENT_BUILD {9626, 0} #endif