Bläddra i källkod

Fixed bugreport:5809 Ice Wall should now block mobs properly.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16146 54d463be-8e91-2dee-dedb-b68131a5f0ec
shennetsind 13 år sedan
förälder
incheckning
42b37233ef
2 ändrade filer med 7 tillägg och 2 borttagningar
  1. 3 0
      src/map/mob.c
  2. 4 2
      src/map/skill.c

+ 3 - 0
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;

+ 4 - 2
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;
 }