From 3c28bcdb276c7edaebfa39db390c8d55652a8525 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 22 Mar 2012 04:59:21 +0000 Subject: Fixed bugreport:5356 Shadow Shaser's Shadow Form. Skill now redirects damage properly and is removed upon either caster or target leaving skill range git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15755 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/map.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/map/map.c') diff --git a/src/map/map.c b/src/map/map.c index d07db5eb5..30e766402 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -413,8 +413,19 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) #endif if (bl->type&BL_CHAR) { + skill_unit_move(bl,tick,3); sc = status_get_sc(bl); + + if( bl->type == BL_PC && ((TBL_PC*)bl)->shadowform_id ) {//Shadow Form Target Moving + struct block_list *d_bl; + if( (d_bl = map_id2bl(((TBL_PC*)bl)->shadowform_id)) == NULL || bl->m != d_bl->m || !check_distance_bl(bl,d_bl,skill_get_range(SC_SHADOWFORM,1)) ) { + if( d_bl ) + status_change_end(d_bl,SC__SHADOWFORM,INVALID_TIMER); + ((TBL_PC*)bl)->shadowform_id = 0; + } + } + if (sc && sc->count) { if (sc->data[SC_DANCING]) skill_unit_move_unit_group(skill_id2group(sc->data[SC_DANCING]->val2), bl->m, x1-x0, y1-y0); @@ -430,6 +441,12 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) skill_unit_move_unit_group(skill_id2group(sc->data[SC_NEUTRALBARRIER_MASTER]->val2), bl->m, x1-x0, y1-y0); else if (sc->data[SC_STEALTHFIELD_MASTER]) skill_unit_move_unit_group(skill_id2group(sc->data[SC_STEALTHFIELD_MASTER]->val2), bl->m, x1-x0, y1-y0); + + if( sc->data[SC__SHADOWFORM] ) {//Shadow Form Caster Moving + struct block_list *d_bl; + if( (d_bl = map_id2bl(sc->data[SC__SHADOWFORM]->val2)) == NULL || bl->m != d_bl->m || !check_distance_bl(bl,d_bl,skill_get_range(SC_SHADOWFORM,1)) ) + status_change_end(bl,SC__SHADOWFORM,INVALID_TIMER); + } } /* Guild Aura Moving */ if( bl->type == BL_PC && ((TBL_PC*)bl)->state.gmaster_flag ) { -- cgit v1.2.3-60-g2f50