diff options
author | rud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2013-01-05 12:48:14 +0000 |
---|---|---|
committer | rud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2013-01-05 12:48:14 +0000 |
commit | c4ef5986ea0c7550604a298ecf449c1367d45d04 (patch) | |
tree | 336785d9e878e19c983121be5314dff86b49107e /src/map/skill.c | |
parent | 59029a6c7a0365521aa80519081fdfc7d958cca0 (diff) | |
download | hercules-c4ef5986ea0c7550604a298ecf449c1367d45d04.tar.gz hercules-c4ef5986ea0c7550604a298ecf449c1367d45d04.tar.bz2 hercules-c4ef5986ea0c7550604a298ecf449c1367d45d04.tar.xz hercules-c4ef5986ea0c7550604a298ecf449c1367d45d04.zip |
Fixed bugreport:6332 updated NJ_TATAMIGAESHI to its RE behavior.
Fixed bugreport:7101 where MO_EXTREMITYFIST don't consume sp when used against plant type monster.
Fixed bugreport:7116 missing duration for HW_MAGICPOWER.
Fixed bugreport:7117 where WL_WHITEIMPRISON doesn't work properly.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17078 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 13e92943e..9a597e1a3 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3701,19 +3701,21 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint short x, y, i = 2; // Move 2 cells for Issen(from target) struct block_list *mbl = bl; short dir = 0; + + skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); if( skill_id == MO_EXTREMITYFIST ) { mbl = src; i = 3; // for Asura(from caster) + status_set_sp(src, 0, 0); status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); #ifdef RENEWAL sc_start(src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv)); #endif } - skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); - + dir = map_calc_dir(src,bl->x,bl->y); if( dir > 0 && dir < 4) x = -i; else if( dir > 4 ) x = i; @@ -7826,10 +7828,12 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui skill_blockpc_start(sd,skill_id,4000); if( !(tsc && tsc->data[type]) ){ - if( i ) - break; + i = sc_start2(bl,type,rate,skill_lv,src->id,(src == bl)?5000:(bl->type == BL_PC)?skill_get_time(skill_id,skill_lv):skill_get_time2(skill_id, skill_lv)); + clif_skill_nodamage(src,bl,skill_id,skill_lv,i); + if( !i ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } - } + }else if( sd ) clif_skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0); break; |