欢迎光临散文网 会员登陆 & 注册

浮点数相关:星套、爆率、经验的调整

2022-11-26 11:18 作者:螺丝刀_汗颜  | 我要投稿

上一篇讲了如何找到存储星套数据的地址(偏移),我们可以再进一步,通过“查看谁访问此地址(指针)的数据”,即可找到星套攻击加成的代码(注意,攻击怪物时,才会计算这个伤害加成),具体地址如下图:

计算星套伤害加成代码


上上一篇讲了如何调整武器成长。其实调用这个函数的函数(上一层),就是游戏杀死怪后“处理怪物经验”的函数。我们回上一层,在处理怪物经验函数头尾下断,进而分析人物所得经验的“生成”,也会看到有类似的浮点数运算,如下图:

计算怪物经验


游戏的爆率计算也是如此。但要找出计算爆率的代码,最好用搜索字符串的方法。下图是真正计算初始爆率的函数,注意看右边的注释栏的字符串。

计算初始爆率的关键字串

下面是计算初始爆率的上一层函数,也有关键字符串。游戏的很多功能是通过LUA脚本实现的,都少不了类似字符串,这个才是真正的“特征码”,游戏再怎么更改版本,也能很快通过这些字符串,定位相关代码地址。

爆率的另一个字符串关键字

计算爆率时,同样是浮点数的运算。

初始爆率计算


那如何实现这些数值的调整?

浮点数的计算,也是加减乘除,看起来很晦涩的样子,实际上我们也不要去干涉它的运算过程,直接调整参与运算的数值就可以了。可是好像又有一个难点,如果查看浮点数的实际存储在数值,没几个人能直接看出那个数值是多少,如果每次调整都要通过工具换算,那就好麻烦了。其实玩CE,不用担心这个,大家直接看脚本示范吧。


调整参与运算的浮点数


关键在于 define 命令,即可以定义地址,也可以定义数值(还可以定义汇编指令)。

浮点数相关:星套、爆率、经验的调整的评论 (共 条)

分享到微博请遵守国家法律