mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-21 15:27:47 -04:00
Core/Entities: fix integer undeflow when calculating skill value difference
Closes #19455
This commit is contained in:
@@ -708,8 +708,8 @@ float Player::GetMissPercentageFromDefense() const
|
||||
{
|
||||
float diminishing = 0.0f, nondiminishing = 0.0f;
|
||||
// Modify value from defense skill (only bonus from defense rating diminishes)
|
||||
nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
|
||||
diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
|
||||
nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
|
||||
diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
|
||||
|
||||
// apply diminishing formula to diminishing miss chance
|
||||
return CalculateDiminishingReturns(miss_cap, getClass(), nondiminishing, diminishing);
|
||||
@@ -741,8 +741,8 @@ void Player::UpdateParryPercentage()
|
||||
// Parry from rating
|
||||
float diminishing = GetRatingBonusValue(CR_PARRY);
|
||||
// Modify value from defense skill (only bonus from defense rating diminishes)
|
||||
nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
|
||||
diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
|
||||
nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
|
||||
diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
|
||||
// Parry from SPELL_AURA_MOD_PARRY_PERCENT aura
|
||||
nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_PARRY_PERCENT);
|
||||
|
||||
@@ -777,8 +777,8 @@ void Player::UpdateDodgePercentage()
|
||||
float diminishing = 0.0f, nondiminishing = 0.0f;
|
||||
GetDodgeFromAgility(diminishing, nondiminishing);
|
||||
// Modify value from defense skill (only bonus from defense rating diminishes)
|
||||
nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
|
||||
diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
|
||||
nondiminishing += (int32(GetSkillValue(SKILL_DEFENSE)) - int32(GetMaxSkillValueForLevel())) * 0.04f;
|
||||
diminishing += (GetRatingBonusValue(CR_DEFENSE_SKILL) * 0.04f);
|
||||
// Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura
|
||||
nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT);
|
||||
// Dodge from rating
|
||||
|
||||
Reference in New Issue
Block a user