diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 05be59de5e..cf01951ad1 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/04/17 + * Fixed TK_RUN having a cast-bar when attempting to stop-running and + generating timer_delete errors when halting as well. [Skotlex] * Clearing the dummy npc after fooling the client. [Lance] * Updated DLLS. Please DO NOT update the libs from now on (except if mySQL has newer builds which are not compatible diff --git a/src/map/skill.c b/src/map/skill.c index ee9c553858..d728a7a9fa 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5747,7 +5747,8 @@ int skill_castend_id( int tid, unsigned int tick, int id,int data ) if(sd && !skill_check_condition(sd,ud->skillid, ud->skilllv,1)) /* 使用条件チェック */ break; - unit_stop_walking(src,0); + if (ud->walktimer != -1 && ud->skillid != TK_RUN) + unit_stop_walking(src,0); if (ud->skillid == SA_MAGICROD) ud->canact_tick = tick; diff --git a/src/map/unit.c b/src/map/unit.c index 82f628a2a6..f1c61c9343 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;