mm4--天下第一超超改,原理篇

经历过数期对“重装机兵4的40页道具bug”的研究之后,我们基本可以实现道具的复制、“无中生有”和“偷梁换柱”操作。通俗来讲,我们可以通过购买和移动道具的操作产生新的道具,例如可以把回复饮料变成超级蘑菇,把55炮变成机神经络等。这些操作均是“40页道具bug”所衍生出来的操作,解决了有没有的问题。
接下来要做的是解决装备好不好的问题,是对于数据连通到仓库后针对于战车装备的性能的提升。由于能达到一些意想不到的效果,因此取名为“天下第一超超改”。
1. 问题的提出:
当把任意装备/道具放入人类装备栏52页第2栏时会发现其与仓库的第1栏道具相互替换了,而将其放入人类装备栏52页第7栏的时候才会发现其与仓库的第2栏道具相互替换。这也就是说,仓库内每栏含有4(字节/栏) * 5(栏) = 20字节的数据。
那么,为什么会有20字符的数据形容一个战车装备呢?除了名字占用2字节,还剩下18字节。而且,我们可以控制人类装备栏这4字节的数据,进而控制仓库内20字节中每4字节的数据。一旦知道仓库中一栏的20字节是控制什么属性的,那么就可以实现战车装备属性的更改。
2. 仓库的前12字节数据
主要对武器进行测试,结果如下所示。由于C装置和发动机用天下第一超超改修改得不偿失,因此没有测试。未检测到11字节以后的字节对属性有什么影响,均以未知标识。对于战车道具,数量和星级属性有效,因此可以实现复制恐龙装甲片。

关于C装置特性要强调下,这个数值不能超过3,否则在战斗开始的时候会报错。可以看到武器的弹药数和C装置的特性个数在同一位,所以在上一期将55炮偷梁换柱成机神经络的时候需要把炮弹打到3发或者3发以下。如果偷梁换柱之前给炮弹小于三发,那么偷梁换柱出的机神经络使没有特性不足3,此时只需要去改造店搞出3个特性即可。另外,对于最大特性不超过3的,即使特性位数据为3,其特性数也不是3。
3. 表的应用
为了使大家熟悉上述表格的使用,这里随便举一个例子。但请大家不要局限于此用法,仅当作理解用。
例如,制造一个守备强化2次,攻击强化3次,弹舱强化4次,超改5次,7号喷漆,现有弹药8,7星的马赫之翼。这里给出需要用到的道具的代码:

下面介绍方法:

第一步比较简单,而第二步也只需将名称位的数据直接转化成高位为0,低位为对应序号的道具(回复/战斗栏视角)。数量位的数据则直接视为数量。在第二步已经准备好了6个回复饮料,3个神的口水,5个全满饮料,7个任意道具,7个阿米达水:然后详细介绍下第三步:
a. 清空人类装备栏第1页第1栏
b. 将6个回复饮料置入战斗类第7页第6栏,将3个神的口水置入战斗类第7页第7栏
c. 将人类装备栏第1页第1栏出现的道具置于装备栏65页第2栏
d. 将5个全满饮料置入战斗类第7页第6栏,将7个任意道具置入战斗类第7页第7栏
e. 将人类装备栏第1页第1栏出现的道具置于装备栏65页第3栏
f. 将7个阿米达水置入战斗类第7页第6栏
g. 将人类装备栏第1页第1栏出现的道具置于装备栏65页第4栏
h. 去仓库把装备拿出来,可能还要修一修,因为没有特意为状态位准备数据。
4. 一些要说的
上面演示了理论上的方法,但实际操作上并不需要将武器的10个字符全部赋值,只需要修改其中1-2个属性,例如只改颜色或者星级。这种情况只需要把对应位的数据从仓库里提取出来,再进一步更改,最后再放回到仓库里。这里提出几点需要注意的:
a. 名称低位为0会导致整个4字节或2字节数据不显示,造成的问题就是,对于没有强化当仓的武器不可修改喷漆,如果想改该喷漆需要先强化弹舱;
b. 仓库内数据不全清零。假设仓库只有一个武器,当取出仓库第一栏武器后,仅第1-2字节数据赋值为0,其余数据仍然保留;
c. 在数据层面思考方可解放思想,拓展此方法的可能性
5. 致谢
感谢“孙dark眉”提供的封面及测序工作。 感谢“梦想”的纠错及建议。