diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Entities/Vehicle/VehicleDefines.h | 3 | 
2 files changed, 6 insertions, 1 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. diff --git a/src/server/game/Entities/Vehicle/VehicleDefines.h b/src/server/game/Entities/Vehicle/VehicleDefines.h index d8650d19038..6aed2a2f3bb 100644 --- a/src/server/game/Entities/Vehicle/VehicleDefines.h +++ b/src/server/game/Entities/Vehicle/VehicleDefines.h @@ -66,7 +66,8 @@ enum VehicleFlags      VEHICLE_FLAG_FULLSPEEDPITCHING               = 0x00000020,           // Sets MOVEFLAG2_FULLSPEEDPITCHING      VEHICLE_FLAG_CUSTOM_PITCH                    = 0x00000040,           // If set use pitchMin and pitchMax from DBC, otherwise pitchMin = -pi/2, pitchMax = pi/2      VEHICLE_FLAG_ADJUST_AIM_ANGLE                = 0x00000400,           // Lua_IsVehicleAimAngleAdjustable -    VEHICLE_FLAG_ADJUST_AIM_POWER                = 0x00000800            // Lua_IsVehicleAimPowerAdjustable +    VEHICLE_FLAG_ADJUST_AIM_POWER                = 0x00000800,           // Lua_IsVehicleAimPowerAdjustable +    VEHICLE_FLAG_FIXED_POSITION                  = 0x00200000            // Used for cannons, when they should be rooted  };  enum VehicleSpells | 
