修改侏罗纪世界重生MOD恐龙生成刷新概率

修改侏罗纪世界重生MOD恐龙生成刷新概率

使用反编译+修改字节码的方式修改概率

修改侏罗纪世界重生MOD恐龙生成刷新概率

mod开发进度缓慢,也并未提供配置文件调整恐龙刷新概率,想快速修改的话只能通过修改源码的方式。由于此mod非官方汉化,所以存在许多不同版本,直接修改官方源码编译也不怎么可行。(太麻烦),所以只能通过反编译暴力修改的方式。

Recaf

修改jar源码我一直比较喜欢使用Recaf这个软件,所以就拿他距离

分析源码

通过分析 reborn.server.dinosaur.Dinasour的恐龙基类可以发现,不同恐龙类都有两个属性: spawnChancemaxHerdSize ,刷新主要通过这两个数值控制

29E2B67B-A198-4381-B6B7-6433F3C98C4E.pngspawnChance控制生成概率,maxHerdSize控制最大生成数量

使用Recaf修改数值

你可以选择修改某个单一恐龙的数值,也可以直接修改Dinosaur类所有的,方法都大同小异,这里就直接修改Dinosaur基类做演示

先打开Recaf,导入这个mod的jar包,找到 reborn.server.dinosaur

8A33E149-1E67-493D-AB3C-8FC3ED91D8E4.png

然后找到下面的Dinosaur基类(如果修改单一恐龙就修改你要修改的那个恐龙类):

BCDEAEBB-CB68-41A8-A9DD-ABD68978E4E7.png

找到 getSpawnChance() 方法

7A64390D-07E0-4455-892A-6D403F97C341.png

右键方法名,选择 Edit with Assembler ,然后可以看到如下窗口

5A3FC93D-3565-4573-84C1-C26994C0F970.png

删除其中的 GETFIELD 一行,然后替换成你想要的数值的字节码

一般来说这里是概率,所以填1-100

字节码有如下规则:

  • 取值-1~5时,使用ICONST(例: -1为ICONST_M1,5为ICONST_5)

  • 取值-128~127时,使用BIPUSH (例:BIPUSH 80)

  • 取值-32768~32767时,使用SIPUSH(例:SIPUSH 1000)

  • 取值-2147483648~2147483647时,使用LDC

修改后如图(我这里改为80):

3816DC54-FDDF-4288-B064-882A2E54C213.png

修改完后按 Ctrl+S 保存,可以看到代码已经被修改:

BCA35AEC-BA44-4A6B-8CA0-D0A28997787C.png

如果你有强迫症可以把ALOAD那一行也删了,这样就没有前面这个无用的定义

然后对于maxHerdSize方法也大同小异,找到 getMaxHerdSize 方法再按照上面的方法修改就行,这里不多赘述

修改好之后选择左上角 File -> Export program 导出jar,就是你修改好的mod

至此,修改结束

LICENSED UNDER CC BY-NC-SA 4.0
Comment