jqkeric11 Posted May 29, 2016 Group: Members Topic Count: 9 Topics Per Day: 0.00 Content Count: 27 Reputation: 1 Joined: 05/19/15 Last Seen: May 27, 2023 Share Posted May 29, 2016 If i want to modify skill calculate What i should do now ? Quote Link to comment Share on other sites More sharing options...
0 Promise Posted May 30, 2016 Group: Members Topic Count: 34 Topics Per Day: 0.01 Content Count: 386 Reputation: 38 Joined: 04/28/13 Last Seen: March 22, 2024 Share Posted May 30, 2016 battle.c static int64 battle_calc_base_damage(struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) { unsigned int atkmin = 0, atkmax = 0; short type = 0; int64 damage = 0; if (!sd) { //Mobs/Pets if(flag&4) { atkmin = status->matk_min; atkmax = status->matk_max; } else { atkmin = wa->atk; atkmax = wa->atk2; } if (atkmin > atkmax) atkmin = atkmax; } else { //PCs atkmax = wa->atk; type = (wa == &status->lhw)?EQI_HAND_L:EQI_HAND_R; if (!(flag&1) || (flag&2)) { //Normal attacks atkmin = status->dex; if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]]) atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100; if (atkmin > atkmax) atkmin = atkmax; if(flag&2 && !(flag&16)) { //Bows atkmin = atkmin*atkmax/100; if (atkmin > atkmax) atkmax = atkmin; } } } if (sc && sc->data[SC_MAXIMIZEPOWER]) atkmin = atkmax; //Weapon Damage calculation if (!(flag&1)) damage = (atkmax>atkmin? rnd()%(atkmax-atkmin):0)+atkmin; else damage = atkmax; if (sd) { //rodatazone says the range is 0~arrow_atk-1 for non crit if (flag&2 && sd->bonus.arrow_atk) damage += ( (flag&1) ? sd->bonus.arrow_atk : rnd()%sd->bonus.arrow_atk ); // Size fix only for players if (!(sd->special_state.no_sizefix || (flag&8))) damage = damage * (type == EQI_HAND_L ? sd->left_weapon.atkmods[t_size] : sd->right_weapon.atkmods[t_size]) / 100; } //Finally, add baseatk if(flag&4) damage += status->matk_min; else damage += status->batk; //rodatazone says that Overrefine bonuses are part of baseatk //Here we also apply the weapon_damage_rate bonus so it is correctly applied on left/right hands. if(sd) { if (type == EQI_HAND_L) { if(sd->left_weapon.overrefine) damage += rnd()%sd->left_weapon.overrefine+1; if (sd->weapon_damage_rate[sd->weapontype2]) damage += damage * sd->weapon_damage_rate[sd->weapontype2] / 100; } else { //Right hand if(sd->right_weapon.overrefine) damage += rnd()%sd->right_weapon.overrefine+1; if (sd->weapon_damage_rate[sd->weapontype1]) damage += damage * sd->weapon_damage_rate[sd->weapontype1] / 100; } } #ifdef RENEWAL if (flag&1) damage = (damage * 14) / 10; #endif return damage; } Here you can edit the damage calc as you want, but we need to know wich part you want to edit. Quote Link to comment Share on other sites More sharing options...
0 Aureon Posted May 29, 2016 Group: Members Topic Count: 34 Topics Per Day: 0.01 Content Count: 281 Reputation: 14 Joined: 10/14/13 Last Seen: October 9, 2017 Share Posted May 29, 2016 What do you mean by skill calculate? Are you referring to modify skill damage?If that's what you're looking for, you can find it in src/map/battle.c or you can also this, db/skill_damage_db.txt (be sure you uncomment this line on src/config/core.h coz rAthena disabled it by default, then recompile it to take effect) Quote Link to comment Share on other sites More sharing options...
0 Stolao Posted May 29, 2016 Group: Developer Topic Count: 48 Topics Per Day: 0.01 Content Count: 1443 Reputation: 344 Joined: 10/17/12 Last Seen: 2 hours ago Share Posted May 29, 2016 can we move this to source request/support ty Quote Link to comment Share on other sites More sharing options...
Question
jqkeric11
If i want to modify skill calculate
What i should do now ?
Link to comment
Share on other sites
3 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.