diff options
author | xantara <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-04 05:46:00 +0000 |
---|---|---|
committer | xantara <xantara@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-02-04 05:46:00 +0000 |
commit | ca6e392f184c64701f6b1d99f5a47cf6c3d81a22 (patch) | |
tree | 098b03abb777e816028c9e1e2270a392e6c33c9a /src/map/skill.c | |
parent | 87cd1ffa303774588be237e68f82b43532452ec2 (diff) | |
download | hercules-ca6e392f184c64701f6b1d99f5a47cf6c3d81a22.tar.gz hercules-ca6e392f184c64701f6b1d99f5a47cf6c3d81a22.tar.bz2 hercules-ca6e392f184c64701f6b1d99f5a47cf6c3d81a22.tar.xz hercules-ca6e392f184c64701f6b1d99f5a47cf6c3d81a22.zip |
` Fixed Guillotine Cross Poisons (bugreport:5275)
-- Paralyze decreases attack speed, flee, and movement speed
-- Death Hurt decreases the effectiveness of recovery
-- Venom Bleed reduces max HP
-- Oblivion Curse blocks natural SP recovery and skill use is denied
` Updated const.txt with the latest (renewal) statuses (SC_) values
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15539 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index cacb29e04..f7abeb1ca 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -391,6 +391,8 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, int skill { if( sc->data[SC_CRITICALWOUND] && heal ) // Critical Wound has no effect on offensive heal. [Inkfish] hp -= hp * sc->data[SC_CRITICALWOUND]->val2/100; + if( sc->data[SC_DEATHHURT] && heal ) + hp -= hp * 20/100; if( sc->data[SC_INCHEALRATE] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN ) hp += hp * sc->data[SC_INCHEALRATE]->val1/100; // Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish] } @@ -5633,6 +5635,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in hp -= hp * tsc->data[SC_CRITICALWOUND]->val2 / 100; sp -= sp * tsc->data[SC_CRITICALWOUND]->val2 / 100; } + if( tsc && tsc->data[SC_DEATHHURT] ) + { + hp -= hp * 20 / 100; + sp -= sp * 20 / 100; + } clif_skill_nodamage(src,bl,skillid,skilllv,1); if( hp > 0 || (skillid == AM_POTIONPITCHER && sp <= 0) ) clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1); @@ -6296,6 +6303,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in hp -= hp * tsc->data[SC_CRITICALWOUND]->val2 / 100; sp -= sp * tsc->data[SC_CRITICALWOUND]->val2 / 100; } + if (tsc && tsc->data[SC_DEATHHURT]) + { + hp -= hp * 20 / 100; + sp -= sp * 20 / 100; + } if(hp > 0) clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1); if(sp > 0) @@ -8597,7 +8609,11 @@ int skill_castend_map (struct map_session_data *sd, short skill_num, const char * Warlock **/ sd->sc.data[SC_WHITEIMPRISON] || - (sd->sc.data[SC_STASIS] && skill_stasis_check(&sd->bl, sd->sc.data[SC_STASIS]->val2, skill_num)) + (sd->sc.data[SC_STASIS] && skill_stasis_check(&sd->bl, sd->sc.data[SC_STASIS]->val2, skill_num)) || + /** + * Guillotine Cross + **/ + sd->sc.data[SC_OBLIVIONCURSE] )) { skill_failed(sd); return 0; |