From ef85d01746b744d563d7c17a0734bf7e562dfab0 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 19 Jul 2016 02:27:36 -0300 Subject: 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. --- src/server/game/Server/WorldSession.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') 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. -- cgit v1.2.3