From fe32fffa56c8703fd7e5c2d861d84f0e569d0f98 Mon Sep 17 00:00:00 2001 From: ariel- Date: Thu, 1 Sep 2016 01:09:23 -0300 Subject: [PATCH] Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges) --- src/server/game/Spells/Spell.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 67ac6dd478d..cf52728f83b 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3672,15 +3672,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