0 Z3R0 Posted November 20, 2011 Posted November 20, 2011 What exactly is the request that you are wanting? Quote
0 Triper Posted November 20, 2011 Posted November 20, 2011 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] Quote
0 Daredevil Posted November 20, 2011 Posted November 20, 2011 two ways : 1. Learning Source Modification 2. Waiting eAthena Renewal ^^ Quote
0 Judas Posted November 20, 2011 Posted November 20, 2011 yea I agree with what bluesky is saying. Understanding the src is pretty much all you need, cause if you don't then there probably be a lot of variables you will miss Quote
0 KeiKun Posted November 20, 2011 Posted November 20, 2011 Both above me is right~ if you have knowledge with C language its easy for you to know and locate it Quote
0 JakeRed Posted November 20, 2011 Posted November 20, 2011 (edited) 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 November 20, 2011 by JakeRed Quote
0 Protimus Posted November 20, 2011 Posted November 20, 2011 (edited) 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 November 20, 2011 by Protimus Quote
0 Dissidia Posted November 21, 2011 Author Posted November 21, 2011 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? Quote
0 Protimus Posted November 21, 2011 Posted November 21, 2011 (edited) 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 November 21, 2011 by Protimus Quote
Question
Dissidia
renewal attack speed for 3ceam.
9 answers 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.