|
@@ -7374,10 +7374,12 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (sd && sd->bonus.reduce_damage_return != 0) {
|
|
|
- rdamage -= rdamage * sd->bonus.reduce_damage_return / 100;
|
|
|
- if (rdamage < 1)
|
|
|
- rdamage = 1;
|
|
|
+ if (rdamage > 0) {
|
|
|
+ map_session_data* ssd = BL_CAST(BL_PC, src);
|
|
|
+ if (ssd && ssd->bonus.reduce_damage_return != 0) {
|
|
|
+ rdamage -= rdamage * ssd->bonus.reduce_damage_return / 100;
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (ssc) {
|