Core/Unit: fixed crash
Port From (https://github.com/TrinityCore/TrinityCore/commit/84a29d8077d2e2b6e8c8ebcb967344b57668cb88)
This commit is contained in:
@@ -741,10 +741,10 @@ namespace Game.Entities
|
||||
damage -= (int)target.GetDamageReduction((uint)damage);
|
||||
}
|
||||
|
||||
public int CalculateAOEAvoidance(int damage, uint schoolMask, Unit caster)
|
||||
public int CalculateAOEAvoidance(int damage, uint schoolMask, ObjectGuid casterGuid)
|
||||
{
|
||||
damage = (int)((float)damage * GetTotalAuraMultiplierByMiscMask(AuraType.ModAoeDamageAvoidance, schoolMask));
|
||||
if (caster.IsCreature())
|
||||
if (casterGuid.IsAnyTypeCreature())
|
||||
damage = (int)((float)damage * GetTotalAuraMultiplierByMiscMask(AuraType.ModCreatureAoeDamageAvoidance, schoolMask));
|
||||
|
||||
return damage;
|
||||
|
||||
@@ -4990,7 +4990,7 @@ namespace Game.Spells
|
||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||
{
|
||||
if (GetSpellEffectInfo().IsTargetingArea() || GetSpellEffectInfo().IsAreaAuraEffect() || GetSpellEffectInfo().Effect == SpellEffectName.PersistentAreaAura)
|
||||
damage = (uint)target.CalculateAOEAvoidance((int)damage, (uint)m_spellInfo.SchoolMask, caster);
|
||||
damage = (uint)target.CalculateAOEAvoidance((int)damage, (uint)m_spellInfo.SchoolMask, GetBase().GetCastItemGUID());
|
||||
}
|
||||
|
||||
int dmg = (int)damage;
|
||||
@@ -5074,7 +5074,7 @@ namespace Game.Spells
|
||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||
{
|
||||
if (GetSpellEffectInfo().IsTargetingArea() || GetSpellEffectInfo().IsAreaAuraEffect() || GetSpellEffectInfo().Effect == SpellEffectName.PersistentAreaAura)
|
||||
damage = (uint)target.CalculateAOEAvoidance((int)damage, (uint)m_spellInfo.SchoolMask, caster);
|
||||
damage = (uint)target.CalculateAOEAvoidance((int)damage, (uint)m_spellInfo.SchoolMask, GetBase().GetCastItemGUID());
|
||||
}
|
||||
|
||||
int dmg = (int)damage;
|
||||
|
||||
@@ -6865,7 +6865,7 @@ namespace Game.Spells
|
||||
{
|
||||
if (effect.IsTargetingArea() || effect.IsAreaAuraEffect() || effect.IsEffect(SpellEffectName.PersistentAreaAura))
|
||||
{
|
||||
m_damage = unit.CalculateAOEAvoidance(m_damage, (uint)m_spellInfo.SchoolMask, m_caster);
|
||||
m_damage = unit.CalculateAOEAvoidance(m_damage, (uint)m_spellInfo.SchoolMask, m_caster.GetGUID());
|
||||
|
||||
if (m_caster.IsPlayer())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user