aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp37
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);
}
}