diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 8655bc7f0..b38bd1597 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7746,6 +7746,8 @@ void Spell::HandleLaunchPhase() usesAmmo = false; } + PrepareTargetProcessing(); + bool firstTarget = true; for (std::list::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) { @@ -7783,6 +7785,8 @@ void Spell::HandleLaunchPhase() DoAllEffectOnLaunchTarget(target, multiplier, firstTarget); firstTarget = false; } + + FinishTargetProcessing(); } void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier, bool firstTarget) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 2c74d368a..7ee7e6a4d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -895,11 +895,6 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex) } return; } - // Spell Lock, handled in interrupt effect - // launch is handled before hit triggers, thus silence removes current casted spell - // and interrupt is unable to detect any cast and doesnt work - case 24259: - return; } } @@ -3716,7 +3711,7 @@ void Spell::EffectHealMaxHealth(SpellEffIndex /*effIndex*/) void Spell::EffectInterruptCast(SpellEffIndex effIndex) { - if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET) return; if (!unitTarget || !unitTarget->IsAlive()) @@ -3747,10 +3742,6 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex) } } } - - // Spell Lock - if (m_spellInfo->Id == 19647) - m_caster->CastSpell(unitTarget, m_spellInfo->Effects[EFFECT_1].TriggerSpell, true); } void Spell::EffectSummonObjectWild(SpellEffIndex effIndex)