最近沉迷于一个老游戏,FC版的《三国志-霸王的大陆》,有大佬做了个Android版的,还添加了很多东西,比如技能系统。

游戏文件:

https://tieba.baidu.com/f/good?cid=0&ie=utf-8&kw=霸王的大陆

我想刷一个组合出来,但是靠随机不太可能:

Untitled

于是就想用修改存档的方式来改下技能。

直接覆盖

首先,刷新前保存一次存档,刷新后再保存一次存档,用 010 对比一下,发现有4处不同,猜想这4处就是储存技能的位置了。

先尝试直接替换第2处不同,看看能够修改第二个技能。记载替换后的存档,失败了,不仅第2个技能没替换,其他的技能也变化了。再重新加载一次,发现技能又不一样了,于是确定是技能数据修改有问题。

所以直接替换是不行的,应该是游戏对技能数据做了校验,发现被修改之后,就又重新随机了。

反编译游戏

该游戏作者在贴吧做了介绍,是使用 godot 做的,查一下官方文档:

https://docs.godotengine.org/en/stable/

看着非常像Unity,解压一下base.apk,看一下asset下的文件结构,发现有个 script 文件夹,里面有很多 .gdc 文件。

网上搜索一下 gdc decompiler:

https://github.com/bruvzg/gdsdecomp

按照项目的说明,直接使用命令反编译 base.apk,再用 code 打开:

Untitled

非常的nice,gd 是 gdscript,还是能看懂的,与源码几乎没区别了。

查看 sav 存档