Jump to content
  • 0
Sign in to follow this  
deadzero

Help me with skill MO_EXTREMITYFIST

Question

Hi, I modified my skill.c for MO_EXTREMITYFIST return to old animation.

 

I replace this:

 

 

 

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;

i = 2; // for Asura(from caster)

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 // RENEWAL

} else {

status_change_end(src, SC_NJ_NEN, INVALID_TIMER);

status_change_end(src, SC_HIDING, INVALID_TIMER);

#ifdef RENEWAL

status->set_hp(src, max(status_get_max_hp(src)/100, 1), 0);

#else // not RENEWAL

status->set_hp(src, 1, 0);

#endif // RENEWAL

}

dir = map->calc_dir(src,bl->x,bl->y);

if( dir > 0 && dir < 4) x = -i;

else if( dir > 4 ) x = i;

else x = 0;

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

if (!(unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1))) {

// The cell is not reachable (wall, object, ...), move next to the target

if (x > 0) x = -1;

else if (x < 0) x = 1;

if (y > 0) y = -1;

else if (y < 0) y = 1;

 

unit->movepos(src, bl->x+x, bl->y+y, 1, 1);

}

clif->slide(src, src->x, src->y);

clif->fixpos(src);

clif->spiritball(src);

}

}

 

break;

 

 

For this:

 

case MO_EXTREMITYFIST:

if (skill_id == MO_EXTREMITYFIST)

{

status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);

status_change_end(src, SC_BLADESTOP, INVALID_TIMER);

#ifdef RENEWAL

sc_start(src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));

#endif // RENEWAL

}

//Client expects you to move to target regardless of distance

{

struct unit_data *ud = unit->bl2ud(bl);

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++;

status->set_sp(src, 0, 0);

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;

}

 

skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);

 

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;

 

 

it works, but the damage was low with the modification.

Can someone help me?

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.