diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 9cd8f58ce..894dbf2fb 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1436,6 +1436,15 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * sc_start(src,SkillStatusChangeTable(skillid),100,skilllv,skill_get_time2(skillid,skilllv)); break; } + + if(sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) && + skill_get_inf(skillid)!=INF_GROUND_SKILL && + (rate=pc_checkskill(sd,HW_SOULDRAIN))>0 + ){ //Soul Drain should only work on targetted spells [Skotlex] + if (pc_issit(sd)) pc_setstand(sd); //Character stuck in attacking animation while 'sitting' fix. [Skotlex] + clif_skill_nodamage(src,bl,HW_SOULDRAIN,rate,1); + status_heal(src, 0, status_get_lv(bl)*(95+15*rate)/100, 2); + } if((sd||dstsd) && skillid != MC_CARTREVOLUTION && attack_type&BF_WEAPON){ /* カードによる追加効果 */ int i, type; |