diff options
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index 82f628a2a..f1c61c934 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -503,10 +503,6 @@ int unit_stop_walking(struct block_list *bl,int type) if(!ud || ud->walktimer == -1)
return 0;
- sc = status_get_sc(bl);
- if (sc && sc->count && sc->data[SC_RUN].timer != -1)
- status_change_end(bl, SC_RUN, -1);
-
// if(md) { md->state.skillstate = MSS_IDLE; }
if(type&0x01) // 位置補正送信が必要
clif_fixpos(bl);
@@ -531,6 +527,10 @@ int unit_stop_walking(struct block_list *bl,int type) if(type&~0xff)
ud->canmove_tick = gettick() + (type>>8);
}
+ sc = status_get_sc(bl);
+ if (sc && sc->count && sc->data[SC_RUN].timer != -1)
+ status_change_end(bl, SC_RUN, -1);
+
return 1;
}
@@ -816,6 +816,10 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int casttime = 0;
temp = 1;
break;
+ case TK_RUN:
+ if (sc && sc->data[SC_RUN].timer != -1)
+ casttime = 0;
+ break;
case SA_MAGICROD:
case SA_SPELLBREAKER:
temp =1;
|