规则与生命周期
事件与自动规则
选择正确触发时机,并让自动规则保持幂等和可调试。
规则与生命周期
只有系统主动检查的规则才需要事件
玩家点击产生的动作属于控件脚本;派生显示属于只读脚本;条件满足后自动发生的规则才属于事件。
# 先选择触发器
| 需求 | 推荐入口 |
|---|---|
| 玩家点击、输入或拖放 | 控件脚本 |
| 页面进入时执行一次 | 场景进入事件或显式初始化 |
| 状态达到阈值后自动触发 | 事件 |
| 周期恢复或推进 | 自动增长、事件或定时规则 |
| 读取派生数值/文本 | 组合属性或动态字符串脚本 |
| 网络或 AI 返回后继续 | 原动作脚本的 Promise 流程 |
不要为了“方便”把所有逻辑放进每帧检查事件。
# 事件合同
每个事件明确:
- 检查时机和启用状态;
- 前置需求与真正触发需求;
- 最大次数、单次更新次数和概率;
- 成功前的全部花费;
- 成功后的属性、对象、控件或重置结果;
- 是否参与离线结算;
- 防重复状态和失败补偿。
# 执行顺序
flowchart LR
A[调度检查] --> B{启用且未达次数上限}
B -- 否 --> X[结束]
B -- 是 --> C{前置与触发需求}
C -- 否 --> X
C -- 是 --> D{概率和全部花费可用}
D -- 否 --> X
D -- 是 --> E[一次性扣除]
E --> F[结果、对象和事件脚本]
F --> G[记录次数与通知]
如果脚本也负责扣除和奖励,关闭对应传统字段,保证唯一结算点。
# 纯 AI 实现流程
- 让 AI 查询相同事件和状态写入入口。
- 描述“何时检查”和“只允许几次”。
- 简单稳定规则可用字段;循环、表格、对象、异步或跨系统事务用显式脚本。
- 使用去重属性或稳定事件状态保证幂等。
- 在调试区从干净存档重放。
判断脚本返回布尔值;数值/文本脚本返回对应类型。只读挂载点禁止副作用。异步工具在离线结算中会跳过,不能把联网结果作为离线规则的唯一依赖。
# 传统字段
打开传统模式文档后,可维护事件组、文本、通知、音频、最大次数、单帧次数、概率、前置/触发需求、花费、获得、对象关联、触发控件和重置。
# 验收
测试禁用、条件不足、概率未命中、花费不足、成功一次、达到上限、同帧多次、刷新、离线结算、对象销毁和脚本异常。任何失败路径都不应留下部分写入。
下一步:脚本挂载点与返回值。