脚本 API
场景解锁脚本
用只读布尔规则决定玩家能否进入场景。
脚本 API · 访问规则
显示锁定状态和最终访问判断必须使用同一份规则
场景解锁脚本同步返回严格布尔值。渲染布局可以提前显示锁定效果,但运行时仍以解锁脚本作为最终入口判断。
# 写清访问契约
场景“王城”仅在等级 >= 10、主线阶段 >= 3,并持有“王城钥匙”对象时开放。
锁定时页面显示缺少的条件,但脚本只返回布尔值,不扣除钥匙。
const levelOK = Number(player.getPro("等级") || 0) >= 10;
const storyOK = Number(player.getPro("主线阶段") || 0) >= 3;
const hasKey = objects.getObjects("钥匙")
.some((item) => item.getName() === "王城钥匙");
return levelOK && storyOK && hasKey;
稳定实现更适合按对象属性或 ID 识别钥匙,而不是依赖可修改名称。
# 返回值必须严格为布尔值
true 表示可进入,false 表示锁定。1、"true"、对象或未写 return 都不是有效结果。
# 只读边界
脚本可能在导航和页面刷新中反复执行,因此不能:
- 扣除钥匙、体力或货币;
- 发奖励或写入“已访问”;
- 打开提示、播放特效或跳转场景;
- 调用 AI、弱联网或存档。
进入后的消耗和一次性事件放到场景进入动作或绑定控件脚本中,并单独防重复。
# 对象与表格条件
const record = player.getTable("副本记录");
if (String(record?.getData("遗迹", "通关") || "") !== "是") return false;
const team = objects.getObjects("队员");
return team.some((member) => Number(member.getPro("战力") || 0) >= 1000);
空表、空队伍和旧存档缺字段时必须安全返回 false。
# 验收清单
- 所有路径都返回严格布尔值。
- 锁定页面提示与最终访问规则一致。
- 重复读取不会扣费、奖励或写存档。
- 缺少旧存档字段时默认安全锁定。
- 进入后的动作有独立幂等和失败处理。
继续阅读:场景与控件 和 渲染布局与 Canvas。