From 84926b94e869a19f08a7a25df15b4c677316cd32 Mon Sep 17 00:00:00 2001 From: malufett Date: Fri, 22 Feb 2013 02:12:01 +0800 Subject: Fixed Bug #6708 -Where leveling homunculus causes map server to crash due to infinite loop. Signed-off-by: malufett --- src/map/atcommand.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/map/atcommand.c') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 0d56ce9bf..dbf66b6aa 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -6884,7 +6884,7 @@ ACMD_FUNC(showmobs) ACMD_FUNC(homlevel) { TBL_HOM * hd; - int level = 0, i = 0; + int level = 0; nullpo_retr(-1, sd); @@ -6900,10 +6900,13 @@ ACMD_FUNC(homlevel) hd = sd->hd; - for (i = 1; i <= level && hd->exp_next; i++){ + if ( battle_config.hom_max_level == hd->homunculus.level ) // Already reach maximum level + return 0; + + do{ hd->homunculus.exp += hd->exp_next; - merc_hom_levelup(hd); - } + }while( hd->homunculus.level < level && merc_hom_levelup(hd) ); + status_calc_homunculus(hd,0); status_percent_heal(&hd->bl, 100, 100); clif_specialeffect(&hd->bl,568,AREA); -- cgit v1.2.3-60-g2f50