编辑器与隔离预览
原版菜单不需要独立编辑器。游戏内嵌编辑器和外置编辑器共用同一套页面模型、目标目录、表单绑定和保存校验,普通页面中的组件、布局、草稿与撤销功能也都可以继续使用。
新建一张原版菜单
- 输入
/chaui editor <页面ID>打开或创建页面。 - 在页面属性中把显示模式选为“原版菜单”。
- 从稳定目标下拉框选择目标,例如
pause_menu或title_menu。 - 添加按钮、文本、图片和表单组件。
- 进入隔离预览检查交互。
- 保存页面并在真实原版入口完成最终验收。
原版菜单模式会隐藏 allowEscClose。返回与取消行为由当前原版页面上下文决定,不能用普通 screen 页面的 Esc 开关覆盖。
目标下拉框不是自由文本
编辑器只提供当前 ChaUI 公共目录中的稳定目标。选择目标后会写入:
yaml
display:
mode: vanilla
vanilla:
target: pause_menu一套页面包内同一目标只能有一张页面。若另一张已加载页面已经声明 pause_menu,保存会明确拒绝,而不是按文件名或编辑顺序选择其中一张。修正目标后再保存即可,草稿不会因此丢失。
页面模式、目标和组件绑定都进入现有草稿与撤销/重做记录。非法的半成品可以暂留在输入框中,但不会写入页面模型或保存结果。
绑定原版设置
编辑表单组件的 bind 时,候选列表同时包含:
- 当前页面可用的
vars.*; - 与组件类型兼容的可写
原版.设置.*。
例如拖动条会看到音乐音量、亮度、视野等数字属性,不会把布尔全屏作为可选数字绑定;布尔和枚举选择组件同样按类型、范围与允许值筛选。即使手工粘贴路径,保存时仍会再次校验。
隔离预览提供哪些数据
编辑器预览不依赖当前真的打开某个原版 Screen,而是为页面建立三类安全数据:
| 数据 | 预览来源 | 能否修改真实客户端 |
|---|---|---|
原版.客户端.* | 当前客户端的只读值 | 不能写 |
原版.页面.* | 根据所选目标生成的示例标题、消息、进度和返回能力 | 不能写 |
原版.设置.* | 从真实设置复制出的可丢弃沙箱 | 可以在预览中改沙箱,不改真实设置 |
例如预览 connecting 时可以看到示例连接消息,预览 video_options 时可以拖动设置滑块。退出预览后,真实音量、全屏和画质保持不变。
本地动作在预览中不会真正执行
以下动作会完成语法和参数校验,但不会改变客户端:
打开原版页面(...);加入服务器(...);断开服务器();退出游戏();确认原版操作()。
这是为了防止页面作者在调整布局时意外连接服务器或退出游戏。动作的真实结果必须在保存后的替换页面中测试。
保存页面与发布素材是两件事
| 操作 | 保存内容 | 什么时候发布 |
|---|---|---|
编辑器保存 vanilla 页面 | 页面 yml | 保存成功后立即重建并发布活动菜单包,不要求 reload |
| 编辑器选择管理员客户端本地图片 | 只保存 yml 中的相对路径 | 不会把本地素材上传到服务器 |
手工修改 plugins/ChaUI/vanilla-menu-assets/** | 服务端待发布素材 | 执行 /chaui reload 后进入新页面包 |
游戏内和外置编辑器首期都不提供素材上传流程。页面引用的图片、字体、音效和视频需要由服主放到服务端发布目录、定制客户端资源目录或 ChaAssets 中。
保存前检查
- 文件名与根级
id一致; display.mode为vanilla,目标来自下拉框;- 同目标没有第二张页面;
- 表单绑定的路径、类型、范围和选项合法;
- 所有本地动作参数数量与类型正确;
- 页面预览中没有被全屏透明组件意外挡住的按钮;
- 真实页面中已经测试返回、失败和原版保险入口。
发布目录、客户端预置包和缓存规则继续阅读页面包与素材。
猹件开发组