diff options
Diffstat (limited to 'src/server/game/Entities/Player')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6eadba9e31b..b875d45029f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -98,6 +98,7 @@ #include "UpdateData.h" #include "UpdateFieldFlags.h" #include "Util.h" +#include "Vehicle.h" #include "VehiclePackets.h" #include "Weather.h" #include "WeatherMgr.h" @@ -26968,6 +26969,9 @@ void Player::ValidateMovementInfo(MovementInfo* mi) mi->RemoveMovementFlag((maskToRemove)); #endif + if (!GetVehicleBase() || !(GetVehicle()->GetVehicleInfo()->m_flags & VEHICLE_FLAG_FIXED_POSITION)) + REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_ROOT), MOVEMENTFLAG_ROOT); + /*! This must be a packet spoofing attempt. MOVEMENTFLAG_ROOT sent from the client is not valid in conjunction with any of the moving movement flags such as MOVEMENTFLAG_FORWARD. It will freeze clients that receive this player's movement info. |
