摘要
在这款游戏里,把鼠标放到攻击目标上时,会弹出一个攻击预览:两行数字,一行是可能击杀的个体数(骷髅图标),一行是伤害区间(心形图标)。程序读这些数字来推断双方部队的属性。
用户在 10 月 9 日指出两种特殊情况:远程射击的预览会在伤害后面用括号显示按距离计算的伤害百分比;对自己的单位施放治疗魔法时,预览换成了另一种图标。本实验 B165 检查读取器能否正确处理。结论:远程百分比原本就支持;治疗预览以前会被误当成攻击预览(读成“击杀 0、伤害 10”并关联到我方单位),现在按“数字是绿色”识别出来并跳过,暂时作为“未读”而不是“读错”。
要回答的问题
- 远程预览的距离百分比能否读出?
- 治疗/复活预览会不会被误读成攻击预览交给下游?
数据与来源
- 一段 10 月 9 日 08:38 开始的对电脑 AI 录像。对战斗画面每秒 2 帧做整帧 OCR,留下 799 帧有类似预览数值的行,再按战斗日志的时间定位:
- 远程:一次驯鹰师射击(录像约 372–380 秒)。预览两行是“☠ 1-2”和“♥ 42-56(100%)”:括号里是距离伤害比例,这次在射程内为 100%。
- 治疗:英雄对我方单位施放“治疗之水”(约 536.6–537.6 秒,瞄准时)。预览两行是绿色的复活数“0”和恢复生命“10”,都是单个数字而不是区间,光标是施法法杖。
- 回归:之前一项实验(B155)保存的全部路由结果(测试、训练和一个截图包),共 176 张图、196 个攻击预览。
方法
用真实的路由进程(路由 router = 把一张截图分给各个读取器的程序)跑攻击预览读取任务。新增一条判断:两行数字的亮像素里,绿色为主(G 通道比 R、B 都高 40 以上的像素占比 ≥0.5)时,判为治疗/复活预览,从攻击预览候选中去掉,并在警告里写明跳过了几个。没有新增字段或枚举。
量化:在这两类样例中,治疗预览数字 94–98% 的亮像素是绿色,攻击预览是 0%。
结果
| 帧 | 以前 | 现在 |
|---|---|---|
| 远程(374.0 秒) | 一对数值 [1, 2]、[42, 56],百分比“100”,目标未关联 | 不变 |
| 治疗(537.0 秒) | 误读为攻击预览 [0, 0]、[10, 10],还关联到我方单位 | 不输出攻击预览,加一条说明 |
回归 196 个攻击预览:判为绿色的 2 个,都在 8 月 31 日一段训练录像的同一帧上,放大看确实是治疗/复活预览(复活 22、恢复 870),以前被读成“击杀 22、伤害 870”。其余 194 个攻击预览没有一个被误删。那一帧在 B155 中标为普通战斗画面,不按攻击预览计分,所以 B155 的统计不受影响。
失败与负结果
治疗预览以前被当作攻击预览交给下游,这是本次发现并修正的错误。修正后治疗预览只是被跳过,并没有被读出来。
局限
- 只看了一段录像中的一个远程样例和一个治疗样例,以及一次已保存结果的回归,不是准确率评估。
- 法术伤害预览、多目标预览的颜色和写法还没有系统检查。
结论与下一步
远程百分比可以继续使用;治疗预览目前被安全地标为“未读”。要正式读取治疗预览(复活数、恢复量),需要修改攻击预览的输出格式,另走接口契约评审。
Comments