关于如何批量添加地址
还是以治愈之水·小的个数地址为例
最笨的方法就是选中该地址,按Ctrl+C复制一下,再按Ctrl+V粘贴.再双击复制出来的那一条,把地址那一串最后的58DF2C改成58DF30,这就是下一个物品的个数的地址
一个个的复制、粘贴、手动修改,太累.有没有简便的方法?当然有.看到上图中红框部分没?写的是校正地址,这就是用来填入偏移量的.
按下粘贴之前,先把红框里的数从0改成4再粘贴,就会发现复制出来的地址已经是向后偏移了4的
但是!这样复制出来的地址是绝对地址!重开游戏之后就没用了,那又该如何以相对地址的方式进行复制呢?
这就需要先改变相对地址记录的方式.前面第8L说过相对地址可以记录成指针模式,现在就要先将地址改成那种模式
如图,首先还是复制一个地址出来,双击之后出现"更改地址"这个窗口.然后将地址那一串全选、剪切.
在左下指针前面的方格打勾,再点一次"添加偏移".再把之前剪切那一串粘贴到图中位置.把那一串的两个方括号外的数分别填到指针那一开始为0的地方,最后点确定即可
这样一来,地址就变成了 P->XXXXXX ,和之前不一样了
然后再复制这个地址,按Ctrl+V粘贴.之前是在红框那里填入4作为偏移量,这次不能填在红框,而是要填在蓝框 ,粘贴之后就出现新的已做了偏移4的新地址,而且也是相对地址!
顺便说下,如果仍旧填在红框会出现什么情况.一开始目的是将地址往后偏移4,也就是由[[AGE.EXE+3358D4]+7011C]+58DF2C 再加+4 变成[[AGE.EXE+3358D4]+7011C]+58DF30,
如果填在红框,就是把4加在了AGE.EXE+3358D4的后面,变成了[[AGE.EXE+3358D8]+7011C]+58DF2C,这样出现的就是错误地址
好了,这样就出现了两个相邻的相对地址,接下来还是一个个复制,再填偏移4,再粘贴?同样麻烦.这时候就要把这两个地址一起选中,然后一起复制粘贴,偏移量要设为8!
举个简单例子:想把1通过增量复制粘贴得到1 2 3 4 ... 64 该怎么办?把1变成2,需要增量是1,如果把1和2一起选中,同时增加1,那出现的就是2和3,其中2就重复了.这时候增量就要变成2,才能得到3和4.
再把1 2 3 4复制,增量为4,就可以得到5 6 7 8 ,再把1到8一起复制,增量8,就能得到9到16....每全选一次,增量翻1倍,就能获得连续的且不重复的数
地址也是一样,因为地址都是4字节,也就是以4为基础增量(地址最后一位都是4的倍数 0 4 8 C ,不会有其他数!)
所以上面复制粘贴时候,1个地址复制成2个,增量填4,2个复制成4个增量就要填8,4个复制成8个,增量填10(这里增量都是十六进制下的数,所以8的2倍是十六进制的10,对应十进制的10)
8个复制成16个,增量填20,16个复制成32个,增量填40,32个复制成64个,增量填80,64个复制成128个,增量填100,128个复制成256个,增量填200......
就这样,多复制几次,几百个连续地址就都有了 .每次复制完都可自行查看下地址是否连续,如果出现不连续的情况那就是增量填错了
然而还有个问题就是,地址多了比如64个,要从头到尾全选到,滚动条都要拉好久,也很麻烦,这时候又怎么办呢?
在任意地方点右键,选择最后个"创建表头",会生成一个名为"群组X"的新地址.然后将之前得到的几十个地址一起选中,拖到这个群组上面,使它们成为群组X的子项
右键单击群组X,照图中那样把其中两项打钩.
这样就弄出一个可折叠/展开的树形目录,点击群组前面的"田"就可以折叠子项
接着按照之前方法,直接复制这个群组,就可以将其中所有子项批量复制了,注意增量!!要和群组内的地址个数匹配.这个群组里面有64个地址的话,复制时候增量就要填100!
缺点就是,每个地址的命名都是一样的,毕竟是复制出来的,所以到时候挨个改也很痛苦.所以我习惯是把所有物品什么的一起改出来,就不需要给每个地址分别注明哪一个对应哪个物品
前面不是打勾了两项么?其中一项是用来折叠子项,另一个就是批量改个数.
看到群组X右边,数值那里是没有数的,因为它已经不是一个地址而是包含了64个地址的目录.但是可以在红圈位置双击,同样可以输入数值
输入数值后,其下64个地址的值都会一起变成刚才输入的数,这就达到了批量修改的目的
这样就找到了物品个数的N个地址,在通过前面得到的"存在与否"的地址是个数地址+1F40,将个数地址们全选并偏移1F40,就能得到与他们相对应的"存在与否"的地址
再把"存在与否"的地址们批量改为1,那所有物品也就全得到了