aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-07-19 02:27:36 -0300
committerariel- <ariel-@users.noreply.github.com>2016-07-19 02:31:28 -0300
commitef85d01746b744d563d7c17a0734bf7e562dfab0 (patch)
tree07c1c21e4aafea25d3685b74771fba3af2707d23 /src
parent59f71f915a03143a3896bcf55649bea44969800c (diff)
Core/Entities: Readded check removed in d7460887c84107c9c83a9dd5259c8ab398928711, caused flying ghost players to not move if they died during a root effect, root flag was never cleared clientside and impeded movement.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/WorldSession.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 4131b7837b3..f65cd750ea9 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -828,6 +828,9 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
mi->RemoveMovementFlag((maskToRemove));
#endif
+ if (!GetPlayer()->GetVehicleBase() || !(GetPlayer()->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.