scheduleStrategy() 声明项目级章节调度策略。在蓝图的「扩展策略」节点中选择策略,不会出现在普通的「调用扩展方法」Block 里。
v1.8.0 新增
声明策略
id 只能包含小写字母、数字和连字符;省略时会由静态属性名转换,例如 chooseNextChapter 会生成 choose-next-chapter。
输入参数
resolve(ctx, input) 的 input 包含:
| 字段 | 说明 |
|---|---|
schedulerId | 当前调度器的稳定标识 |
chapters | 在当前蓝图策略节点中选择、且可用的候选章节 |
activeChapterId | 当前正在运行的章节;没有时为 null |
lastCompletedChapterId | 上一个完成的章节;没有时为 null |
cycle | 当前调度器已经做出决策的轮次 |
id、name 和 index。返回章节时必须使用当前 chapters 中存在的 id。
返回结果
继续运行某章:diagnostics 可用于调试展示,Studio 不会解释其中的业务结构。
异步选择
resolve 可以返回 Promise,因此可以打开扩展 UI,等待玩家完成地图或日程选择后再返回结果。不要把未完成的 Promise、DOM 节点或 UI 临时状态写进存档;存档只需要保留扩展自己的持久业务数据。
在 Studio 中启用
- 构建扩展并在当前项目中启用。
- 在「剧本运行设置」启用蓝图调度,阅读并确认运行规则变化。
- 在叙事地图中添加「扩展策略」节点。
- 选择扩展策略与候选章节,并连接进入路线和完成出口。
- 从项目入口运行,检查第一轮、候选章结束返回策略、重复轮次和策略完成后的路线。