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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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