//rodatazone says that Overrefined bonuses are part of baseatk
//Here we also apply the weapon_atk_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_atk_rate[sd->weapontype2])
damage += damage * sd->weapon_atk_rate[sd->weapontype2] / 100;
} else { //Right hand
if(sd->right_weapon.overrefine)
damage += rnd()%sd->right_weapon.overrefine+1;
if (sd->weapon_atk_rate[sd->weapontype1])
damage += damage * sd->weapon_atk_rate[sd->weapontype1] / 100;
}
}
return damage;
}
Question
Bringer
//rodatazone says that Overrefined bonuses are part of baseatk //Here we also apply the weapon_atk_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_atk_rate[sd->weapontype2]) damage += damage * sd->weapon_atk_rate[sd->weapontype2] / 100; } else { //Right hand if(sd->right_weapon.overrefine) damage += rnd()%sd->right_weapon.overrefine+1; if (sd->weapon_atk_rate[sd->weapontype1]) damage += damage * sd->weapon_atk_rate[sd->weapontype1] / 100; } } return damage; }
on hercules there will be
int64 battle_calc_base_damage2 / int64 battle_calc_base_damage2
on rathena i saw this code
static int64 battle_calc_base_damage(struct block_list *src, struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, int flag)
No Static int64 battle_calc_base_damage2 and i saw this code
/** Calculates overrefine damage bonus and weapon related bonuses (unofficial) * @param sd Player * @param damage Current damage * @param lr_type EQI_HAND_L:left-hand weapon, EQI_HAND_R:right-hand weapon */ static void battle_add_weapon_damage(struct map_session_data *sd, int64 *damage, int lr_type) { if (!sd) return; //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 (lr_type == EQI_HAND_L) { if (sd->left_weapon.overrefine) (*damage) = (*damage) + rnd() % sd->left_weapon.overrefine + 1; if (sd->weapon_damage_rate[sd->weapontype2]) (*damage) += (*damage) * sd->weapon_damage_rate[sd->weapontype2] / 100; } else if (lr_type == EQI_HAND_R) { if (sd->right_weapon.overrefine) (*damage) = (*damage) + rnd() % sd->right_weapon.overrefine + 1; if (sd->weapon_damage_rate[sd->weapontype1]) (*damage) += (*damage) * sd->weapon_damage_rate[sd->weapontype1] / 100; } }
can anyone help me to convert this to latest rathena
Problem Solved
Link to comment
Share on other sites
0 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.