mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
New client build, SMSG_MONSTER_MOVE partly fixed
This commit is contained in:
parent
d3872fa572
commit
a8f7f57065
4 changed files with 8 additions and 19 deletions
|
|
@ -263,12 +263,8 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty
|
||||||
{
|
{
|
||||||
WorldPacket data( SMSG_MONSTER_MOVE, (41 + GetPackGUID().size()) );
|
WorldPacket data( SMSG_MONSTER_MOVE, (41 + GetPackGUID().size()) );
|
||||||
data.append(GetPackGUID());
|
data.append(GetPackGUID());
|
||||||
|
data << uint8(0); // new in 3.1
|
||||||
// Point A, starting location
|
|
||||||
data << GetPositionX() << GetPositionY() << GetPositionZ();
|
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 << getMSTime();
|
||||||
|
|
||||||
data << uint8(type); // unknown
|
data << uint8(type); // unknown
|
||||||
|
|
@ -279,7 +275,7 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty
|
||||||
case 1: // stop packet
|
case 1: // stop packet
|
||||||
SendMessageToSet( &data, true );
|
SendMessageToSet( &data, true );
|
||||||
return;
|
return;
|
||||||
case 2: // not used currently
|
case 2: // facing spot, not used currently
|
||||||
data << float(0);
|
data << float(0);
|
||||||
data << float(0);
|
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
|
data << uint64(0); // probably target guid
|
||||||
break;
|
break;
|
||||||
case 4: // not used currently
|
case 4: // not used currently
|
||||||
data << float(0); // probably orientation
|
data << float(0); // facing angle
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Movement Flags (0x0 = walk, 0x100 = run, 0x200 = fly/swim)
|
//Movement Flags (0x0 = walk, 0x100 = run, 0x200 = fly/swim)
|
||||||
data << uint32(MovementFlags);
|
data << uint32(MovementFlags);
|
||||||
|
|
||||||
data << Time; // Time in between points
|
data << Time; // Time in between points
|
||||||
data << uint32(1); // 1 single waypoint
|
data << uint32(1); // 1 single waypoint
|
||||||
data << NewPosX << NewPosY << NewPosZ; // the single waypoint Point B
|
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) );
|
WorldPacket data( SMSG_MONSTER_MOVE, (GetPackGUID().size()+4+4+4+4+1+4+4+4+pathSize*4*3) );
|
||||||
data.append(GetPackGUID());
|
data.append(GetPackGUID());
|
||||||
|
data << uint8(0);
|
||||||
data << GetPositionX();
|
data << GetPositionX();
|
||||||
data << GetPositionY();
|
data << GetPositionY();
|
||||||
data << GetPositionZ();
|
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 << getMSTime();
|
||||||
|
|
||||||
data << uint8( 0 );
|
data << uint8( 0 );
|
||||||
data << uint32( MovementFlags );
|
data << uint32( MovementFlags );
|
||||||
data << uint32( traveltime );
|
data << uint32( traveltime );
|
||||||
data << uint32( pathSize );
|
data << uint32( pathSize );
|
||||||
data.append( (char*)path.GetNodes(start), pathSize * 4 * 3 );
|
data.append( (char*)path.GetNodes(start), pathSize * 4 * 3 );
|
||||||
|
|
||||||
//WPAssert( data.size() == 37 + pathnodes.Size( ) * 4 * 3 );
|
|
||||||
SendMessageToSet(&data, true);
|
SendMessageToSet(&data, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
#ifndef _UPDATEFIELDS_AUTO_H
|
#ifndef _UPDATEFIELDS_AUTO_H
|
||||||
#define _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
|
enum EObjectFields
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -240,7 +240,7 @@ void FlightPathMovementGenerator::Initialize(Player &player)
|
||||||
// do not send movement, it was sent already
|
// 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);
|
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)
|
void FlightPathMovementGenerator::Finalize(Player & player)
|
||||||
|
|
|
||||||
|
|
@ -66,8 +66,8 @@ enum LoginResult
|
||||||
|
|
||||||
// we need to stick to 1 version or half of the stuff will work for someone
|
// we need to stick to 1 version or half of the stuff will work for someone
|
||||||
// others will not and opposite
|
// 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
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue