From 7c0ab49673626a74a3a9d6caee92099c6e265bf1 Mon Sep 17 00:00:00 2001 From: Teleqraph Date: Sat, 6 May 2023 17:39:37 +0200 Subject: Core/Auras: Implement SpellAuraInterruptFlags2::LeaveArenaOrBattleground (#28943) --- src/server/game/Battlegrounds/Battleground.cpp | 2 ++ src/server/game/Spells/SpellDefines.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3