diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-06-23 20:15:02 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-09-25 00:53:19 +0200 |
commit | 3863c545298b72537f611eae716e4ef936d5fc55 (patch) | |
tree | e59c00026677d5b7b62cbfdfd133b57bde4567e7 | |
parent | 56a8defe62eb81bca8ecc3d0f689ba9e98ede1a8 (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.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); } } |