|
@@ -8342,12 +8342,14 @@ int64 battle_calc_return_damage(struct block_list* tbl, struct block_list *src,
|
|
}
|
|
}
|
|
|
|
|
|
if (sc) {
|
|
if (sc) {
|
|
- if (status_reflect && sc->data[SC_REFLECTDAMAGE])
|
|
|
|
|
|
+ if (status_reflect && sc->data[SC_REFLECTDAMAGE]) {
|
|
rdamage -= damage * sc->data[SC_REFLECTDAMAGE]->val2 / 100;
|
|
rdamage -= damage * sc->data[SC_REFLECTDAMAGE]->val2 / 100;
|
|
- if (sc->data[SC_VENOMBLEED] && sc->data[SC_VENOMBLEED]->val3 == 0)
|
|
|
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
|
+ }
|
|
|
|
+ if (sc->data[SC_VENOMBLEED] && sc->data[SC_VENOMBLEED]->val3 == 0) {
|
|
rdamage -= damage * sc->data[SC_VENOMBLEED]->val2 / 100;
|
|
rdamage -= damage * sc->data[SC_VENOMBLEED]->val2 / 100;
|
|
-
|
|
|
|
- rdamage = i64max(rdamage, 1);
|
|
|
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (tsc) {
|
|
if (tsc) {
|
|
@@ -8355,7 +8357,10 @@ int64 battle_calc_return_damage(struct block_list* tbl, struct block_list *src,
|
|
rdamage = damage * tsc->data[SC_MAXPAIN]->val1 * 10 / 100;
|
|
rdamage = damage * tsc->data[SC_MAXPAIN]->val1 * 10 / 100;
|
|
}
|
|
}
|
|
|
|
|
|
- return cap_value(rdamage, 1, status_get_max_hp(tbl));
|
|
|
|
|
|
+ if (rdamage == 0)
|
|
|
|
+ return 0; // No reflecting damage calculated.
|
|
|
|
+ else
|
|
|
|
+ return cap_value(rdamage, 1, status_get_max_hp(tbl));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|