本篇文章给大家谈谈java游戏bt修改教程,以及bt游戏修改器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

有什么办法可以把游戏资源转换成BT种子?求大神帮助

你好,按如下方法 BT种子制作发布教程 1、下载安装发布制作工具。 下载安装。completedir会自动安装到系统的Program Files目录的completedir目录。 如:c:\Program Files\completedir 2、用completedir制作“.torrent”文件。 把要发布的文件统一放到一个目录下,如:E:\BT\upload\0509 然后运行 completedir.exe “directory to build”框 选中要发布的目录,如:E:\BT\upload\0509 “announce url”填 “piece size”使用默认值。 以上项目都填好以后,点击“make”,就会生成一个“.torrent”文件。在发布的目录,如 E:\BT\upload\0509 中找到 .torrent 文件。 3、将做好的发布文件上传到论坛。 在论坛里面发贴,把“.torrent”文件作为“附件”上传。 4、成为种子 双击“.torrent”文件,按照bt下载的步骤,选择保存目录。这里注意:一定要选择制作“.torrent”的目录,如 E:\BT\upload\0509\ BT会扫描目录已经存在的文件。扫描完毕,BT认为这个文件是完整的,BT就开始上传,这时你成为第一颗种子,等别人来下载。 5、坚持到培养出第二个种子。 保持BT窗口不关闭,直到有人完全下载完毕,只要他不关闭BT,他就成为第二个种子。

java游戏bt修改教程(bt游戏修改器)插图

游戏修改器怎么用?我想修改金币,属性,和BT修改!把步骤告诉我!谢谢啦!

先输入想修改的数值进行搜索

直接可以修改的直接修改就是

数值过多的需要继续搜索,将数值变动进行修改

例如:金币-1000

       搜索1000后,查到1000的数值有N多个

       将金币花掉一部分    金币-998

       搜索998后 ,查到只有几个,这几个中就有你需要修改的金币,直接输入修改数值就行了

手打不易,望采纳

怎么把手机游戏改bt

手机游戏中主要按文件不同可分为两类,一是class文件,代表作品是:英雄传说等,二是资源文件,代表作品是彩虹城堡等。目前,一是可以用halo2.0来修改的,二还无法用halo2.0修改,请自行使用十六进制工具(UE、HEX等)修改,本文不作讨论。另外,存档类的修改也不列入本文内容,因为也是涉及到十六进制工具的。

BT修改可能会破坏游戏原本的乐趣,所以我并不提倡,只是技术上的交流。还是那句话,想要体验游戏的乐趣,请自行下载原版。

工具:halo2.0,DJ Java Decompiler

Java游戏:英雄传说s60原版(S60V3,240*320)(本文以此为例。为什么是原版?为什么只是S60版?这是为了让更多的迷友,可以自己动手修改英雄传说的汉化版本,因为想玩才会有动力。若直接使用我修改的,这样是无法学会BT修改的。)

1、数据的准备

什么是数据的准备?为何要数据准备?简而言之,就是我们到底需要改哪些数据,在游戏中原来的初值究竟是多少?那我们先用sjboy来模拟,看看我们到底想改哪些属性数据。

咿呀!手机顽童竟然无法模拟?!到选择人物时,直闪屏,按任何键都无法进入游戏。其实,只需不断按F3键来减缓游戏的速度即可!进入游戏后,到人物菜单界面,

好,主要是以下数据,金钱300

图一:等级数1,经验值0,升级需要经验值80,生命值72/72,法力值60/60

图二:力量8,生命5,敏捷3,意志4,进攻16,防守5

图三:可加点数0

2、数据的查找和修改

那我们一个个来找到这些数据并修改成自己想要的BT值。复习bb的修改教程,打开halo2.0,选择class editor,编辑,全文查找,输入300(为什么是300?因为这个值较为特殊,重复率较少啊。如果选择1,0,8或其它的话,可能会查出一大堆来,没有编程基础的迷友就会很迷茫,到底是去选择哪个才是正确的。那又为什么不选择72呢?这个也挺特殊啊!我要告诉你一个不幸的消息,在本游戏查找中,会出现很多,而且可以告诉大家,搜索出来的都不是。Why?经验?不是。是后面编译文件的分析。)只查找到一个目标,按照bb的教程已修改其中的参数,金钱300,力量8,生命5,敏捷3,意志4。5个值。

那么按照bb的方法,为何找不到其它相关的数值呢?!我非要修改怎么办?其实属性值的赋值有两种方式,一种是显式,如i=300或a=5,bb的教程中只能修改到这些数据。另一种是隐式,如a=(b+c)*100等。此教程主要介绍隐式数值的修改。

