数据是怎么测出来的
本站所有计时都是在 2.57.0.98285 版本的录像文件里读出来的,不是从攻略里抄的。下面是具体方法。
方法
风暴英雄的录像是一个 MPQ
压缩包,里面有一份追踪日志:每个单位的出生和死亡都带时间戳,另外还有游戏自己记录的命名统计事件——Altar Captured、TributeCollected、SkyTempleActivated、GatesOpen
等等。本仓库里一个不依赖第三方库的 Python
解析器会同时读取这两条数据流,每张战场各有一套处理逻辑,因为不同战场标记循环的方式并不一样。
有两条规则保证数字可靠,而且在用上它们之前都确实造成过错误。单位的身份必须是标签索引加上回收计数,因为索引本身会在不同单位之间重复使用,只看索引会把死亡事件配到错误的单位上。另外,每一个间隔都是同一份录像内部两个事件之间的差值,所以录像时间与游戏内时钟之间的偏移不会影响结果。需要绝对时间时,用
GatesOpen
作为游戏内 0:00 的锚点。
有几个间隔是区间而不是固定数值,因为游戏每个循环都会重新随机。这些上下限不是从某一份录像里读出来的,而是采样了足够多的循环来确认区间成立。
为什么不能拿维基来验证
这些计时在社区里的通用来源是 2021 年的一份 reddit 表格,作者在 2.54.4 版本用触发器和录像测得,做得很认真,其中大部分至今成立。但风暴英雄维基的目标计时是在那份表格发布的第二天被改的,Nexus Compendium 的维护者更是直接在那个帖子里贴出了采纳它的更新日志。两者都源自那份表格,所以它们与表格一致是循环论证,不构成佐证。
离开这条脉络之后,各处的说法干脆互相矛盾。维基、攻略和视频对同一张战场给出的数字并不一致,而且大多没有说明自己对应哪个版本。另外有两张战场在 2021 年之后改过,而攻略没有跟上:奥特兰克战道的占领时间从 30 秒变成 25 秒、上限 55 秒;黑心湾的上交价格从 10 枚金币变成 8 枚。重新测量之后有几个数字做了修正,速查表上显示的就是修正后的版本。
致谢
感谢 2021
年那份表格的作者,其中所有首次目标时间都经受住了重新测量;也感谢那位用
mapmechanicslib.galaxy
核对诅咒谷、在多年前就发现重复计算的读者。