diff options
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 33c95e4b2a2..a168305b559 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3656,15 +3656,18 @@ void Spell::finish(bool ok) { if (!m_triggeredByAuraSpell) m_caster->ToPlayer()->UpdatePotionCooldown(this); + } + if (Player* modOwner = m_caster->GetSpellModOwner()) + { // triggered spell pointer can be not set in some cases // this is needed for proper apply of triggered spell mods - m_caster->ToPlayer()->SetSpellModTakingSpell(this, true); + modOwner->SetSpellModTakingSpell(this, true); // Take mods after trigger spell (needed for 14177 to affect 48664) // mods are taken only on succesfull cast and independantly from targets of the spell - m_caster->ToPlayer()->RemoveSpellMods(this); - m_caster->ToPlayer()->SetSpellModTakingSpell(this, false); + modOwner->RemoveSpellMods(this); + modOwner->SetSpellModTakingSpell(this, false); } // Stop Attack for some spells |