一般来说,如果是赋值属性值的话,会在同一个class文件中,所以,既然我们找到了金钱300的class所在,我们也应该找到了其它的属性值。那金钱300具体是在哪个class文件呢?答案就在搜索结果中,类名——ao。

现在用DJ反编译ao.class,查找300,发现,a_g_fld.a = 300;即金钱的变量名为a_g_fld.a,值为300.说明我们所找的class文件是正确的。那分别查找8,5,3,4,也找到了!

case 6: // ‘\006’

b_short_fld = 8;

e_short_fld = 5;

f_short_fld = 3;

g_short_fld = 4;

a_e_array1d_fld[0] = (e)ad.a((byte)0, (byte)0, true, false);

a_e_array1d_fld[0].b = true;

a_e_array1d_fld[0].h = 1;

break;

呵呵,力量的变量名为b_short_fld,以下类同,不作解释。

那查找72看看,的确没有。这也证实了此为隐式赋值。那我们该怎么办?这么多的变量,字符看得头都大了,还是分不清哪个是哪个。我起初也想了很久,一个个去分析,太慢。那我们先搜索b_short_fld看看,发现倪端。

h_short_fld += ((b_short_fld + m) * 4) / 5;

i_short_fld += (b_short_fld + m) / 5;

dataoutputstream.writeShort(b_short_fld);

前两个不就是什么所谓的隐式嘛?!那h和i又代表什么呢?暂且先不考虑。最后一句是io流操作,意思是把写入b_short_fld变量值。这个倒是给了点启示。

因为发现

dataoutputstream = new DataOutputStream(bytearrayoutputstream)).writeByte(f_byte_fld);

dataoutputstream.writeByte(g_byte_fld);

dataoutputstream.writeInt(a_int_fld);

dataoutputstream.writeInt(b_int_fld);

dataoutputstream.writeInt(c_int_fld);

dataoutputstream.writeInt(d_int_fld);

dataoutputstream.writeInt(e_int_fld);

dataoutputstream.writeInt(f_int_fld);

dataoutputstream.writeByte(z);

dataoutputstream.writeShort(a_short_fld);

dataoutputstream.writeShort(b_short_fld);

dataoutputstream.writeShort(e_short_fld);

dataoutputstream.writeShort(f_short_fld);

dataoutputstream.writeShort(g_short_fld);

只要把找到这些数据的源头,也就是属性值的源头了。最后的4个变量即是bb教程中的4个属性参数,这里就不作讨论了。

1.那么我们先从f_byte_fld变量开始。首先搜索,看看这个变量到底是代表什么含义的。这个变量搜索共有3处。前两处是写入和读取;另一处是赋初值public byte f_byte_fld = 0;所以暂且不管。

2. g_byte_fld变量,还是搜索,g_byte_fld = 1;另外还有几处判断,略去,有兴趣的迷友可自行研究。

另外,if(g_byte_fld 99)

{g_byte_fld++;

……

}

猜测是等级,如果变量小于99,递加……。经测试,的确是表示等级的变量。那么我们把变量变为11试试,即把g_byte_fld = 1改为g_byte_fld = 1;那这个是显性函数,修改方法同bb教程,修改后如图:

3.变量a_int_fld = d_int_fld; b_int_fld = e_int_fld;那么我们先看变量d_int_fld

d_int_fld = (e_short_fld + n + g_byte_fld) * 12;

e_int_fld = (g_short_fld + p + g_byte_fld) * 12;

让我们看到了一些希望。因为72和60都是12的倍数,难道这就是我们所要找的数据。

据我们所知e_short_fld=5,g_short_fld = 4(前面已讲到),那么g_byte_fld就是前面2所讲的等级,即生命值和魔法值与生命和意志有关,而且与等级有关。那n与p又是代表什么呢?

public final void n()

