传统模式 · 配置参考
公式
传统模式中公式字段的输入、求值顺序和与脚本的覆盖关系。
# 公式字段参考
# 入口与前置
公式出现在组合属性、属性上下限、自动增长、需求/花费/获得和部分插件数值字段。先确认目标字段的单位、允许范围和读取时机。
# 公式如何求值
公式只产生一个数值结果,不直接写入存档。常见流程是:
读取当前状态 -> 解析表达式 -> 得到结果 -> 应用字段限制 -> 执行后续规则
| 使用位置 | 结果用途 |
|---|---|
| 组合属性 | 生成派生显示值 |
| 最大/最小值 | 约束属性可写范围 |
| 自动增长 | 计算周期或每次变化量 |
| 需求/花费/获得 | 计算比较值或转化数量 |
# 组合属性的覆盖规则
组合属性通常按“基值 + 公式结果”计算。若配置了组合属性脚本,脚本返回值覆盖公式;移除脚本后公式才重新生效。不要同时维护一份手算结果属性。
# 输入检查
- 参与运算的属性必须存在且为数值类型。
- 结果需要明确是否允许小数、负数和无穷大。
- 循环引用会导致求值失败或使用旧值。
- 公式不能承担网络请求、对象创建或其他副作用。
# 求值上下文
同一公式在玩家上下文和当前对象上下文可能得到不同结果。每个输入都要标明所有者:
| 输入类型 | 示例责任 | 缺失时策略 |
|---|---|---|
| 玩家属性 | 全局货币或进度 | 使用明确默认值或拒绝规则 |
| 对象属性 | 当前单位生命或品质 | 求值前必须存在当前对象 |
| 组合属性 | 派生倍率 | 阻止依赖循环 |
| 时间/随机输入 | 结算或概率 | 定义权威来源和可重复测试样例 |
不要从列表位置推断当前对象。字段没有对象上下文时,对象属性不能静默回退为无关的玩家属性。
# 数值安全
- 明确定义除零、输入缺失和非有限结果的处理。
- 说明舍入发生在比较前、写入前,还是只影响显示。
- 单位必须显式:秒或帧、百分比或比例、整数或小数。
- 最大/最小值只由属性边界统一执行,不要复制到多条公式中。
- 不能把格式化展示文本重新当作运算输入。
# AI 与传统模式交接
AI 提议计算逻辑时,应同时保留自然语言公式、输入 ID、单位、样例和边界。手动修改字段后,让 AI 用这些测试样例对照结果,不要在没有证据时直接替换公式。
# 常见失败
| 现象 | 检查项 |
|---|---|
| 显示正确但需求判断错误 | 展示舍入与权威数值是否不同 |
| 玩家正常、对象行失败 | 当前对象上下文或属性所有者是否缺失 |
| 每次读取数值都增长 | 是否把写入/自动增长混进派生计算 |
| 公式突然不生效 | 是否被组合属性脚本覆盖 |
| 结果变成无效值 | 输入缺失、除零或中间值非有限 |
# 迁移与验收
从公式迁移到脚本时保留原表达式作为测试基准,比较边界值、缺省值和刷新后的结果。验收基础值变化、上下限、零值、负值、循环引用和脚本覆盖顺序。
下一页:自动增加属性。