diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-08-08 13:03:57 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-08-08 13:03:57 +0200 |
commit | 9067eb22ced9fdceb36f344b63af0edae1f4142a (patch) | |
tree | 017b2fef96b8b22a21b874e17128c7db8ce1678b /src | |
parent | 6c005fadfaae4f6f0ed7a2285fadf55aecfcda75 (diff) |
Core/Units: Fixed crash in Unit::CalcArmorReducedDamage when called from periodic aura tick if caster is no longer in world
Closes #26776
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ac699cd5725..e015c6ca4a0 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1634,11 +1634,15 @@ void Unit::HandleEmoteCommand(uint32 anim_id, Trinity::IteratorPair<int32 const* if (G3D::fuzzyLe(armor, 0.0f)) return damage; + Classes attackerClass = CLASS_WARRIOR; if (attacker) + { attackerLevel = attacker->GetLevelForTarget(victim); + attackerClass = Classes(attacker->getClass()); + } // Expansion and ContentTuningID necessary? Does Player get a ContentTuningID too ? - float armorConstant = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::ArmorConstant, attackerLevel, -2, 0, Classes(attacker->getClass())); + float armorConstant = sDB2Manager.EvaluateExpectedStat(ExpectedStatType::ArmorConstant, attackerLevel, -2, 0, attackerClass); if (!(armor + armorConstant)) return damage; |