differentrain 发表于 2014-11-17 15:34

不要轻易修改明3的游戏资源,比如\Data\下

本帖最后由 differentrain 于 2014-11-17 17:17 编辑

其实最好是一切文件都不要改,只通过内存修改..

想从脚本的角度去控制游戏剧情,就看了一下游戏文件。发现游戏文件都是经过压缩或以特殊方式存储的。

这里是想说,这种存储方式会让我们产生一个美丽的误会,让我们觉得“呀,能改”....

===================
Data\下的文件:存储了游戏的数据。

虽然内容没压缩,但是却有特殊的格式。

这个举例吧。

当我们用BIG码(950)打开文件\Data1\TVCase.dat的时候,除了乱码,我们看到了繁体中文的文字,看到了编号。



但是这么改是会有问题的...

看十六进制内容。



就看第一行。

0x00的位置:F2 03,是文件头(文件类型的标志)。内容固定。Data下每个文件的最开头都是这样的。

往后四字节。0x04的位置起是6F 01;0x08的位置起是A0 01;0x0F位置起对应的字符是TV001..

TV001肯定是编号了。那前面的两个是什么呢?


看文件大小。



16进制存储是从低位到高位的。所以6F01对应的十六进制数是16F,而A001对应的是1A0。

打开计算器,在16进制模式下把这两个数字相乘。然后转换到10进制。

我们得到了一个数字:152672

熟悉吗...这个数只要加上12,就是这个文件的大小了。而从文件头开始到0xA0 01为止,正好是12个字节。

整理一下格式

          文件头          四字节数值      四字节数值B      正文
0x00开始:F2 03 00 00    XX XX XX XX   XX XX XX XX    XX XX XX XX
A*B=正文的长度

也就是说,如果要改内容,就一定要改A和B的值,让它们的乘积符合长度,否则很容易出错...

但是仍然有一个问题,就是A和B的值是随便选的,还是有规律呢?

我还不知道..需要调试。

所以还是不要轻易改的好...
============================
说到脚本,就顺便说一下Script\下的脚本文件格式。

不说怎么分析的了。就说结构吧。
         文件头         文件头          压缩前长度      压缩后长度
0x00开始:00 00 00 00    80 00 00 00   75 63 49 00   DE CE 22 00
……
……
0x80开始:正文
正文内容是LZO压缩后的luaPlus脚本。
解压缩算法也还需进一步调试。
=============================
顺便说,为什么改存档就没事。

因为存档既没有加密,前面也只有文件头"EC 03"..所以带胶布。

止慈 发表于 2014-11-18 21:49

好仔细的研究,我没看那么多……
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应该还是好说了。不过既然内存也能修改,还是尽量不要动文件本身了吧。。
script下是什么的脚本?如果剧情的话只看游戏资源是不是只能得出一个最全面的攻略。。但具体触发其实还是要看内存中触发时的判断机制?

differentrain 发表于 2014-11-18 22:00

止慈 发表于 2014-11-18 21:49
好仔细的研究,我没看那么多……
也就是说像TVCase.dat这样的文件如果没有前面那两个A和B的话,应 ...


脚本就是整个游戏的脚本。

只不过被加密了,所以不解密只能看到断断续续的中文说明。

然而如果能解密,那么以此可以做出来最好的攻略...

另外还能做mod之类的东西。

至于内容是什么样子的...其实就是这张图。



就是lua脚本而已...

shiosi 发表于 2014-11-19 11:05

好高级哦,从来搞不懂这种修改的默默地飘过......

黑米团子 发表于 2014-11-19 18:03

如此高端,学计算机的默默的飘过,知识全还给老师了,果然还是没学到位啊~~
结论就是还是乖乖的玩游戏才能体会到乐趣~~yeah!!

尗又 发表于 2014-11-19 19:32

放心,雨神。。。

没人敢碰的。。。
页: [1]
查看完整版本: 不要轻易修改明3的游戏资源,比如\Data\下