Core/Spells: fix delayed hit aura crash

This commit is contained in:
ariel-
2022-09-03 10:15:44 +02:00
committed by Ovahlord
parent 58e418574e
commit 82ffeb587b
2 changed files with 6 additions and 2 deletions

View File

@@ -2737,9 +2737,9 @@ void Spell::TargetInfo::DoDamageAndTriggers(Spell* spell)
else if (spell->m_caster->GetTypeId() == TYPEID_GAMEOBJECT && spell->m_caster->ToGameObject()->AI())
spell->m_caster->ToGameObject()->AI()->SpellHitTarget(_spellHitTarget, spell->m_spellInfo);
if (spell->_spellAura)
if (HitAura)
{
if (AuraApplication* aurApp = spell->_spellAura->GetApplicationOfTarget(_spellHitTarget->GetGUID()))
if (AuraApplication* aurApp = HitAura->GetApplicationOfTarget(_spellHitTarget->GetGUID()))
{
// only apply unapplied effects (for reapply case)
uint8 effMask = EffectMask & aurApp->GetEffectsToApply();
@@ -3027,7 +3027,10 @@ void Spell::DoSpellEffectHit(Unit* unit, uint8 effIndex, TargetInfo& hitInfo)
}
}
else
{
hitInfo.HitAura = _spellAura;
_spellAura->AddStaticApplication(unit, aura_effmask);
}
}
}

View File

@@ -694,6 +694,7 @@ class TC_GAME_API Spell
SpellInfo const* AuraSpellInfo = nullptr;
int32 AuraBasePoints[MAX_SPELL_EFFECTS] = { };
bool Positive = true;
UnitAura* HitAura = nullptr;
private:
Unit* _spellHitTarget = nullptr; // changed for example by reflect