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);
|
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));
|
damage = (int)((float)damage * GetTotalAuraMultiplierByMiscMask(AuraType.ModAoeDamageAvoidance, schoolMask));
|
||||||
if (caster.IsCreature())
|
if (casterGuid.IsAnyTypeCreature())
|
||||||
damage = (int)((float)damage * GetTotalAuraMultiplierByMiscMask(AuraType.ModCreatureAoeDamageAvoidance, schoolMask));
|
damage = (int)((float)damage * GetTotalAuraMultiplierByMiscMask(AuraType.ModCreatureAoeDamageAvoidance, schoolMask));
|
||||||
|
|
||||||
return damage;
|
return damage;
|
||||||
|
|||||||
@@ -4990,7 +4990,7 @@ namespace Game.Spells
|
|||||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||||
{
|
{
|
||||||
if (GetSpellEffectInfo().IsTargetingArea() || GetSpellEffectInfo().IsAreaAuraEffect() || GetSpellEffectInfo().Effect == SpellEffectName.PersistentAreaAura)
|
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;
|
int dmg = (int)damage;
|
||||||
@@ -5074,7 +5074,7 @@ namespace Game.Spells
|
|||||||
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
if (!GetSpellInfo().HasAttribute(SpellAttr4.FixedDamage))
|
||||||
{
|
{
|
||||||
if (GetSpellEffectInfo().IsTargetingArea() || GetSpellEffectInfo().IsAreaAuraEffect() || GetSpellEffectInfo().Effect == SpellEffectName.PersistentAreaAura)
|
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;
|
int dmg = (int)damage;
|
||||||
|
|||||||
@@ -6865,7 +6865,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
if (effect.IsTargetingArea() || effect.IsAreaAuraEffect() || effect.IsEffect(SpellEffectName.PersistentAreaAura))
|
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())
|
if (m_caster.IsPlayer())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user