判断主角失败是否有实际代价需手动检查失败分支是否含set_global等写入操作;通过dump_globals()对比资源变化或插入日志查看数值;再核查是否触发含永久修改的事件链,否则仅为过场动画。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Laper Script Doctor中判断主角失败是否产生实际代价,需要直接检查脚本中与失败事件关联的状态变更逻辑,不能仅依赖对话文本或提示语。
查看失败分支是否修改全局变量
打开脚本文件,搜索关键词 【fail】 或 【失败】,定位到所有失败分支代码块。逐行检查该分支内是否出现 set_global、add_value、set_flag 等写入操作。没有这类语句的失败分支大概率无实际代价。
这一步必须手动核对——Script Doctor不会自动标记“有无代价”,它只执行代码。
追踪失败后关键资源数值变化
方法一:启用调试模式 → 运行至失败节点 → 在控制台输入 dump_globals() → 记录当前所有数值 → 手动触发失败 → 再次执行 dump_globals() → 对比两次输出中 【hp】、【sanity】、【reputation】、【inventory_count】 等字段是否减少或清零。
方法二:在失败分支开头插入临时日志语句:log("FAIL_COST_CHECK: hp="..get_global("hp").." sanity="..get_global("sanity")),运行后从日志窗口直接读取变化前数值。
注意:若日志中显示 hp=0 但角色未死亡,说明该失败仅触发视觉反馈,未接入真实结算逻辑。
验证失败是否触发不可逆事件链
第一步:在失败分支末尾查找 trigger_event 或 jump_to 调用。
第二步:若存在 trigger_event("e_broken_leg") 类调用,立即打开 events.laper 文件,搜索该事件ID,确认其内部是否包含 set_global("can_run", false) 或 remove_item("key_door_b3") 等永久性操作。
第三步:重点检查事件中是否有 if get_global("e_broken_leg") == 1 then ... end 这类条件锁——这意味着该失败代价会持续影响后续所有章节的选项可用性。
没有跳转、不改flag、不删物品、不锁选项的失败,就是纯过场动画。


















