diff --git a/game/world/objects/npc.cpp b/game/world/objects/npc.cpp index 803121d0c..731b7ea6d 100644 --- a/game/world/objects/npc.cpp +++ b/game/world/objects/npc.cpp @@ -2245,7 +2245,8 @@ void Npc::nextAiAction(AiQueue& queue, uint64_t dt) { } break; case AI_StartState: - if(startState(act.func,act.s0,aiState.eTime,act.i0==0)) { + // only daily routine states have a scheduled end time + if(startState(act.func,act.s0,gtime::endOfTime(),act.i0==0)) { setOther(act.target); setVictum(act.victum); } @@ -2699,11 +2700,9 @@ void Npc::tickRoutine() { loop = owner.version().hasZSStateLoop() ? 1 : 0; } - if(aiState.eTime<=owner.time()) { - if(!isTalk()) { - loop = LOOP_END; // have to hack ZS_Talk bugs - } - } + if(aiState.eTime<=owner.time()) + loop = LOOP_END; + if(loop!=LOOP_CONTINUE) { clearState(false); currentOther = nullptr;