fix(Core/Spells): Fix crash (#20179)

Co-authored-by: Ariel Silva <ariel-@users.noreply.github.com>
This commit is contained in:
Angelo Venturini
2024-10-11 08:15:02 -03:00
committed by GitHub
parent c3ee737c80
commit fede17f782
3 changed files with 13 additions and 9 deletions

View File

@@ -4081,13 +4081,15 @@ void Spell::_cast(bool skipCheck)
if (modOwner)
modOwner->SetSpellModTakingSpell(this, false);
if (const std::vector<int32>* spell_triggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id))
if (std::vector<int32> const* spell_triggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id))
{
for (std::vector<int32>::const_iterator i = spell_triggered->begin(); i != spell_triggered->end(); ++i)
if (*i < 0)
m_caster->RemoveAurasDueToSpell(-(*i));
for (int32 id : *spell_triggered)
{
if (id < 0)
m_caster->RemoveAurasDueToSpell(-id);
else
m_caster->CastSpell(m_targets.GetUnitTarget() ? m_targets.GetUnitTarget() : m_caster, *i, true);
m_caster->CastSpell(m_targets.GetUnitTarget() ? m_targets.GetUnitTarget() : m_caster, id, true);
}
}
// Interrupt Spell casting