From f593f624b0195dd8b7554b8f9891c84eb3eccb06 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Tue, 4 Jan 2022 13:49:15 +0100 Subject: [PATCH] fix(Core/Spells): Add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase. (#9765) * Move EffectInterruptCast to LAUNCH_TARGET Phase. * Source: TrinityCore. * Fixes #8484 --- src/server/game/Spells/Spell.cpp | 4 ++++ src/server/game/Spells/SpellEffects.cpp | 11 +---------- 2 files changed, 5 insertions(+), 10 deletions(-) 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)