diff --git a/src/map/skill.c b/src/map/skill.c index 763af64..666b363 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3713,7 +3713,9 @@ int skill_castend_damage_id(struct block_list* src, struct block_list *bl, uint1 short x, y, i = 2; // Move 2 cells for Issen(from target) struct block_list *mbl = bl; short dir = 0; - + int speed; + struct unit_data *ud = unit->bl2ud(src); + skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); if( skill_id == MO_EXTREMITYFIST ) { @@ -3741,9 +3743,21 @@ 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) - ) { + + if (skill_id == MO_EXTREMITYFIST && 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; + } + } else 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);