Hercules Elf Bot - Aug 18, 2012 17:06
Originally posted by [b]Lunar[/b]
Sorry if i'm in the wrong section :s
Monsters stop walking when you cast an Ice Wall before them.
Before monsters bypasses the ice wall with the path finding, but now there
are completely stuck.
So I found a solution ;
There is a mistake in this function :
[CODE]
static int skill_icewall_block(struct block_list *bl,va_list ap) {
struct block_list *target = NULL;
struct mob_data *md = ((TBL_MOB*)bl);
nullpo_ret(bl);
nullpo_ret(md);
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)) ) {
mob_unlocktarget(md,gettick());
mob_stop_walking(md,1);
}
return 0;
}
[/CODE]
in this line :
[CODE]if( !check_distance_bl(bl, target, status_get_range(bl)) ) {[/CODE]
[b]status_get_range(bl)[/b] is the range of[b] the WEAPON[/b] of the unit [b](melee attack)[/b]
We have to use the view range of monsters (range2)
it must be :
[CODE]
static int skill_icewall_block(struct block_list *bl,va_list ap) {
struct block_list *target = NULL;
struct mob_data *md = ((TBL_MOB*)bl);
nullpo_ret(bl);
nullpo_ret(md);
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, md->db->range2 ) ) {
mob_unlocktarget(md,gettick());
mob_stop_walking(md,1);
}
return 0;
}
[/CODE]
This post has been edited by
Lunar
on Aug 18, 2012 17:12
Hercules Elf Bot - Aug 18, 2012 17:52
Originally posted by [b]Ind[/b]
i need confirmation on the behavior, i do believe however your fix is wrong because most mobs have a high view range while in officials they stop chasing you even they're 3 cells away (you - ice wall - them)
Hercules Elf Bot - Aug 18, 2012 17:55
Originally posted by [b]Lunar[/b]
I'm not sure about the behavior in officials, but i'm sure it wasn't the case long ago.
Hercules Elf Bot - Aug 18, 2012 19:04
Originally posted by [b]Ind[/b]
you can find the previous discussion here, for further information, if you like. http://rathena.org/board/tracker/issue-3574-ice-wall-monster-ai-not-working-as-intended/
Hercules Elf Bot - Aug 18, 2012 23:10
Originally posted by [b]Lunar[/b]
Thank, so it is really a eAthena feature.
I've played with it all my game time in Ro, so I was convinced it was an anormal behavior.
Maybe, we can give the choice to the user in skill.conf ?
This post has been edited by
Lunar
on Aug 18, 2012 23:12
Hercules Elf Bot - Aug 21, 2012 9:48
Originally posted by [b]Angezerus[/b]
I don't really understand why it is a problem if monsters stop when you put icewall between you and them. This is one of the main purposes of the skill O.o . This is the official behaviour. It wasn't working this way because it was bugged ever since eAthena existed, and since we follow kRo, and eA did the same thing, I think this is a fix rather than a new feature.
Hercules Elf Bot - Aug 22, 2012 20:43
Originally posted by [b]Ind[/b]
indeed