diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 9d8c3d6c2..1ed612dee 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1234,13 +1234,21 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * status_heal(src, 0, status_get_lv(bl)*(95+15*rate)/100, 2); } - if( sd && status_isdead(bl) && attack_type&BF_WEAPON ) + if( sd && status_isdead(bl) ) { int sp = 0, hp = 0; - sp += sd->sp_gain_value; - sp += sd->sp_gain_race[status_get_race(bl)]; - sp += sd->sp_gain_race[is_boss(bl)?RC_BOSS:RC_NONBOSS]; - hp += sd->hp_gain_value; + if( attack_type&BF_WEAPON ) + { + sp += sd->sp_gain_value; + sp += sd->sp_gain_race[status_get_race(bl)]; + sp += sd->sp_gain_race[is_boss(bl)?RC_BOSS:RC_NONBOSS]; + hp += sd->hp_gain_value; + } + if( attack_type&BF_MAGIC ) + { + sp += sd->magic_sp_gain_value; + hp += sd->magic_hp_gain_value; + } if( hp || sp ) status_heal(src, hp, sp, battle_config.show_hp_sp_gain?2:0); } |