首先简单阐述一下3分100%的工作原理。
为什么我们不修改能力值就可以实现100%命中呢,偶尔还带有高盖帽率,高抢断率等附加好处。
而且还会发现自己变脆了一撞就倒,为什么呢,为什么呢?
运气!
大家都知道,无论多么优秀的运动员,在比赛时总会有发挥失常的时候。那么作为一个运行模拟游戏,为了真实,是不是要也模拟出这点呢,增加游戏的随机性呢?答案是肯定的。
所以在游戏内存在着一个函数,一个随机数发生器。游戏内的大部分随机事件、动作,都是由他来控制的。
下面我给出这个函数在当前版本的原型:
mov eax, dword ptr [BF3358]
imul eax, eax, 343FD
add eax, 269EC3
nop
nop
sar eax, 10
and eax, 7FFF
mov dword ptr [BF3358], eax
retn
大概思路是某一全局变量(随机值)的值乘以0x343fd加0x269ec3再右移10位,再加上0x7fff,然后把值给予这个全局变量。
可以看到不再是以前那个泛滥版本的以函数返回值为随机值。还多了2处NOP,说明这里的代码是被重点关照过的。
那么我们的某什么什么是怎么改的呢?
这里可以看到整个随机数的算法(他的初始随机值是通过gettickconut函数获得的),想修改那里都可以了对吗。
那么我们单拿某XXX神作来说。他是修改了and eax,7fff的数据,这里的机器码是25 ff 7f 00 00 。我们只要修改成25 00 00 00 00就可以实现BF3358值的低16位置0(0=命中100%)。它正是控制你们运气的数值。
然而这个函数的并不仅仅参与命中计算,所以大家就看到了很多通过修改它而获得的“额外功能”。