diff options
author | Teleqraph <nyrdeveloper@gmail.com> | 2023-05-06 17:39:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-06 17:39:37 +0200 |
commit | 7c0ab49673626a74a3a9d6caee92099c6e265bf1 (patch) | |
tree | 15456635e6fbadd80b2a429a2e989bfa0fb89b1b | |
parent | 920b9a99bdd2d7eb9b7a787c4872a38b862f75c8 (diff) |
Core/Auras: Implement SpellAuraInterruptFlags2::LeaveArenaOrBattleground (#28943)
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellDefines.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 0bca373d715..a8a94b88733 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -908,6 +908,8 @@ void Battleground::RemovePlayerAtLeave(ObjectGuid guid, bool Transport, bool Sen player->RemoveAura(SPELL_MERCENARY_SHAPESHIFT); player->RemovePlayerFlagEx(PLAYER_FLAGS_EX_MERCENARY_MODE); + player->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2::LeaveArenaOrBattleground); + if (!player->IsAlive()) // resurrect on exit { player->ResurrectPlayer(1.0f); diff --git a/src/server/game/Spells/SpellDefines.h b/src/server/game/Spells/SpellDefines.h index e7bbd409437..3c89e1359d3 100644 --- a/src/server/game/Spells/SpellDefines.h +++ b/src/server/game/Spells/SpellDefines.h @@ -129,7 +129,7 @@ enum class SpellAuraInterruptFlags2 : uint32 Disconnect = 0x00000400, // NYI EnteringInstance = 0x00000800, // NYI DuelEnd = 0x00001000, // NYI - LeaveArenaOrBattleground = 0x00002000, // NYI + LeaveArenaOrBattleground = 0x00002000, // Implemented in Battleground::RemovePlayerAtLeave ChangeTalent = 0x00004000, ChangeGlyph = 0x00008000, SeamlessTransfer = 0x00010000, // NYI |