java游戏猎魔人_【图片】新鲜出炉,猎魔人(修改版)【javagame吧】_百度贴吧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

BT千世劫-轮回金币

游戏的数值有的作为初始常量直接定义,有的就体现在公式了,比如这个游戏中初始金币是598,我有两大种类定义方式,一种是:

public static int a;

a = 598;

另一种是:

public int a;

public int b;

for (b=1,b< = 99,b++);

a = b*b+598;

在这种,我定义了金钱和级数相联系,a是金钱,b是级数,当级数为0的时候,金钱就是598了,当然我只是简单地举个例子而已,谁会用这么简单的呢。。。

下面说说搜金币的技巧,手机上由于BT得用BE和一个反编译的软件相结合,由于局限性有的代码会反编译错误,也就显示不出来。所以一般步骤就是先用BE的搜索功能搜索关键字“金币”或者初始值【这个结合游戏中怎么称呼吧】,然后在反编译然后搜索关键字。

在这个游戏中,我们先搜初始值598,找到了,在c.class中找到了

public static int a_int_static = 598;

到这一步,你有两个选择,改初始值或者继续下去,我们继续挖掘,搜“a_int_static”,在v.class找到了如下

case 42: // '*'

shortword16 = k1.a();

c.a_int_static+= word16; #注释c.a_int_static就只金钱的公式,可以看出来-

Strings4 = null; #注释:这里定义了一个字符串

if(word16 > 0)

s4= "获得金币:" +word16;

else

s4= "失去金币:" +Math.abs(word16); #注释:画线部分的意思是word16的绝对值【所以这个if语句只是个提示语句,并不是真正的值,你如果改这里,实际值并不会变化】

a_ao= new ao(s4);

c_byte= 5;

return;

经过我初步分析,这个应该是买东西或者干别的神马会发生金钱的加减。我没玩这个游戏,假如是商店里买东西,那意思就是,word16代表商店中东西的价格,你如果买就会减去相应钱数,若卖则加上相应钱数。如果我们在这里改金钱倍数该怎么弄呢,肯定不能直接改,因为word16有正数和负数两种可能,怎们能让它一直为正呢?这段代码给了我们提示,加绝对值,怎么加?模仿呗。。。。

打开BE,我们看见绝对值的代码是“invokestaticjava/lang/Math/abs(I)I”,所以我们就在iadd上一行加上这一句话,改完后看看反编译的结果:【如果想在这改倍数就在加绝对值上一行加上:

sipush 倍数

imul

case42: // '*'

short word16 =k1.a();

c.a_int_static += Math.abs(word16); #注释:看,果然对了,这下就只加不减了

String s4 = null;

if (word16 > 0)

s4 = "获得金币:" +word16;

else

s4 = "失去金币:" +Math.abs(word16);

a_ao = new ao(s4);

c_byte = 5;

return;

由于用不同反编译软件反编译变量的名称会不一样,但方法和添加的部分不用改变。所以可以记住绝对值的用法和那段字节码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值