summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/status.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 137af795f..c8de8e07b 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1473,7 +1473,9 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
hp += sd->magic_hp_gain_value;
}
if( hp || sp )
- status_heal(src, hp, sp, battle_config.show_hp_sp_gain?2:0);
+ {// updated to force healing to allow healing through berserk
+ status_heal(src, hp, sp, battle_config.show_hp_sp_gain ? 3 : 1);
+ }
}
// Trigger counter-spells to retaliate against damage causing skills.
diff --git a/src/map/status.c b/src/map/status.c
index f90d9897d..8114362c4 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1128,8 +1128,12 @@ int status_heal(struct block_list *bl,int hp,int sp, int flag)
}
if(hp) {
- if (!(flag&1) && sc && sc->data[SC_BERSERK])
- hp = 0;
+ if( sc && sc->data[SC_BERSERK] ) {
+ if( flag&1 )
+ flag &= ~2;
+ else
+ hp = 0;
+ }
if((unsigned int)hp > status->max_hp - status->hp)
hp = status->max_hp - status->hp;