Explorar el Código

Added MEXP overflow checks.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10287 54d463be-8e91-2dee-dedb-b68131a5f0ec
LuzZza hace 18 años
padre
commit
730089fe0e
Se han modificado 2 ficheros con 5 adiciones y 1 borrados
  1. 1 0
      Changelog-Trunk.txt
  2. 4 1
      src/map/mob.c

+ 1 - 0
Changelog-Trunk.txt

@@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2007/04/18
+	* Added MEXP overflow checks. [LuzZza]
 	* Added bonus5 bAutoSpell/bAutoSpellWhenHit. The new parameter is used to
 	  specify when the spell should trigger (melee/range + weapon/magic/misc
 	  attack), see doc/item_bonus.txt for details. [Skotlex]

+ 4 - 1
src/map/mob.c

@@ -3321,7 +3321,10 @@ int mob_parse_dbrow(char** str)
 	status_calc_misc(&data.bl, status, db->lv);
 	
 	// MVP EXP Bonus, Chance: MEXP,ExpPer
-	db->mexp = atoi(str[30]) * battle_config.mvp_exp_rate / 100;
+	// Some new MVP's MEXP multipled by high exp-rate cause overflow. [LuzZza]
+	exp = (double)atoi(str[30]) * (double)battle_config.mvp_exp_rate / 100.;
+	db->mexp = (unsigned int)cap_value(exp, 0, UINT_MAX);
+
 	db->mexpper = atoi(str[31]);
 	
 	//Now that we know if it is an mvp or not, apply battle_config modifiers [Skotlex]