Core/Unit: fixed crash
This commit is contained in:
1 parent
fd228f6c41
commit
6fc5bfcd08
4 files changed
+6
-6
No files matched your search
@@ -12849,10 +12849,10 @@ bool Unit::CanApplyResilience() const
|
||||
*damage -= target->GetDamageReduction(*damage);
|
||||
}
|
||||
|
||||
int32 Unit::CalculateAOEAvoidance(int32 damage, uint32 schoolMask, Unit* caster) const
|
||||
int32 Unit::CalculateAOEAvoidance(int32 damage, uint32 schoolMask, ObjectGuid const& casterGuid) const
|
||||
{
|
||||
damage = int32(float(damage) * GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_AOE_DAMAGE_AVOIDANCE, schoolMask));
|
||||
if (caster->GetTypeId() == TYPEID_UNIT)
|
||||
if (casterGuid.IsAnyTypeCreature())
|
||||
damage = int32(float(damage) * GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_CREATURE_AOE_DAMAGE_AVOIDANCE, schoolMask));
|
||||
|
||||
return damage;
|
||||
|
||||
@@ -1069,7 +1069,7 @@ class TC_GAME_API Unit : public WorldObject
|
||||
virtual bool CanApplyResilience() const;
|
||||
static void ApplyResilience(Unit const* victim, int32* damage);
|
||||
|
||||
int32 CalculateAOEAvoidance(int32 damage, uint32 schoolMask, Unit* caster) const;
|
||||
int32 CalculateAOEAvoidance(int32 damage, uint32 schoolMask, ObjectGuid const& casterGuid) const;
|
||||
|
||||
float MeleeSpellMissChance(Unit const* victim, WeaponAttackType attType, SpellInfo const* spellInfo = nullptr) const;
|
||||
SpellMissInfo MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo);
|
||||
|
||||
@@ -5774,7 +5774,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
|
||||
if (!GetSpellInfo()->HasAttribute(SPELL_ATTR4_FIXED_DAMAGE))
|
||||
{
|
||||
if (GetSpellInfo()->Effects[GetEffIndex()].IsTargetingArea() || GetSpellInfo()->Effects[GetEffIndex()].IsAreaAuraEffect() || GetSpellInfo()->Effects[GetEffIndex()].Effect == SPELL_EFFECT_PERSISTENT_AREA_AURA)
|
||||
damage = target->CalculateAOEAvoidance(damage, m_spellInfo->SchoolMask, caster);
|
||||
damage = target->CalculateAOEAvoidance(damage, m_spellInfo->SchoolMask, GetBase()->GetCasterGUID());
|
||||
}
|
||||
|
||||
int32 dmg = damage;
|
||||
@@ -5871,7 +5871,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
|
||||
if (!GetSpellInfo()->HasAttribute(SPELL_ATTR4_FIXED_DAMAGE))
|
||||
{
|
||||
if (GetSpellInfo()->Effects[GetEffIndex()].IsTargetingArea() || GetSpellInfo()->Effects[GetEffIndex()].IsAreaAuraEffect() || GetSpellInfo()->Effects[GetEffIndex()].Effect == SPELL_EFFECT_PERSISTENT_AREA_AURA)
|
||||
damage = target->CalculateAOEAvoidance(damage, m_spellInfo->SchoolMask, caster);
|
||||
damage = target->CalculateAOEAvoidance(damage, m_spellInfo->SchoolMask, GetBase()->GetCasterGUID());
|
||||
}
|
||||
|
||||
int32 dmg = damage;
|
||||
|
||||
@@ -7864,7 +7864,7 @@ void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier)
|
||||
{
|
||||
if (m_spellInfo->Effects[i].IsTargetingArea() || m_spellInfo->Effects[i].IsAreaAuraEffect() || m_spellInfo->Effects[i].IsEffect(SPELL_EFFECT_PERSISTENT_AREA_AURA))
|
||||
{
|
||||
m_damage = unit->CalculateAOEAvoidance(m_damage, m_spellInfo->SchoolMask, m_caster);
|
||||
m_damage = unit->CalculateAOEAvoidance(m_damage, m_spellInfo->SchoolMask, m_caster->GetGUID());
|
||||
|
||||
if (m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user