Skip to content

Commit 436ae38

Browse files
Merge pull request #2550 from skyleo/cliff_aggro_ranged_no_attack_fix
Fix aggressive ranged mobs not attacking from above a cliff
2 parents 275edef + 4f9cafb commit 436ae38

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/map/mob.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1173,13 +1173,15 @@ static int mob_ai_sub_hard_activesearch(struct block_list *bl, va_list ap)
11731173
battle->check_range(&md->bl,bl,md->db->range2)
11741174
) { //Pick closest target?
11751175
#ifdef ACTIVEPATHSEARCH
1176-
struct walkpath_data wpd;
1177-
if (!path->search(&wpd, &md->bl, md->bl.m, md->bl.x, md->bl.y, bl->x, bl->y, 0, CELL_CHKNOPASS)) // Count walk path cells
1178-
return 0;
1179-
//Standing monsters use range2, walking monsters use range3
1180-
if ((md->ud.walktimer == INVALID_TIMER && wpd.path_len > md->db->range2)
1181-
|| (md->ud.walktimer != INVALID_TIMER && wpd.path_len > md->db->range3))
1182-
return 0;
1176+
struct walkpath_data wpd;
1177+
bool is_standing = (md->ud.walktimer == INVALID_TIMER);
1178+
if (!path->search(&wpd, &md->bl, md->bl.m, md->bl.x, md->bl.y, bl->x, bl->y, 0, CELL_CHKNOPASS) // Count walk path cells
1179+
|| (is_standing && wpd.path_len > md->db->range2) //Standing monsters use range2, walking monsters use range3
1180+
|| (!is_standing && wpd.path_len > md->db->range3)) {
1181+
if (!check_distance_bl(&md->bl, bl, md->status.rhw.range)
1182+
|| !path->search_long(NULL, &md->bl, md->bl.m, md->bl.x, md->bl.y, bl->x, bl->y, CELL_CHKWALL))
1183+
return 0;
1184+
}
11831185
#endif
11841186
(*target) = bl;
11851187
md->target_id=bl->id;

0 commit comments

Comments
 (0)