{

e ae1[] = (e[])a_e_array1d_fld;

m = 0;

n = 0;

o = 0;

p = 0;

for(int i1 = 0; i1 5; i1++)

if(ae1[i1] != null)

{

m += ae1[i1].j[0];

n += ae1[i1].j[1];

o += ae1[i1].j[2];

p += ae1[i1].j[3];

}

在n()中赋值和递加。初值为n=0,p=0;代入,d_int_fld=72;e_int_fld=60,^_^,终于找到真身了。那么最简单修改就是修改12这个系数,因为这也既不改变原来的计算公式,也容易操作,当然你也可以修改成其它。说改就改,把12改成60,理论上应该是360和300.

Halo2.0操作步骤:打开jar,选择ao.class.右键editor class,出现下图:

反编译得,d_int_fld = (e_short_fld + n + g_byte_fld) * 12;在public final void n()中,那么halo2.0方法找到n,发现访问控制public,final已勾选,类型void,和反编译的完全相同,那么选择n方法下的code,如图

把159 bipush 12和180 bupush 12中的12均改成60后,保存方法,编译打包运行得:

与猜测得相一致。Binggo,当然,还可以直接修改这个隐式函数,这里不做讨论。(修改无极限,只要你能想到,修改的方法很多。我只是提供大家思路而已)

那么先前找到的a_int_fld是什么呢?继续查找,

public final void b(int i1)

{

a_int_fld += i1;

if(a_int_fld d_int_fld)

a_int_fld = d_int_fld;

if(a_int_fld 0)

a_int_fld = 0;

bs.a_as_static_fld.c();

if(a_int_fld == 0)

{

a((byte)6);

super.k = 0;

u = 24;

return;

} else

{

return;

}

}

所以可以知晓,a_int_fld代表生命值的当前值。同理可得b_int_fld代表魔法值的当前值。

4.变量c_int_fld,c_int_fld = 0;初值为0,难道是经验值?继续查找,

public final void f(int i1)

{

i1 *= 4;

for(c_int_fld += i1; c_int_fld = f_int_fld;)

{

c_int_fld -= f_int_fld;

r();

}

if(c_int_fld 0)

c_int_fld = 0;

bs.a_as_static_fld.e();

a_p_fld.a(i1);

}

既然出现f_int_fld,那么顺便查找一下,发现

f_int_fld = (g_byte_fld * g_byte_fld * g_byte_fld – g_byte_fld * g_byte_fld) + 80 * g_byte_fld;

看到80了,一阵激动,因为g_byte_fld的初值为1(前面已经搜索过)那么f_int_fld的初值就为80,哈哈,终于找到升级需要经验值了。为了验证我们的猜想,把80改成99试试,如图,的确如此:

呵呵,把f_int_fld改成1就可以实现,打一个怪可以升N级,或者自己编个函数,实现打一个怪升一级。

回到刚才的c_int_fld,那么当c_int_fld += i1; c_int_fld = f_int_fld;时,c_int_fld += i1; c_int_fld -= f_int_fld;猜想c_int_fld变量代表经验值。因为,若c_int_fld=8280时,那么就升级,经验值变为82-80=2.好,那我们来简单修改c_int_fld的初值。c_int_fld = 0,把0改成66试试。变量赋值语句在public final void c(byte byte0)方法中,修改后得下图:

至此,图一所涉及的所有参数等级数、经验值、升级需要经验值、生命值、法力值。已都找到并修改。

5.变量a_short_fld,a_short_fld =0,

if(g_byte_fld 99)

{

g_byte_fld++;

n();

super.a.addElement(new aw((byte)3));

super.a.addElement(new aw((byte)4));

a_short_fld += 3;

}

分析得,a_short_fld变量是表示可加后可加点数的。为什么?首先初值是0,另外,在等级99时,每升一级变量就在自身的基础上+3,推测应该是表示升级后可加点数。修改后如图:

至此,已经把io操作流中的写入数据一一分析。但好像还是遗漏了图2中的攻击和防御数值。那它们到底隐藏在何处呢?的确,我也找了很久没找到,后来发现,攻击与力量值有一定联系,随着力量数值的修改,攻击值也会变动

那么我们就来搜索b_short_fld这个变量。发现

h_short_fld += ae1[0] == null ? 0 : ((short) (ae1[0].a + (ae1[0].e * 5) / 2));

h_short_fld += ((b_short_fld + m) * 4) / 5;

i_short_fld += ae1[1] == null ? 0 : ((short) (ae1[1].a + ae1[1].e));

i_short_fld += ae1[2] == null ? 0 : ((short) (ae1[2].a + ae1[2].e * 2));

i_short_fld += ae1[3] == null ? 0 : ae1[3].a;

i_short_fld += ae1[4] == null ? 0 : ae1[4].a;

i_short_fld += (b_short_fld + m) / 5;

i_short_fld += g_byte_fld / 3;

h_short_fld和i_short_fld很特别,与力量有关的隐式函数,值得我们关注。

经修改发现,的确如我们所料(具体变量间如何变化,就不在展开,牵涉比较多的变量数据基础,怕很多迷友看得一头雾水。有兴趣的迷友可以自己参看一些基础知识。)

把h_short_fld += ((b_short_fld + m) * 4) / 5中的4改成40,i_short_fld += g_byte_fld / 3中的除法idiv改成乘法imul(具体图文不列举了,如果能熟练操作halo2.0的应该没有问题,即把偏移量为433:idiv,编辑(高级),修改成imul即可。)

得,攻击变为74,防御变为8

3、小结:本教程主要讲解如何去寻找目标数据,halo2.0上的操作讲解并不详细,请谅解!

数据准备中的所有数据已一一找到。

BT修改并不是一件很容易的事,需要一定的耐心和推断能力。

关于java游戏bt修改教程和bt游戏修改器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。