Jump to content
  • 0
Sign in to follow this  
Viray420

Asura WalkDelay (pre-re)

Question




 

 

 
case MO_EXTREMITYFIST:
if( skillid == MO_EXTREMITYFIST )
{
status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
}
//Client expects you to move to target regardless of distance
{
struct unit_data *ud = unit_bl2ud(src);
short dx,dy;
int i,speed;
= skillid == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura
dx = bl->- src->x;
dy = bl->- 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->+ dx;

can u possibly edit this to hercules.? it made a difference between herc and eathena. in hercules after asura it will teleport on [/url]its path. can u make it after asura it will only walk on the other cell just like eathena?

case MO_EXTREMITYFIST:
{
short x, y, i = 0; // Move 2 cells for Issen(from target)
struct block_list *mbl = bl;
short dir = 1;

skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);

if( skill_id == MO_EXTREMITYFIST ) {
mbl = src;
i = 1; // 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;

Edited by snakedtrebla

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Change this line:

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;

to this:

				if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground))) { // only NJ_ISSEN don't have slide effect in GVG
					clif->slide(src, src->x, src->y);
					clif->fixpos(src);
					clif->spiritball(src);
				}
			}
			break;

Share this post


Link to post
Share on other sites
  • 0

Change this line:

if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground))) { // only NJ_ISSEN don't have slide effect in GVGif (!(unit->movepos(src, mbl->x+x, mbl->y+y, 1, 1))) {// The cell is not reachable (wall, object, ...), move next to the targetif (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;
to this:
if ((mbl == src || (!map_flag_gvg2(src->m) && !map->list[src->m].flag.battleground))) { // only NJ_ISSEN don't have slide effect in GVG					clif->slide(src, src->x, src->y);					clif->fixpos(src);					clif->spiritball(src);				}			}			break;
It didn't work sir. it just keep staying in one cell when casting asura. can u make it move to 1cell but it will slide or walk? like the old one in eathena.

 

this is the script from ea. [skill.c] if you can revised it and work in hercules svn. thank you so much for your reply.

 

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;

}

Edited by snakedtrebla

Share this post


Link to post
Share on other sites

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.