摘要
状态估计(SE)会把之前读到的生物面板攻防数值当作“条件参考”,用于解释后来的攻击伤害。但如果中间发生了状态变化(例如英雄给生物加了一个临时增益,然后增益到期),旧读数就不能再直接沿用。SE 从战斗日志(Logs)里读到“获得/失去效果”的记录来判断这一点。
本实验原本要验证一个假说:玩家重新打开日志、再次看到已经读过的旧状态行时,会不会被误当成新发生的变化,从而错误阻断新面板的使用?结果这个假说没有复现——主入口已按时间和原文去重,8 组正常重读都正确。但在构造对照时发现了另一个真问题,并做了最小修复。
要回答的问题
SE 能否区分“已经见过的旧状态行被重读”与“真正新发生的状态变化”,并在两者之间正确使用最新的面板读数?
数据与来源
- 规则执行场景:复用已有的公式组合构造器,在项目规则模拟器里用真实的竞技场构筑解算、合法施法、推进回合使状态到期、合法普通攻击,生成公开观察,再经既有的离线读取器进入 SE。这是规则模拟器的执行结果,不是实机录像,也不是商业游戏规则的验证。
- 真实保存输入:两份之前的训练局保存结果(49 帧和 58 帧)。
- 不触碰冻结与留出数据,不新增 OCR、视频或平台。
方法
固定比较顺序:旧状态页第一次读到 → 状态到期 → 读到新面板 → 攻击。后一个日志页分别包含/不包含已见过的旧页原文。要求:同一已见原文不能仅因被重读就变成新发生的属性变化;但新状态事件、未知时刻、重复身份歧义必须保留保护。命中时的正式条件始终保持未知,只核对“条件参考”是否正确采用最新面板。
状态使用“暗影增幅”(攻击 +3),配合战斗魔法高级/专家、有无宝物、红蓝双方观察视角。
设置
发现的问题:SE 用 (时间, 原文) 作为日志行去重的键。当状态行的时间都没读出来时,两次真实施法产生的同字面记录都变成 (无, 同一文字),后一次被删除。如果两次施法之间读过新面板,攻击参考只看到更早的状态行,就会错误地继续给出旧的攻击力参考。
为复现,新增 4 个再次施法组合(战斗魔法高级/专家 × 无宝物 / 两件宝物),只在测试中明确模拟“两条状态行的时间都没被 OCR 读出”,其他文字和真实动作不变:
- 无宝物:公开攻击 9 → 施法 12 → 到期 9 → 再次施法 12,随后合法攻击造成 218 伤害。
- 两件宝物:12 → 15 → 12 → 15,随后合法攻击造成 239 伤害。
最小修复:当状态/等待/死亡/召唤/明确复活这些行没有可解析时间时,保留每一条观察,不再仅凭文字相同就删除后来的。已知时间的去重、伤害/施法/法力的去重、数据格式和默认值都不变。保留多条观察不等于认证为多次事件。
结果
- 修前仍显示“条件参考 9/12”,漏掉了第二次状态;修后保留原 9/12 读数,说明存在相关状态记录、时点尚未认证,停止沿用。没有把引擎内部的 12/15 当作命中真值补进去。
- 补验 4 组“再次等待”组合(战技高级/专家 × 有无宝物):固定前面板 9/12,等待加成后参考应为高级 11.7/15.6、专家 12.6/16.8;四组都阻止了旧 9/12 被沿用,不补正式条件、不查询或排除技能。
- 修复前后完整结构核验:仅攻击参考和历史两条说明变化,以及使用的日志事件数 7 → 8(多保留一条观察,不认证多一次实际事件);其他字段保持。
- 真实保存输入:49 帧有 11 条相关状态/等待/生命周期行,58 帧有 167 条,全部带时间,因此修复前后两份结果逐项完全相同——这批真实数据里没有出现这个缺陷,也不声称提高了识别准确率。
- App 产品链验证:修复后的合成输出通过 App 严格读取器,攻击详情界面仍显示“已有观察 9”,但不会在读到可能的新状态变化后继续给出“条件参考 9”。这是软件情境验证,不是真实游戏窗口或安装版验收。
- 软件测试:按名称去重共 290 个不同检查通过,其中 17 项为本轮新测试(13 项原测试 + 4 项等待补验)。
失败与负结果
- 原假说(重读旧页会阻断新面板)没有复现,主入口本来就处理得对。
- 测试本身先后出错:一次把公开值 9.0 写成文本预期(SE 正确显示整数 9);一次完整说明比较没排除因插入旧行而改变的行号,另两项把“未知状态”误当“无状态”;一次把战技专家期望写成 +50%(公开规则查询返回 +20%/+30%/+40%,是测试预期错误)。都修正测试,不为迎合测试修改生产,失败记录保留。
- 预期保护:从红方观察且双方都有宝物时,公开投影里仍有一个未映射的状态图标,SE 必须保持未知——不能用测试真值补图标。
- 外部审阅提交时网页没有返回确认的消息编号,记为“提交未确认”;由维护会话独立核对原消息全文一致后,唯一一次绑定读取取得完整意见,没有重发。
局限
- 场景来自规则模拟器和离线读取器,理想化地收集了全局军队身份,不认证公平的在线输入;读取器目前也不输出“失去效果”日志,到期由引擎真值核对。
- 旧页重复但时间都未知时,仍可能过度阻断参考,这是明确的保守边界。
- 外部审阅举的时钟格式例子在本地解析器上并不成立,没有证实新错误,本轮不重写去重身份。
结论与下一步
“没读出时间”不能被当成“同一时刻”;保留每条无时间观察是一个只影响保守方向的最小修复。真实数据里暂未触发,但在 OCR 漏读时间的情况下会防止旧参考被错误沿用。下一步只检查真实保存输入中,是否有目标/状态 ID 明确、公开规则能计算的攻防状态,可以在现有属性历史里消费其条件贡献——不把未知效果或发生时点补成事实。
Comments