diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index e88c26829..8afdfbe64 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3296,22 +3296,24 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in heal = heal*2; } - if (tsc && tsc->count && tsc->data[SC_KAITE].timer != -1 - && !(sstatus->mode&MD_BOSS) - ) { //Bounce back heal - if (--tsc->data[SC_KAITE].val2 <= 0) - status_change_end(bl, SC_KAITE, -1); - if (src == bl) - heal=0; //When you try to heal yourself under Kaite, the heal is voided. - else { - bl = src; - dstsd = sd; - } + if (tsc && tsc->count) + { + if (tsc->data[SC_KAITE].timer != -1 && !(sstatus->mode&MD_BOSS) + ) { //Bounce back heal + if (--tsc->data[SC_KAITE].val2 <= 0) + status_change_end(bl, SC_KAITE, -1); + if (src == bl) + heal=0; //When you try to heal yourself under Kaite, the heal is voided. + else { + bl = src; + dstsd = sd; + } + } else + if (tsc->data[SC_BERSERK].timer != -1) + heal = 0; //Needed so that it actually displays 0 when healing. } - heal_get_jobexp = status_heal(bl,heal,0,0); - //All or nothing check for LK_BERSERK. - clif_skill_nodamage (src, bl, skillid, heal_get_jobexp?heal:0, 1); + clif_skill_nodamage (src, bl, skillid, heal, 1); if(sd && dstsd && heal > 0 && sd != dstsd && battle_config.heal_exp > 0){ heal_get_jobexp = heal_get_jobexp * battle_config.heal_exp / 100; |