Issue information

Issue ID
#6494
Status
Invalid
Severity
None
Started
Hercules Elf Bot
Aug 18, 2012 17:06
Last Post
Hercules Elf Bot
Aug 22, 2012 20:43
Confirmation
N/A

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