Fix bonus damage (#4974)

* Fixes #4972.
* Fixes skill constant bonus damage.
Thanks to @SeravySensei!
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
This commit is contained in:
SeravySensei 2020-06-29 21:03:24 +02:00 committed by GitHub
parent cef956d352
commit 5112f8e2d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5726,10 +5726,9 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
ATK_RATE(wd.damage, wd.damage2, ratio); ATK_RATE(wd.damage, wd.damage2, ratio);
RE_ALLATK_RATE(&wd, ratio); RE_ALLATK_RATE(&wd, ratio);
ratio = battle_calc_skill_constant_addition(&wd, src, target, skill_id, skill_lv); // other skill bonuses int64 bonus_damage = battle_calc_skill_constant_addition(&wd, src, target, skill_id, skill_lv); // other skill bonuses
ATK_ADD(wd.damage, wd.damage2, ratio); ATK_ADD(wd.damage, wd.damage2, bonus_damage);
RE_ALLATK_ADD(&wd, ratio);
#ifdef RENEWAL #ifdef RENEWAL
if(skill_id == HW_MAGICCRASHER) { // Add weapon attack for MATK onto Magic Crasher if(skill_id == HW_MAGICCRASHER) { // Add weapon attack for MATK onto Magic Crasher
@ -5765,8 +5764,8 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
battle_attack_sc_bonus(&wd, src, target, skill_id, skill_lv); battle_attack_sc_bonus(&wd, src, target, skill_id, skill_lv);
if (sd) { //monsters, homuns and pets have their damage computed directly if (sd) { //monsters, homuns and pets have their damage computed directly
wd.damage = wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.masteryAtk; wd.damage = wd.statusAtk + wd.weaponAtk + wd.equipAtk + wd.masteryAtk + bonus_damage;
wd.damage2 = wd.statusAtk2 + wd.weaponAtk2 + wd.equipAtk2 + wd.masteryAtk2; wd.damage2 = wd.statusAtk2 + wd.weaponAtk2 + wd.equipAtk2 + wd.masteryAtk2 + bonus_damage;
if (wd.flag & BF_SHORT) if (wd.flag & BF_SHORT)
ATK_ADDRATE(wd.damage, wd.damage2, sd->bonus.short_attack_atk_rate); ATK_ADDRATE(wd.damage, wd.damage2, sd->bonus.short_attack_atk_rate);
if(wd.flag&BF_LONG && (skill_id != RA_WUGBITE && skill_id != RA_WUGSTRIKE)) //Long damage rate addition doesn't use weapon + equip attack if(wd.flag&BF_LONG && (skill_id != RA_WUGBITE && skill_id != RA_WUGSTRIKE)) //Long damage rate addition doesn't use weapon + equip attack