奇谈资讯网

  1. 网站首页 > 要玩游戏 >

杀塔和修改类文件的图形教程

从网上修改有两种方法。一种是用一些工具把整个jar包完全反编译,然后像做游戏一样修改代码然后重新打包。另一种是修改单独的类文件。

理论上第一种是最好的,因为你可以随心所欲的改,但是仔细想想,和自己学java不一样。我们只是想简单地改变游戏,不想把它变得那么复杂。

于是我研究了第二个,试验成功。现在说说具体步骤。

比如游戏中会出现“混乱”的负面状态,卡耗0-3随机。如果你想在任何时候都是这种状态,并且一直到0,就是这样!(其实有时候切换到英文版更容易看到关键词)

第一步

用DJ java反编译打开jar游戏包,选择搜索,文件类型*。类,并在弹出窗口中搜索文本“混淆”。

回头我找三个包含这个词的文件。

第二步

用java decompiler打开jar包(名字差不多,不过是另一个工具),分别定位这三个文件,通过Fusion搜索代码,然后观察代码。

只需要一点英语知识就能看出关键代码在AbstractPlayer.class这里,random(0,3)只是随机返回0-3。这个代码属于公共void draw(int numCards)

第三步

遗憾的是,虽然你看到了要改的代码,但是你不能在这里把3改成0。因为类文件实际上是一个难以理解的jvm代码,它只是一个帮助你转换成易于理解的纯文本代码的工具。

用winrar打开jar包,提取AbstractPlayer.class.用jclasslib字节码查看器打开它。(在安装这个工具之前,需要安装一个java运行时,可以通过java官网下载)

在方法中,你可以看到有两个平局。单击Code查看jvm机器码。很容易确认第一个就是我们要找的。

关键是把iconst_3改成iconst_0。下一步是提取这个机器码。

在底部找到iconst_0,点击showDescription,会弹出一个网页,显示这个命令的机器代码是3。

Iconst_3是6

Invokestatic是b8,后面是一个2-2bit的参数,#392到十六进制的转换是0x188,所以这里的jvm代码是b8 01 88。

这两个命令的jvm代码是03 06 b8 01 88。

最后一档

用十六进制编辑器打开AbstractPlayer.class。(这样的软件有很多,比如010editro,winhex等。可以随便用),搜03 06 b8 01 88。然后改成03 03 b8 01 88保存。

覆盖修改后的类文件并完成。

杀塔和修改类文件的图形教程

炒鸡简单吗?

也许是,但似乎不是。试试吧。

文章内容来源于网络,仅供参考!本文链接:https://www.chaoduyl.com/wanyouxi/84ddee6d1c699d2f.html