|
@@ -2800,17 +2800,9 @@ unsigned short status_base_atk(const struct block_list *bl, const struct status_
|
|
|
* @param status: Player status
|
|
|
* @return weapon attack
|
|
|
*/
|
|
|
-unsigned int status_weapon_atk(struct weapon_atk wa, struct map_session_data *sd)
|
|
|
+unsigned int status_weapon_atk(weapon_atk &wa)
|
|
|
{
|
|
|
- float str = sd->base_status.str;
|
|
|
- int weapon_atk_bonus = 0;
|
|
|
-
|
|
|
- if ((wa.range > 3 || sd->status.weapon == W_MUSICAL || sd->status.weapon == W_WHIP) && !pc_checkskill(sd, SU_SOULATTACK))
|
|
|
- str = sd->base_status.dex;
|
|
|
- if (sd->bonus.weapon_atk_rate)
|
|
|
- weapon_atk_bonus = wa.atk * sd->bonus.weapon_atk_rate / 100;
|
|
|
- // wa.atk2 = refinement, wa.atk = base equip atk, wa.atk*str/200 = bonus str
|
|
|
- return wa.atk + wa.atk2 + (int)(wa.atk * (str/200) + weapon_atk_bonus);
|
|
|
+ return wa.atk + wa.atk2;
|
|
|
}
|
|
|
#endif
|
|
|
|
|
@@ -3960,6 +3952,8 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt)
|
|
|
if(r)
|
|
|
wa->atk2 += refine_info[wlv].bonus[r-1] / 100;
|
|
|
#ifdef RENEWAL
|
|
|
+ if (sd->bonus.weapon_atk_rate)
|
|
|
+ wa->atk = wa->atk * sd->bonus.weapon_atk_rate / 100;
|
|
|
wa->matk += sd->inventory_data[index]->matk;
|
|
|
wa->wlv = wlv;
|
|
|
if(r && sd->weapontype1 != W_BOW) // Renewal magic attack refine bonus
|
|
@@ -4279,8 +4273,8 @@ int status_calc_pc_sub(struct map_session_data* sd, enum e_status_calc_opt opt)
|
|
|
if((skill=pc_checkskill(sd,BS_HILTBINDING))>0)
|
|
|
base_status->batk += 4;
|
|
|
#else
|
|
|
- base_status->watk = status_weapon_atk(base_status->rhw, sd);
|
|
|
- base_status->watk2 = status_weapon_atk(base_status->lhw, sd);
|
|
|
+ base_status->watk = status_weapon_atk(base_status->rhw);
|
|
|
+ base_status->watk2 = status_weapon_atk(base_status->lhw);
|
|
|
base_status->eatk = sd->bonus.eatk;
|
|
|
#endif
|
|
|
|