|
@@ -6011,12 +6011,17 @@ void status_calc_bl_main(struct block_list& bl, std::bitset<SCB_MAX> flag)
|
|
|
int32 matk_min = status_base_matk_min(status);
|
|
|
int32 matk_max = status_base_matk_max(status);
|
|
|
|
|
|
- matk_min += (sd != nullptr ? sd->bonus.ematk : 0);
|
|
|
- matk_max += (sd != nullptr ? sd->bonus.ematk : 0);
|
|
|
+ if (sd != nullptr) {
|
|
|
+ matk_min += sd->bonus.ematk;
|
|
|
+ matk_max += sd->bonus.ematk;
|
|
|
|
|
|
- if (sd != nullptr && sd->matk_rate != 100) {
|
|
|
- matk_min = matk_min * sd->matk_rate / 100;
|
|
|
- matk_max = matk_max * sd->matk_rate / 100;
|
|
|
+ matk_min += sd->bonus.ematk_hidden;
|
|
|
+ matk_max += sd->bonus.ematk_hidden;
|
|
|
+
|
|
|
+ if (sd->matk_rate != 100) {
|
|
|
+ matk_min = matk_min * sd->matk_rate / 100;
|
|
|
+ matk_max = matk_max * sd->matk_rate / 100;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Apply Recognized Spell buff - custom support (renewal status change)
|
|
@@ -6102,11 +6107,17 @@ void status_calc_bl_main(struct block_list& bl, std::bitset<SCB_MAX> flag)
|
|
|
// Bonuses from ExtraMATK are separated in order to order them (order has no impact)
|
|
|
|
|
|
// EquipMATK (flat MATK from equipments)
|
|
|
- if (sd != nullptr && sd->bonus.ematk > 0) {
|
|
|
+ if (sd != nullptr && sd->bonus.ematk != 0) {
|
|
|
matk_min += sd->bonus.ematk;
|
|
|
matk_max += sd->bonus.ematk;
|
|
|
}
|
|
|
|
|
|
+ // Flat MATK not visible in status window
|
|
|
+ if (sd != nullptr && sd->bonus.ematk_hidden != 0) {
|
|
|
+ matk_min += sd->bonus.ematk_hidden;
|
|
|
+ matk_max += sd->bonus.ematk_hidden;
|
|
|
+ }
|
|
|
+
|
|
|
// PseudoBuffMATK (flat MATK from skills)
|
|
|
matk_min = status_calc_pseudobuff_matk( sd, sc, matk_min );
|
|
|
matk_max = status_calc_pseudobuff_matk( sd, sc, matk_max );
|