Jump to content
  • 0
Dissidia

[Request] Renewal attack speed

Question

9 answers to this question

Recommended Posts

  • 0

I think he wants to know what to do to add renewal atk speed to 3ceam releases as in formula/code/what to edit in the source to change pre-renewal atk speed to renewal atk speed [Note - atk speed = ASPD [probably] just in case you may think it may be cast times]

Link to comment
Share on other sites

  • 0

Currently Ragnarok Online has 2 way different ASPD formulas, one running on servers iRO, bRO, pRO, twRO, rRO, fRO, etc. The other is running only over kRO.

The one which some private servers bought it from a Dev of eAthena is the one that iRO uses, which has fixed penalty from weapons, fixed bonus aspd from items.

The kRO aspd formula decrease the penalty from weapons depending on AGI, there are not fixed bonus from items (more AGI means more bonus from conc pot, awakening pot or berserk potions), and normally their aspd formula provides less aspd than iRO aspd formula.

This mean a char would have more Aspd at low/ medium AGI in iRO based servers compared to kRO servers, but in contrast a char would reach more Aspd at high AGI over kRO (main servers / sakray) than iRO based servers.

So which one are you requesting?.

Edited by JakeRed
Link to comment
Share on other sites

  • 0

You can use the brAthena formula, it's the orignal kRO formula...

http://svn.brathena....rc/map/status.c

Change status_base_amotion_pc to this:

// Valores de ASPD
int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status)
{
int bonus = 0, amotion;

// Bônus vindo de armas
amotion = status_amotion_pc(sd);

// Redução por status
amotion -= (int)(((float)sqrt((float)((float)pow((float)status->agi,2)/2) + ((float)pow((float)status->dex,2)/5) )/4)*10 + (bonus*status->agi/200));

// Ajustes vindo do bônus bAspd
amotion += sd->aspd_add;

// Ajustes de bônus vindo da habilidade Perícia em Esgrima
amotion += amotion * pc_checkskill(sd, GN_TRAINING_SWORD) / 100;

// Ajustes vindo para uso de escudos
if(sd->status.shield > 0)
amotion += ((aspd_base[pc_class2idx(sd->status.class_)][MAX_WEAPON_TYPE])/10);

 return amotion;
}

Add above the status_base_amotion_pc, this function:

// Cálculo de ASPD para armas.
int status_amotion_pc(struct map_session_data* sd){
int i;
if( sd->status.weapon < MAX_WEAPON_TYPE )
i = aspd_base[pc_class2idx(sd->status.class_)][sd->status.weapon];
else{
i = aspd_base[pc_class2idx(sd->status.class_)][sd->weapontype1];
switch( sd->weapontype2 ){
case W_DAGGER: i += 100; break;
case W_1HSWORD: i += ((sd->status.class_ == 4065) ? 160:120); break;
case W_1HAXE: i += ((sd->status.class_ == 4065) ? 200:120); break;
}
}
return i;
}

Done.

Edited by Protimus
Link to comment
Share on other sites

  • 0

You can use the brAthena formula, it's the orignal kRO formula...

http://svn.brathena....rc/map/status.c

Change status_base_amotion_pc to this:

// Valores de ASPD
int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status)
{
int bonus = 0, amotion;

// Bônus vindo de armas
amotion = status_amotion_pc(sd);

// Redução por status
amotion -= (int)(((float)sqrt((float)((float)pow((float)status->agi,2)/2) + ((float)pow((float)status->dex,2)/5) )/4)*10 + (bonus*status->agi/200));

// Ajustes vindo do bônus bAspd
amotion += sd->aspd_add;

// Ajustes de bônus vindo da habilidade Perícia em Esgrima
amotion += amotion * pc_checkskill(sd, GN_TRAINING_SWORD) / 100;

// Ajustes vindo para uso de escudos
if(sd->status.shield > 0)
amotion += ((aspd_base[pc_class2idx(sd->status.class_)][MAX_WEAPON_TYPE])/10);

 return amotion;
}

Add above the status_base_amotion_pc, this function:

// Cálculo de ASPD para armas.
int status_amotion_pc(struct map_session_data* sd){
int i;
if( sd->status.weapon < MAX_WEAPON_TYPE )
i = aspd_base[pc_class2idx(sd->status.class_)][sd->status.weapon];
else{
i = aspd_base[pc_class2idx(sd->status.class_)][sd->weapontype1];
switch( sd->weapontype2 ){
case W_DAGGER: i += 100; break;
case W_1HSWORD: i += ((sd->status.class_ == 4065) ? 160:120); break;
case W_1HAXE: i += ((sd->status.class_ == 4065) ? 200:120); break;
}
}
return i;
}

Done.

sir in job_db1.txt? there is no changes?

Link to comment
Share on other sites

  • 0

Yes, but it's depends on the formula of each official server, because is different. If you need the kRO table, just get in brAthena: http://svn.brathena..../db/job_db1.txt

I'm working on a formula for bRO, wich is equal to iRO... Stay tuned for updates in SVN.

Edited by Protimus
Link to comment
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.   Paste as plain text instead

  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.



×
×
  • Create New...

Important Information

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