diff --git a/docs/event.md b/docs/event.md index fba5dc7e..047f5937 100644 --- a/docs/event.md +++ b/docs/event.md @@ -788,10 +788,15 @@ name是可选的,代表目标行走图的文件名。 ``` js "x,y": [ // 实际执行的事件列表 {"type": "sleep", "time": 1000}, // 等待1000ms - "等待1000ms后才开始执行这个事件" + "等待1000ms后才开始执行这个事件", + {"type": "sleep", "time": 2000, "noSkip": true}, // 等待2000毫秒,且不可被跳过 ] ``` +默认的等待事件可以被Ctrl跳过,下面两种情况下不可呗跳过: + - 加上`"noSkip": true`后 + - 当前存在尚未执行完毕的异步事件。 + ### battle:强制战斗 调用battle可强制与某怪物进行战斗(而无需去触碰到它)。 diff --git a/libs/actions.js b/libs/actions.js index 1ece88dc..d7438936 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -700,11 +700,12 @@ actions.prototype.keyDownCtrl = function () { } if (core.status.event.id=='action' && core.status.event.data.type=='sleep' && !core.status.event.data.current.noSkip) { - if (core.isset(core.timeout.sleepTimeout)) { + if (core.isset(core.timeout.sleepTimeout) && Object.keys(core.animateFrame.asyncId).length==0) { clearTimeout(core.timeout.sleepTimeout); core.timeout.sleepTimeout = null; core.events.doAction(); } + return; } } diff --git a/libs/events.js b/libs/events.js index d58d217e..f3c80dfc 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1209,7 +1209,7 @@ events.prototype.doAction = function() { case "waitAsync": // 等待所有异步事件执行完毕 { var test = window.setInterval(function () { - if (Object.keys(core.animateFrame.asyncId)==0) { + if (Object.keys(core.animateFrame.asyncId).length==0) { clearInterval(test); core.events.doAction(); }