diff --git a/src/map/skill.c b/src/map/skill.c index 763af64..002304d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3710,9 +3710,11 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1 case NJ_ISSEN: case MO_EXTREMITYFIST: { + struct unit_data *ud = unit->bl2ud(src); short x, y, i = 2; // Move 2 cells for Issen(from target) struct block_list *mbl = bl; short dir = 0; + int speed; skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); @@ -3741,12 +3743,20 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1 if( dir > 2 && dir < 6 ) y = -i; else if( dir == 7 || dir < 2 ) y = i; else y = 0; - if( (mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) // only NJ_ISSEN don't have slide effect in GVG - && unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1) - ) { - clif->slide(src, src->x, src->y); - clif->fixpos(src); - clif->spiritball(src); + + if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground) ) + && unit->walktoxy(src, mbl->x + x, mbl->y + y, 2) && ud) + { + //Increase can't walk delay to not alter your walk path + ud->canmove_tick = tick; + speed = status->get_speed(src); + for (i = 0; i < ud->walkpath.path_len; i ++) + { + if(ud->walkpath.path[i]&1) + ud->canmove_tick += 7*speed/5; + else + ud->canmove_tick += speed; + } } } break;