|
精益论坛的小伙伴们大家好, 最近刚来到精益玩耍
看到任务厅里琳琅满目的单子,一直心痒痒,无奈刚入驻精益,积分不够呐
所以放一篇我以前写的安卓游戏修改教程到精益论坛 在你们涨知识的同时给我涨涨积分,
教程是我很久前写的 . 比较初级, 适合新手观看, 如果反映良好我会考虑放一点高级点的教程出来.
帖子原地址: https://www.52pojie.cn/thread-688722-1-1.html
不多说了. 我要开始复制了!!! (自己转自己的不算抄吧~)
-----------------------分------------------------------割-------------------------------------------线----------------------------------------------------------------------
反编译安卓游戏[深城] 修改技能伤害
这个游戏是一个末日AI机器人, 探索地下世界的故事,
之所以想修改他的技能伤害, 是因为玩到某一关有个血量巨tm高的boss玩了好久都过不去,而做材料需要时间太长了.
废话不多说, 上游戏
首先,先把apk发送到电脑, 用工具签一下名, 这里用的是吾爱破J的工具包
先把apk拖进去签名, ( 防止重编译后停止运行,因为我以前吃过这样的亏)
呐, 然后把签名过的apk拖进改之理, 反编译
我们这次的目的呢是为了改技能伤害, 我们来搜索一下伤害的英文碰碰运气
游戏里伤害的英文一般是damage
这里我们发现了好多结果, 那么究竟是哪个呢.
眼睛一撇, 呐, 有一个getDamage
那这个方法可能就是获取伤害值, 计算伤害的方法了
点进去看一下 , 嘻嘻
那这里是一个smail文件, 看的不清晰,
我们点击上面的java图标来看一下java源码
咦? 这个类的名字居然没有混淆?
这是一个等级类?
好吧好吧, 意外地发现了好多有价值的东西
那我们既然是奔着技能伤害来的, 那么就重点关注一下getDamege方法
可以看到这个方法是直接返回了另一个类的方法, 而且注意看,参数是this.level
这么说, 伤害应该是由等级作为参数来计算的.
接下来我们直接进入那个方法, 来看一下具体的伤害计算方式吧!
分析一下这个方法, paramInt这个形参, 就是刚才那个方法传过来的等级了, 所以paramInt这个参数就是等级
然后刚进方法, 他使用了一个参数i=paramInt + 1
通过上面我们知道, 既然是根据等级来计算技能伤害的, 那么也就是说, 肯定等级越高伤害越高
这里我们看到了 i 这个参数是由等级+1计算得来的, 而且下面都是通过这个 i 计算, 所以, 我们让这个 i 的值改变
技能伤害当然也就随之改变啦
所以java代码改成这样: int i = paramInt + 500
这样就相当于我们的等级加上500再传入这个 i 了
这伤害还不爆表了?我们直接增加了500级的伤害
好啦理论上是这样, 但是java源代码是不能修改的, 只能作为参考
我们应该去改smail的代码
找到这个类对应的smail文件, 在里面找到这个方法
看一下这个类的路径com.rockbite.deeptown\!\com\underwater\demolisher\logic\a.class
我们找到这个方法, 一眼就看到了一个add 加法运算
这行代码的意思就是把p0 + 1 赋值给 v1 , 确定了,就是刚才那句java代码
那他加上了0x1 就是只加了1 , 我们让他加上 500
500转换成十六进制就是 0x1f4
因为我们后面加的数变大了, 所以lit8 已经不能满足需求了, 我们需改改成 lit16
所以这行代码就改为: add-int/lit16 v1, p0, 0x1f4
ok , 修改完成了,
我们用改之理重新编译apk
发送到手机测试一下吧!
ok成功了, 一路秒到三百多层,
别看数字很小, 后面的n 应该是游戏里最大的单位了
足够秒天秒地秒空气
好啦到这里就结束了,, 感谢观看[(#^.^#)]
|
评分
-
查看全部评分
|