diff options
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 6ef932fc5e5..65b3afed4dd 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -11354,29 +11354,12 @@ void Unit::SetStunned(bool apply) SetTarget(ObjectGuid::Empty); SetUnitFlag(UNIT_FLAG_STUNNED); - // MOVEMENTFLAG_ROOT cannot be used in conjunction with MOVEMENTFLAG_MASK_MOVING (tested 3.3.5a) - // this will freeze clients. That's why we remove MOVEMENTFLAG_MASK_MOVING before - // setting MOVEMENTFLAG_ROOT - RemoveUnitMovementFlag(MOVEMENTFLAG_MASK_MOVING); - AddUnitMovementFlag(MOVEMENTFLAG_ROOT); StopMoving(); if (GetTypeId() == TYPEID_PLAYER) SetStandState(UNIT_STAND_STATE_STAND); - if (GetTypeId() == TYPEID_PLAYER) - { - WorldPacket data(SMSG_FORCE_MOVE_ROOT, 10); - data << GetPackGUID(); - data << GetMovementCounterAndInc(); - SendMessageToSet(&data, true); - } - else - { - WorldPacket data(SMSG_SPLINE_MOVE_ROOT, 8); - data << GetPackGUID(); - SendMessageToSet(&data, true); - } + SetRooted(true); CastStop(); } @@ -11391,23 +11374,7 @@ void Unit::SetStunned(bool apply) RemoveUnitFlag(UNIT_FLAG_STUNNED); if (!HasUnitState(UNIT_STATE_ROOT)) // prevent moving if it also has root effect - { - if (GetTypeId() == TYPEID_PLAYER) - { - WorldPacket data(SMSG_FORCE_MOVE_UNROOT, 10); - data << GetPackGUID(); - data << GetMovementCounterAndInc(); - SendMessageToSet(&data, true); - } - else - { - WorldPacket data(SMSG_SPLINE_MOVE_UNROOT, 8); - data << GetPackGUID(); - SendMessageToSet(&data, true); - } - - RemoveUnitMovementFlag(MOVEMENTFLAG_ROOT); - } + SetRooted(false); } } |