Browse Source

fixed mapserv crash (divide by zero in Earthquake)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12618 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lupus 17 năm trước cách đây
mục cha
commit
ba5c9df29d
2 tập tin đã thay đổi với 5 bổ sung1 xóa
  1. 1 0
      Changelog-Trunk.txt
  2. 4 1
      src/map/battle.c

+ 1 - 0
Changelog-Trunk.txt

@@ -9,6 +9,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 	  item_avail in the shop (the real one was added in inventory).
 	* Implemented config setting 'vending_over_max', to let people configure
 	  the behavior of vending items over the MAX_ZENY limit [ultramage]
+	* Fixed mapserv crash, thanks to Konard [Lupus]
 2008/04/15
 	* Use the same code for script commands getitem & getitem2 as @item to avoid
 	  bug in bugreport:1324 (non-stackable items are stacked) [Toms]

+ 4 - 1
src/map/battle.c

@@ -2346,7 +2346,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
 		if (skill_num == NPC_EARTHQUAKE)
 		{	//Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex]
 			//Also divide the extra bonuses from atk2 based on the number in range [Kevin]
-			ad.damage+= (sstatus->rhw.atk2*skillratio/100)/mflag;
+			if(mflag>0)
+				ad.damage+= (sstatus->rhw.atk2*skillratio/100)/mflag;
+			else
+				ShowError("Zero range by %d:%s, divide per 0 avoided!\n", skill_num, skill_get_name(skill_num));
 		}
 
 		if(ad.damage<1)