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

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.