From 7ac8ddc2d5c0827c86a4b3813a5fa2b29541f684 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 24 May 2012 22:20:06 +0000 Subject: Fixed bugreport:5809 Ice Wall should now block mobs properly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16146 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/mob.c | 3 +++ src/map/skill.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/map') diff --git a/src/map/mob.c b/src/map/mob.c index cf2e8ed6e..b1deb5b81 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1074,12 +1074,15 @@ static int mob_ai_sub_hard_activesearch(struct block_list *bl,va_list ap) ((*target) == NULL || !check_distance_bl(&md->bl, *target, dist)) && battle_check_range(&md->bl,bl,md->db->range2) ) { //Pick closest target? + if( map[bl->m].icewall_num && !path_search_long(NULL,bl->m,md->bl.x,md->bl.y,bl->x,bl->y,CELL_CHKICEWALL) ) { if( !check_distance_bl(&md->bl, bl, status_get_range(&md->bl) ) ) return 0; + } + (*target) = bl; md->target_id=bl->id; md->min_chase= dist + md->db->range3; diff --git a/src/map/skill.c b/src/map/skill.c index 0916f33bd..f373ab08f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -9954,12 +9954,14 @@ static int skill_icewall_block(struct block_list *bl,va_list ap) { if( !md->target_id ) return 0; nullpo_ret( ( target = map_id2bl(md->target_id) ) ); - + if( path_search_long(NULL,bl->m,bl->x,bl->y,target->x,target->y,CELL_CHKICEWALL) ) return 0; - if( !check_distance_bl(bl, target, status_get_range(bl) ) ) + if( !check_distance_bl(bl, target, status_get_range(bl) ) ) { mob_unlocktarget(md,gettick()); + mob_stop_walking(md,1); + } return 0; } -- cgit v1.2.3-60-g2f50