From fe7734dcb4ee15221b5dd006ea269ddf2f42e4b2 Mon Sep 17 00:00:00 2001 From: malufett Date: Sun, 14 Dec 2014 21:47:22 +0800 Subject: Fixed Bug#8456 -http://hercules.ws/board/tracker/issue-8456-map-crash-skill-cell-overlap/?gopid=24193 Signed-off-by: malufett --- src/map/mob.c | 8 +++++++- src/map/skill.c | 8 +++++--- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/map/mob.c b/src/map/mob.c index 629653c8d..6171ddb75 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -3715,7 +3715,12 @@ bool mob_parse_dbrow(char** str) { mstatus->int_ = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[17])); mstatus->dex = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[18])); mstatus->luk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[19])); - + + /* + * Disabled for renewal since difference of 0 and 1 still has an impact in the formulas + * Just in case there is a mishandled division by zero please let us know. [malufett] + */ +#ifndef RENEWAL //All status should be min 1 to prevent divisions by zero from some skills. [Skotlex] if (mstatus->str < 1) mstatus->str = 1; if (mstatus->agi < 1) mstatus->agi = 1; @@ -3723,6 +3728,7 @@ bool mob_parse_dbrow(char** str) { if (mstatus->int_< 1) mstatus->int_= 1; if (mstatus->dex < 1) mstatus->dex = 1; if (mstatus->luk < 1) mstatus->luk = 1; +#endif //Tests showed that chase range is effectively 2 cells larger than expected [Playtester] if (db->range3 > 0) diff --git a/src/map/skill.c b/src/map/skill.c index eb7394b9e..d89d82f57 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -10107,11 +10107,13 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui } case MG_SAFETYWALL: - if (map->foreachincell(skill->cell_overlap,src->m,x,y,BL_SKILL)) { - skill->unitsetting(src,skill_id,skill_lv,x,y,0); + { + int alive = 1; + if ( map->foreachincell(skill->cell_overlap, src->m, x, y, BL_SKILL, skill_id, &alive, src) ) { + skill->unitsetting(src, skill_id, skill_lv, x, y, 0); return 0; // Don't consume gems if cast on LP } - + } case MG_FIREWALL: case MG_THUNDERSTORM: -- cgit v1.2.3-70-g09d2