|
@@ -7307,14 +7307,12 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i
|
|
|
if (ssc) {
|
|
|
if (ssc->data[SC_HELLS_PLANT])
|
|
|
return 0;
|
|
|
- if (ssc->data[SC_REF_T_POTION])
|
|
|
- return 1; // Returns 1 damage
|
|
|
}
|
|
|
|
|
|
if (flag & BF_SHORT) {//Bounces back part of the damage.
|
|
|
if ( (skill_get_inf2(skill_id, INF2_ISTRAP) || !status_reflect) && sd && sd->bonus.short_weapon_damage_return ) {
|
|
|
rdamage += damage * sd->bonus.short_weapon_damage_return / 100;
|
|
|
- rdamage = i64max(rdamage,1);
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
} else if( status_reflect && sc && sc->count ) {
|
|
|
if( sc->data[SC_REFLECTSHIELD] ) {
|
|
|
struct status_change_entry *sce_d;
|
|
@@ -7343,8 +7341,7 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i
|
|
|
rdamage = 0;
|
|
|
else {
|
|
|
rdamage += damage * sc->data[SC_REFLECTSHIELD]->val2 / 100;
|
|
|
- if (rdamage < 1)
|
|
|
- rdamage = 1;
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -7363,14 +7360,14 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i
|
|
|
|
|
|
if( sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 2 && !status_bl_has_mode(src,MD_STATUS_IMMUNE) ){
|
|
|
rdamage += damage * sc->data[SC_SHIELDSPELL_DEF]->val2 / 100;
|
|
|
- if (rdamage < 1) rdamage = 1;
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
if (!status_reflect && sd && sd->bonus.long_weapon_damage_return) {
|
|
|
rdamage += damage * sd->bonus.long_weapon_damage_return / 100;
|
|
|
- if (rdamage < 1) rdamage = 1;
|
|
|
+ rdamage = i64max(rdamage, 1);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -7393,6 +7390,9 @@ int64 battle_calc_return_damage(struct block_list* bl, struct block_list *src, i
|
|
|
}
|
|
|
if (ssc->data[SC_VENOMBLEED] && ssc->data[SC_VENOMBLEED]->val3 == 0)
|
|
|
rdamage -= damage * ssc->data[SC_VENOMBLEED]->val2 / 100;
|
|
|
+
|
|
|
+ if (rdamage > 0 && ssc->data[SC_REF_T_POTION])
|
|
|
+ return 1; // Returns 1 damage
|
|
|
}
|
|
|
|
|
|
if (sc) {
|