diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-19 16:10:19 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-19 16:10:19 +0000 |
commit | 49c3ba9aa1f9e52bdf0fe6756637c52bf686c84a (patch) | |
tree | 446951d0573e4e9b01819f25e1ab1bc2c161a70c /src/map | |
parent | 9e3fbfa0e80cf09bc47c841134bda8bdd898df43 (diff) | |
download | hercules-49c3ba9aa1f9e52bdf0fe6756637c52bf686c84a.tar.gz hercules-49c3ba9aa1f9e52bdf0fe6756637c52bf686c84a.tar.bz2 hercules-49c3ba9aa1f9e52bdf0fe6756637c52bf686c84a.tar.xz hercules-49c3ba9aa1f9e52bdf0fe6756637c52bf686c84a.zip |
- Moved back Soul Drain code from mob_dead to skill_counter_additional_effect. Now we are back to where the skill animation does not shows, but you DO get SP T.T' (fixing this is turning out so difficult...)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7253 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mob.c | 8 | ||||
-rw-r--r-- | src/map/skill.c | 9 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index 2ff7176b8..a016a825a 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1715,14 +1715,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) sp += sd->sp_gain_race[status->race]; sp += sd->sp_gain_race[status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS]; hp += sd->hp_gain_value; - if(sd->ud.skillid && skill_get_type(sd->ud.skillid)==BF_MAGIC && - (temp=pc_checkskill(sd,HW_SOULDRAIN))>0 && - skill_get_inf(sd->ud.skillid)!=INF_GROUND_SKILL - ){ //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,&md->bl,HW_SOULDRAIN,temp,1); - sp += md->level*(95+15*temp)/100; - } if (hp||sp) status_heal(src, hp, sp, battle_config.show_hp_sp_gain?2:0); if (sd->mission_mobid == md->class_) { //TK_MISSION [Skotlex] 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; |