case MO_EXTREMITYFIST:
{
//short x, y, i = 2; // Move 2 cells for Issen(from target)
struct block_list *mbl = bl;
short dir = 0;
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
if( skill_id == MO_EXTREMITYFIST )
{
mbl = src;
status_set_sp(src, 0, 0);
status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
#ifdef RENEWAL
sc_start(src,src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));
#endif
}else
status_set_hp(src,
#ifdef RENEWAL
max(status_get_max_hp(src)/100, 1)
#else
1
#endif
, 0);
}
//Client expects you to move to target regardless of distance
{
struct unit_data *ud = unit_bl2ud(src);
short dx,dy;
int i,speed;
i = skill_id == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura
dx = bl->x - src->x;
dy = bl->y - src->y;
if (dx < 0) dx-=i;
else if (dx > 0) dx+=i;
if (dy < 0) dy-=i;
else if (dy > 0) dy+=i;
if (!dx && !dy) dy++;
if (map_getcell(src->m, src->x+dx, src->y+dy, CELL_CHKNOPASS))
{
dx = bl->x;
dy = bl->y;
} else {
dx = src->x + dx;
dy = src->y + dy;
}
if(unit_walktoxy(src, dx, dy, 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&1)
ud->canmove_tick+=7*speed/5;
else
ud->canmove_tick+=speed;
}
}
}
break;
can anyone convert this to latest hercules OLD style asura strike
Please Move this Topic to SRC Support Section
{
//short x, y, i = 2; // Move 2 cells for Issen(from target)
struct block_list *mbl = bl;
short dir = 0;
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
if( skill_id == MO_EXTREMITYFIST )
{
mbl = src;
status_set_sp(src, 0, 0);
status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
#ifdef RENEWAL
sc_start(src,src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));
#endif
}else
status_set_hp(src,
#ifdef RENEWAL
max(status_get_max_hp(src)/100, 1)
#else
1
#endif
, 0);
}
//Client expects you to move to target regardless of distance
{
struct unit_data *ud = unit_bl2ud(src);
short dx,dy;
int i,speed;
i = skill_id == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura
dx = bl->x - src->x;
dy = bl->y - src->y;
if (dx < 0) dx-=i;
else if (dx > 0) dx+=i;
if (dy < 0) dy-=i;
else if (dy > 0) dy+=i;
if (!dx && !dy) dy++;
if (map_getcell(src->m, src->x+dx, src->y+dy, CELL_CHKNOPASS))
{
dx = bl->x;
dy = bl->y;
} else {
dx = src->x + dx;
dy = src->y + dy;
}
if(unit_walktoxy(src, dx, dy, 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&1)
ud->canmove_tick+=7*speed/5;
else
ud->canmove_tick+=speed;
}
}
}
break;
can anyone convert this to latest hercules OLD style asura strike
Please Move this Topic to SRC Support Section
Last edited by a moderator: