diff options
author | Unholychick <lucas__jensen@hotmail.com> | 2014-12-24 16:40:51 +0100 |
---|---|---|
committer | Unholychick <lucas__jensen@hotmail.com> | 2014-12-25 22:21:15 +0100 |
commit | ebf95e7ed7f518c54d9c4044e050d50e0dcb0c57 (patch) | |
tree | 697d69de26256ecafadb8bd4e316b3c69cca3170 /src/server/game/Spells/SpellEffects.cpp | |
parent | 998f1f98737ec169b36e6e45025e055d8aa6b770 (diff) |
Core/Scripts: Add new SpellScript hook OnEffectSuccessfulDispel
Adds SpellScript hook to execute scripts after succesful dispels, example could be warlock pets Devour Magic, which should only trigger when succesfully dispelling an aura.
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1a710eb6df9..7f445791d4e 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2259,7 +2259,7 @@ void Spell::EffectLearnSpell(SpellEffIndex effIndex) TC_LOG_DEBUG("spells", "Spell: %s has learned spell %u from %s", player->GetGUID().ToString().c_str(), spellToLearn, m_caster->GetGUID().ToString().c_str()); } -void Spell::EffectDispel(SpellEffIndex /*effIndex*/) +void Spell::EffectDispel(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) return; @@ -2351,20 +2351,7 @@ void Spell::EffectDispel(SpellEffIndex /*effIndex*/) } m_caster->SendMessageToSet(&dataSuccess, true); - // On success dispel - // Devour Magic - if (m_spellInfo->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellInfo->GetCategory() == SPELLCATEGORY_DEVOUR_MAGIC) - { - if (SpellEffectInfo const* effect = GetEffect(EFFECT_1)) - { - int32 heal_amount = effect->CalcValue(m_caster); - m_caster->CastCustomSpell(m_caster, 19658, &heal_amount, NULL, NULL, true); - // Glyph of Felhunter - if (Unit* owner = m_caster->GetOwner()) - if (owner->GetAura(56249)) - owner->CastCustomSpell(owner, 19658, &heal_amount, NULL, NULL, true); - } - } + CallScriptSuccessfulDispel(effIndex); } void Spell::EffectDualWield(SpellEffIndex /*effIndex*/) |