diff options
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index 9ada29c7a..e14f3d388 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -668,7 +668,8 @@ int unit_can_move(struct block_list *bl) sc->data[SC_STOP].timer != -1 || sc->data[SC_CLOSECONFINE].timer != -1 || sc->data[SC_CLOSECONFINE2].timer != -1 || - (sc->data[SC_CLOAKING].timer != -1 && sc->data[SC_CLOAKING].val1 < 3) + (sc->data[SC_CLOAKING].timer != -1 && //Need wall at level 1-2 + sc->data[SC_CLOAKING].val1 < 3 && !(sc->data[SC_CLOAKING].val4&1)) )) return 0; } @@ -933,7 +934,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int ud->skilllv = skill_lv; if(sc && sc->data[SC_CLOAKING].timer != -1 && - !(sc->data[SC_CLOAKING].val4&1) && skill_num != AS_CLOAKING) + !(sc->data[SC_CLOAKING].val4&2) && skill_num != AS_CLOAKING) status_change_end(src,SC_CLOAKING,-1); if(casttime > 0) { @@ -1026,7 +1027,7 @@ int unit_skilluse_pos2( struct block_list *src, int skill_x, int skill_y, int sk ud->skilltarget = 0; if (sc && sc->data[SC_CLOAKING].timer != -1 && - !(sc->data[SC_CLOAKING].val4&1)) + !(sc->data[SC_CLOAKING].val4&2)) status_change_end(src,SC_CLOAKING,-1); if(casttime > 0) { |