From eb4eeecb6219b30b65c874191a2d74aecc9dc074 Mon Sep 17 00:00:00 2001 From: Rochet2 Date: Sat, 29 Oct 2016 17:08:20 +0300 Subject: [PATCH] Fix CalcAbsorbResist after https://github.com/TrinityCore/TrinityCore/commit/d3a71a83387f757f87c7d27e1054498c8cc49c8f --- UnitMethods.h | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/UnitMethods.h b/UnitMethods.h index a62dcc1..4e07657 100644 --- a/UnitMethods.h +++ b/UnitMethods.h @@ -2571,13 +2571,24 @@ namespace LuaUnit // melee damage by specific school if (!spell) { +#ifdef TRINITY + DamageInfo dmgInfo(unit, target, damage, nullptr, schoolmask, SPELL_DIRECT_DAMAGE, BASE_ATTACK); + unit->CalcAbsorbResist(dmgInfo); + + if (!dmgInfo.GetDamage()) + damage = 0; + else + damage = dmgInfo.GetDamage(); + + uint32 absorb = dmgInfo.GetAbsorb(); + uint32 resist = dmgInfo.GetResist(); + unit->DealDamageMods(target, damage, &absorb); + unit->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false); + unit->SendAttackStateUpdate(HITINFO_AFFECTS_VICTIM, target, 0, schoolmask, damage, absorb, resist, VICTIMSTATE_HIT, 0); +#else uint32 absorb = 0; uint32 resist = 0; -#ifdef TRINITY - unit->CalcAbsorbResist(target, schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); -#else target->CalculateDamageAbsorbAndResist(unit, schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); -#endif if (damage <= absorb + resist) damage = 0; @@ -2586,9 +2597,6 @@ namespace LuaUnit unit->DealDamageMods(target, damage, &absorb); unit->DealDamage(target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false); -#ifdef TRINITY - unit->SendAttackStateUpdate(HITINFO_AFFECTS_VICTIM, target, 1, schoolmask, damage, absorb, resist, VICTIMSTATE_HIT, 0); -#else unit->SendAttackStateUpdate(HITINFO_NORMALSWING2, target, schoolmask, damage, absorb, resist, VICTIMSTATE_NORMAL, 0); #endif return 0;