Jump to content
  • 0
Sign in to follow this  
Triedge

Is it possible this ASPD formula?

Question

I've been trying to change the formula of ASPD to work as follows.

[*]ASPD 50: 0.5 Hits per second

[*]ASPD 100: 1 Hits per second

[*]ASPD 200: 2 Hits per second

[*]ASPD 300: 3 Hits per second

[*]ASPD 400: 4 Hits per second

[*]ETC...

Unfortunately however much you move all variables in the SRC, it seems that there is always a "2000" hidden somewhere that is always trying to put it in formulas based on a maximum of 200 ASPD.

 

in battle.c

 

{ "monster_max_aspd",				   &battle_config.monster_max_aspd,			    199,    100,    199,		    },{ "max_aspd",						   &battle_config.max_aspd,					    190,    100,    199,		    },{ "max_third_aspd",					 &battle_config.max_third_aspd,				  193,    100,    199,		    },battle_config.monster_max_aspd = 2000 - battle_config.monster_max_aspd*10;battle_config.max_aspd = 2000 - battle_config.max_aspd*10;battle_config.max_third_aspd = 2000 - battle_config.max_third_aspd*10; 
in clif.c

 

WFIFOW(fd,38) = (2000-pl_sd->battle_status.amotion)/10;  // aspd 
in pc.c

 

case SP_ASPD:		    val = (2000-sd->battle_status.amotion)/10; break; 
in status.c

 

 

status->dummy.amotion = 2000;status->dummy.dmotion = 2000; 
i = status->base_amotion_pc(sd,bstatus);bstatus->amotion = cap_value(i,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000); 
} else if ( bl->type&BL_PC ) {   amotion = status->base_amotion_pc(sd, st);#ifndef RENEWAL_ASPD   st->aspd_rate = status->calc_aspd_rate(bl, sc, bst->aspd_rate);#endif   if ( st->aspd_rate != 1000 ) // absolute percentage modifier    amotion = amotion * st->aspd_rate / 1000;   if ( sd && sd->ud.skilltimer != INVALID_TIMER && pc->checkskill(sd, SA_FREECAST) > 0 )    amotion = amotion * 5 * (pc->checkskill(sd, SA_FREECAST) + 10) / 100;#ifdef RENEWAL_ASPD   amotion += (max(0xc3 - amotion, 2) * (st->aspd_rate2 + status->calc_aspd(bl, sc, 2))) / 100;   amotion = 10 * (200 - amotion) + sd->bonus.aspd_add;#endif   amotion = status->calc_fix_aspd(bl, sc, amotion);   st->amotion = cap_value(amotion, ((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd), 2000);   st->adelay = 2 * st->amotion; 
I feel I'm close to it, but I find the code I need.

Any ideas?

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.