From 03fab34fa3a270382c5baa8a23d6b607636ddd4e Mon Sep 17 00:00:00 2001 From: aleos89 Date: Wed, 24 Feb 2016 13:31:36 -0500 Subject: [PATCH] Updated wall checks for some 3rd class skills * Wind Cutter, Cold Slower, Arms Cannon, Dragon Breath, Dragon Breath - Water, and Arrow Storm will no longer damage targets around walls. --- src/map/skill.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index 697ec6a07d..0ab3bc03f9 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4694,7 +4694,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint skill_area_temp[0] = map_foreachinrange(skill_area_sub, bl, (skill_id == AS_SPLASHER)?1:skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, BCT_ENEMY, skill_area_sub_count); // recursive invocation of skill_castend_damage_id() with flag|1 - map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + if (battle_config.skill_wall_check && skill_id == RA_ARROWSTORM) + map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); + else + map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), starget, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|SD_SPLASH|1, skill_castend_damage_id); if( skill_id == AS_SPLASHER ) { map_freeblock_unlock(); // Don't consume a second gemstone. return 0; @@ -11744,8 +11747,12 @@ int skill_castend_pos2(struct block_list* src, int x, int y, uint16 skill_id, ui case RK_DRAGONBREATH: case RK_DRAGONBREATH_WATER: i = skill_get_splash(skill_id,skill_lv); - map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src), - src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + if (battle_config.skill_wall_check) + map_foreachinshootrange(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src), + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); + else + map_foreachinarea(skill_area_sub,src->m,x-i,y-i,x+i,y+i,splash_target(src), + src,skill_id,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id); break; case SO_ARRULLO: