From 0fbf2cf7d3ef09da40199816733f6f8b9cfc1c6c Mon Sep 17 00:00:00 2001 From: NoFantasy Date: Wed, 25 May 2011 12:24:29 +0200 Subject: [PATCH] [11538] Add safeguard against weirdness in UpdateCombatSkills Prevent weapon/defense update also in case of negative skill difference result (may become negative after use of .level -N -command) Signed-off-by: NoFantasy --- src/game/Player.cpp | 7 +++++-- src/shared/revision_nr.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index fb65e8dad..341bf1707 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -5614,8 +5614,11 @@ void Player::UpdateCombatSkills(Unit *pVictim, WeaponAttackType attType, bool de if(lvldif < 3) lvldif = 3; - uint32 skilldif = 5 * plevel - (defence ? GetBaseDefenseSkillValue() : GetBaseWeaponSkillValue(attType)); - if(skilldif <= 0) + int32 skilldif = 5 * plevel - (defence ? GetBaseDefenseSkillValue() : GetBaseWeaponSkillValue(attType)); + + // Max skill reached for level. + // Can in some cases be less than 0: having max skill and then .level -1 as example. + if (skilldif <= 0) return; float chance = float(3 * lvldif * skilldif) / plevel; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index afb984a00..1f559d09a 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11537" + #define REVISION_NR "11538" #endif // __REVISION_NR_H__