diff options
| author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2019-06-15 17:09:52 +0400 |
|---|---|---|
| committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-06-15 15:09:52 +0200 |
| commit | 865ab86173b529bd96cbd1b7fb929def9fc895ce (patch) | |
| tree | 324ba7d109f4ec0f595e84b6f9587b4ebdd3d87b /src | |
| parent | 0a24a6571b7065d66afe52fc7b0b00f6366272bf (diff) | |
Core/Entities: fix excessive damage of exotic pets and some creatures (#23403)
* Core/Conditions: implement CONDITION_GAMEMASTER
* Core/Entities: fix excessive exotic pet and some creatures damage
Diffstat (limited to 'src')
| -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); |
