aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-06-23 20:15:02 +0200
committerShauren <shauren.trinity@gmail.com>2025-09-25 00:53:19 +0200
commit3863c545298b72537f611eae716e4ef936d5fc55 (patch)
treee59c00026677d5b7b62cbfdfd133b57bde4567e7
parent56a8defe62eb81bca8ecc3d0f689ba9e98ede1a8 (diff)
Core/PacketIO: Send proper SPLINE_ROOT packets for stunned creatures
(cherry picked from commit ab601de6af21cb10b34a472076ea427440241b5b)
-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);
}
}