diff options
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f14ff30d5b6..ed6225b3a5b 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1128,6 +1128,10 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon for (uint8 i = 0; i < MAX_ITEM_PROTO_DAMAGES; ++i) { + // only players have secondary weapon damage + if (i > 0 && GetTypeId() != TYPEID_PLAYER) + break; + if (immunedMask & (1 << i)) continue; @@ -1135,7 +1139,8 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon bool const addPctMods = (schoolMask & SPELL_SCHOOL_MASK_NORMAL); uint32 damage = 0; - damage += CalculateDamage(damageInfo->AttackType, false, addPctMods, (1 << i)); + uint8 itemDamagesMask = (GetTypeId() == TYPEID_PLAYER) ? (1 << i) : 0; + damage += CalculateDamage(damageInfo->AttackType, false, addPctMods, itemDamagesMask); // Add melee damage bonus damage = MeleeDamageBonusDone(damageInfo->Target, damage, damageInfo->AttackType, nullptr, schoolMask); damage = damageInfo->Target->MeleeDamageBonusTaken(this, damage, damageInfo->AttackType, nullptr, schoolMask); |
