mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fix(Core/Spells): Add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase. (#9765)
* Move EffectInterruptCast to LAUNCH_TARGET Phase. * Source: TrinityCore. * Fixes #8484
This commit is contained in:
@@ -7746,6 +7746,8 @@ void Spell::HandleLaunchPhase()
|
|||||||
usesAmmo = false;
|
usesAmmo = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PrepareTargetProcessing();
|
||||||
|
|
||||||
bool firstTarget = true;
|
bool firstTarget = true;
|
||||||
for (std::list<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
|
for (std::list<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
|
||||||
{
|
{
|
||||||
@@ -7783,6 +7785,8 @@ void Spell::HandleLaunchPhase()
|
|||||||
DoAllEffectOnLaunchTarget(target, multiplier, firstTarget);
|
DoAllEffectOnLaunchTarget(target, multiplier, firstTarget);
|
||||||
firstTarget = false;
|
firstTarget = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FinishTargetProcessing();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier, bool firstTarget)
|
void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier, bool firstTarget)
|
||||||
|
|||||||
@@ -895,11 +895,6 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
|
|||||||
}
|
}
|
||||||
return;
|
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)
|
void Spell::EffectInterruptCast(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
|
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!unitTarget || !unitTarget->IsAlive())
|
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)
|
void Spell::EffectSummonObjectWild(SpellEffIndex effIndex)
|
||||||
|
|||||||
Reference in New Issue
Block a user