|
@@ -2790,7 +2790,7 @@ struct Damage battle_calc_attack( int attack_type,
|
|
|
return d;
|
|
|
}
|
|
|
|
|
|
-int battle_calc_return_damage(struct block_list *bl, int skill, int *damage, int flag) {
|
|
|
+int battle_calc_return_damage(struct block_list *bl, int *damage, int flag) {
|
|
|
struct map_session_data *sd=NULL;
|
|
|
struct status_change *sc;
|
|
|
int rdamage = 0;
|
|
@@ -2798,7 +2798,7 @@ int battle_calc_return_damage(struct block_list *bl, int skill, int *damage, int
|
|
|
BL_CAST(BL_PC, bl, sd);
|
|
|
sc = status_get_sc(bl);
|
|
|
|
|
|
- if(flag&BF_WEAPON && skill != WS_CARTTERMINATION) { // FIXME(?): Quick and dirty check, but HSCR does bypass Shield Reflect... so I make it bypass the whole reflect thing [DracoRPG]
|
|
|
+ if(flag&BF_WEAPON) {
|
|
|
//Bounces back part of the damage.
|
|
|
if (flag & BF_SHORT) {
|
|
|
if (sd && sd->short_weapon_damage_return)
|
|
@@ -2823,7 +2823,6 @@ int battle_calc_return_damage(struct block_list *bl, int skill, int *damage, int
|
|
|
if(flag&BF_MAGIC)
|
|
|
{
|
|
|
if(sd && sd->magic_damage_return &&
|
|
|
- !(skill_get_inf(skill)&(INF_GROUND_SKILL|INF_SELF_SKILL)) &&
|
|
|
rand()%100 < sd->magic_damage_return)
|
|
|
{ //Bounces back full damage, you take none.
|
|
|
rdamage = *damage;
|
|
@@ -3011,7 +3010,7 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
|
|
|
|
|
|
damage = wd.damage + wd.damage2;
|
|
|
if (damage > 0 && src != target) {
|
|
|
- rdamage = battle_calc_return_damage(target, 0, &damage, wd.flag);
|
|
|
+ rdamage = battle_calc_return_damage(target, &damage, wd.flag);
|
|
|
if (rdamage > 0) {
|
|
|
rdelay = clif_damage(src, src, tick, wd.amotion, sstatus->dmotion, rdamage, 1, 4, 0);
|
|
|
//Use Reflect Shield to signal this kind of skill trigger. [Skotlex]
|