From 0300cef119ea1708f26ab1519d46c652410b414f Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 9 Dec 2021 22:06:53 +0100 Subject: [PATCH] fix(Core/Auras): Always process hover/waterwalking movement flags on aura removal. (#9416) Fixes #9056 --- src/server/game/Entities/Player/Player.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index f8e35a7bc..a7f26d453 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15015,8 +15015,12 @@ bool Player::SetCanFly(bool apply, bool packetOnly /*= false*/) bool Player::SetHover(bool apply, bool packetOnly /*= false*/) { - if (!packetOnly && !Unit::SetHover(apply)) - return false; + // moved inside, flag can be removed on landing and wont send appropriate packet to client when aura is removed + if (!packetOnly /* && !Unit::SetHover(apply)*/) + { + Unit::SetHover(apply); + // return false; + } WorldPacket data(apply ? SMSG_MOVE_SET_HOVER : SMSG_MOVE_UNSET_HOVER, 12); data << GetPackGUID(); @@ -15032,8 +15036,12 @@ bool Player::SetHover(bool apply, bool packetOnly /*= false*/) bool Player::SetWaterWalking(bool apply, bool packetOnly /*= false*/) { - if (!packetOnly && !Unit::SetWaterWalking(apply)) - return false; + // moved inside, flag can be removed on landing and wont send appropriate packet to client when aura is removed + if (!packetOnly /* && !Unit::SetWaterWalking(apply)*/) + { + Unit::SetWaterWalking(apply); + // return false; + } WorldPacket data(apply ? SMSG_MOVE_WATER_WALK : SMSG_MOVE_LAND_WALK, 12); data << GetPackGUID();