一、辅助工具说明
使用到的辅助工具有:
1. PT:可以修改出怪种类(会默认选择普僵);可以显示w1~20的出怪种类和数量(PTK只能显示SE的出怪)。
2. v1.9:可以修改出怪种类(可以不选择普僵)。
3. WPF:可以显示出怪列表;可以修改出怪种类(会默认选择普僵);可以显示所有波的具体出怪列表(即在列表中的顺序也能看到)。
其他跳关、自收、后台、倍速等功能与本文关系不大,略去。
关于辅助工具的一些事:
1. 正常状态下出怪列表中普僵似乎是不可更改的?(下图来自WPF)
不过v1.9的确可以做到不选普僵,并且会导致一个神奇的现象:
正常来说只有普僵和豌豆级别是1(权重为0的不计);如果出怪没有这两种僵尸,可能因为前几波级别上限为1的就没法填了,会把出怪列表中序号最小的僵尸的级别变为1。
这个推测是v1.9的效果而非游戏本身的机制:如果用WPF挑一个无普僵、无豌豆关,并修改出怪种类,得到的并不是这样的效果(下文“无普僵关”会讲);如果挑的是有普僵或有豌豆关,会直接闪退。
2. 关于“波数”,绝大部分地方都是从1开始的,即我们平时所说的第x波,但是(目前发现)有两处例外,是从0开始的(即内存中的数值,没有+1):
一处是ShowMe的“僵尸所在波数”:
还有一处是级别容量上限公式中的“当前波数”:
每波容量上限 = int(int((当前波数 + 已完成选卡数 * 每轮总波数) *0.8) / 2) + 1, 大波再乘以 2.5 并取整
可以用w3验证一下:
w3(3):int(int(3*0.8)/2)+1=2
w3(2):int(int(2*0.8)/2)+1=1
下文“波数”均指平时所说、从1开始的波数。
//补充:(来自uint8_t)
/*
出怪列表可以自行在内存中读取,但是未填充到的部分会有垃圾数据残留在里面。因此要在同时读取每波的总出怪数。
地址表:十六进制[[[6a9ec0h]+768h]+6b4h],从这个地址开始的2000个的数据,每个数据是unsignedint。其中存放的是僵尸的编号,每50个数组一组,为一波的出怪,共可容纳40波。
*/
//(来自xiao_He)有时候用PT读取冒险的出怪会看到w10以后群魔乱舞,就是因为之前留下的出怪记录没有删去。