diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index d40716982..6673e5e5d 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -454,13 +454,22 @@ bool Creature::UpdateEntry(uint32 Entry, const CreatureData* data, bool changele SetAttackTime(RANGED_ATTACK, cInfo->RangeAttackTime); uint32 previousHealth = GetHealth(); + uint32 previousMaxHealth = GetMaxHealth(); uint32 previousPlayerDamageReq = m_PlayerDamageReq; SelectLevel(changelevel); if (previousHealth > 0) { SetHealth(previousHealth); - m_PlayerDamageReq = previousPlayerDamageReq; + + if (previousMaxHealth && previousMaxHealth > GetMaxHealth()) + { + m_PlayerDamageReq = (uint32)(previousPlayerDamageReq * GetMaxHealth() / previousMaxHealth); + } + else + { + m_PlayerDamageReq = previousPlayerDamageReq; + } } SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool));