summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2013-01-05 12:48:14 +0000
committerrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2013-01-05 12:48:14 +0000
commitc4ef5986ea0c7550604a298ecf449c1367d45d04 (patch)
tree336785d9e878e19c983121be5314dff86b49107e /src/map/skill.c
parent59029a6c7a0365521aa80519081fdfc7d958cca0 (diff)
downloadhercules-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.c14
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;