From d1331412e63ae2b90f1f24542b70e25b373b47b4 Mon Sep 17 00:00:00 2001 From: Yehonal <147092+Yehonal@users.noreply.github.com> Date: Fri, 24 Jul 2026 05:51:54 +0000 Subject: [PATCH] fix(Core/Spells): clear stale spellmod tracking spell (#26535) --- src/server/game/Spells/Spell.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 4ce8e3870..9847c0bf5 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -695,6 +695,10 @@ Spell::Spell(Unit* caster, SpellInfo const* info, TriggerCastFlags triggerFlags, Spell::~Spell() { + if (Player* modOwner = m_caster ? m_caster->GetSpellModOwner() : nullptr) + if (modOwner->m_spellModTakingSpell == this) + modOwner->SetSpellModTakingSpell(this, false); + // unload scripts while (!m_loadedScripts.empty()) { @@ -4469,6 +4473,9 @@ void Spell::finish(bool ok) return; m_spellState = SPELL_STATE_FINISHED; + if (Player* modOwner = m_caster->GetSpellModOwner()) + modOwner->SetSpellModTakingSpell(this, false); + if (m_spellInfo->IsChanneled()) m_caster->UpdateInterruptMask();