摘要
在游戏的战前准备阶段,玩家会选主技能和子技能;“最终确认”页上会显示英雄的全部技能和子技能图标。视觉系统用模板匹配读这些图标:把裁出的图标与参考目录里每个子技能的标准图比较。
状态估计(SE)的一次真实对局审计发现:10 月 10 日一局的确认页上,英雄知识属性读到 17,但项目的规则模拟器根据读到的构筑最佳只能复现 15。原图读数没有错;问题在一个子技能槽被读成了“未知”,最佳模板分只有 0.44。目视该槽,是安装资源里的“属性加成”图标。把它补进构筑后,知识 15 → 17,英雄卡完全吻合。
要回答的问题
为什么这个子技能读不出来?补上缺失的模板后,能否读出它,同时不改变其他已读对的槽?
数据与来源
只用已曝光的训练材料(用户自己的对局会话和已选训练片段),不读冻结或留出来源。共 27 张确认页,其中 12 张有未读的非空子技能槽。
方法
原因:准备页的子技能模板只来自参考目录(网站目录)。参考目录停在 8 月游戏更新之前,约十余个竞技场子技能没有条目,因此没有模板:属性加成的四个变体、魔法影响、魔法稳定性、转化、魔力之野、坚韧不屈、生命之系、战斗技艺、天赐礼物等。
改动:
- 知识库模块(GK)由模拟器负责人按工单新增一个公开只读接口,读取安装资源里的子技能图标。
- 准备页读取器在加载参考模板后,只对父技能族里还没有模板的竞技场子技能补上安装资源图;已有参考模板从不替换。
- 共用同一张图的子技能仍保留为未知(例如“魔法箭/穿透法术”,由 SE 按槽位等级消解,不在视觉模块里解释规则)。
- 一个名字在多个父技能下各有变体时(如属性加成),记录里列出全部父技能。
设置
先在实验里包一层模板加载做原型,对 12 张有未读槽的确认页做改前改后对比;再用生产代码对全部 27 张确认页逐页比较关闭/打开新函数的结果。
结果
- 原型:12 张中只有一处变化——10 月 10 日那局的一个槽从未知变为“属性加成”。
- 生产代码:27 张确认页中,只有同一处变化;其余 26 页所有字段不变。
- 准备页相关 72 项测试通过;全套测试在各自环境下通过(从模块目录运行时有 10 项因工作目录/环境路径报错,从仓库根目录或正确环境重跑通过)。
失败与负结果
- 补的其他模板(魔法影响等)在已存截图里都没出现过,没有真实读取证据,只能保证不改变已读对的槽。
- 剩下的未读槽:夜影和日光魔法各 1 个,是同级两个候选分不开,保持未知。
局限
战斗中英雄面板使用同一套模板族,但没有单独重读验证。样本只有已有会话里出现过的子技能,真实修复证据只有一处。
结论与下一步
这次的问题不在识别算法,而在参考数据过期:游戏 8 月更新后新增的子技能没有模板。用安装资源补齐是低风险的修复,并且通过“规则模拟器能否复现英雄卡”这一独立核对被发现和验证。剩余的同图歧义交给 SE 按规则消解。
Comments