Skip to content

仙剑奇侠传五:让雨柔归队打 BOSS

想让女主角复活出来打 BOSS 吗?

我一路打到 BOSS 战完全没修改过,当时急着想看结局,在试过几次觉得希望渺茫之后就修改了直接看的结局。过了一段时间之后我觉得还是来硬拼一下 BOSS 车轮战。但同时我又觉得小蛮打着很不顺手,一路以来都是和雨柔搭档。全体加血的法术和加全积极状态的技能都非常有用。于是我就想,能不能把她改出来呢?上网搜索了一下,还真有人写过相关的文章。

J. Y. Liu 仙剑奇侠传 5 保存文件的简单分析:让雨柔复活打最终 BOSS 吧

我照着这里的提示琢磨了一晚上加一上午,失败无数次之后中午终于成功改出了。琢磨这么多次的原因嘛,我从来没有直接读过游戏存档,只有多年前用金山游侠之类的工具修改游戏数据的经验。我也不懂编程,对偏移也是首次接触。然后仙剑五的存档数据位置应该并没有固定,所以这篇博文里提供的位置在我的存档里并不吻合,所以我琢磨了很久才弄清楚相关的数据存储。于是我准备写一篇博文介绍给同样有意做这样修改的朋友。零基础。

如果不想亲自动手,可以直接到文章末尾下载成品文件。

先上一张图看看雨柔归队后的战斗画面吧:(1280×800 px)

shot.2011.7.25.5.7.13

那么,准备开工。

我用来查看和修改存档文件的软件是 UltraEdit 也就是俗称的 UE,可以到官网下载到免费试用的版本,有中文版:

http://www.ultraedit.com/downloads/ultraedit_download.html

安装好 UE 之后,我们的工作就可以开始了。

仙剑五的存档文件在游戏目录的 Save 文件夹里:

比如我把游戏安装在 D:GamesPal5,那么存档文件就在 D:GamesPal5Save。

在这个目录我们可以看到如下图这样数字编号的文件,编号和游戏中看到的存档编号是对应的:其中 .sav 文件是我们要修改的存档文件, .tga 则是这个存档对应的截图,在游戏中读取存档的时候我们会看到这个小图。另外,自动存档文件是 global.sav 。

现在你要找到你想要修改的存档文件的编号,当然,如果是自动存档则直接是 global.sav 。在这个 .sav 文件上点击右键,菜单里会有一个 UltraEdit 的选项,这样就可以在 UE 里打开存档文件了。(当然,先打开 UE 在找到这个存档文件打开也没问题。)

记得真正开始改之前,要备份原来的存档文件,否则改错了会改不回来的!

下图是我在 UE 里打开自己的存档后的一张截图,我们从这张截图来简单说明一下存档文件的结构。

首先这里的数据都是十六进制的,简单地说十进制的一位有 0-9 十个数字,而十六进制的一位有 0-9 加上 A-F 一共十六个数字。使用十六进制是因为它可以更简洁的表示二进制,而电脑使用二进制就不消说了。

这里的两个数字(比如最左上角的 01 )为一个字节,四个字节为一组(比如第一组是 01 00 00 00)。横着看,看完一行接下一行。竖着的两个数据恰好相差四组,在本文的情况里有时两行恰好是对应的。

第一步

以 UE 里表示出来的为例(别的编辑器可能会不同),我们来看这个存档文件的前两行。

第一行是人物编号:云凡是 01,雨柔是 02,龙幽是 04,小蛮是 08。

第二行是人物等级。注意是十六进制,所以这里的 36 表示的是 54 级。(Windows 附件里的计算器可以实现十进制和十六进制的转换。)

这两行是竖着对应的,比如 01 下面就是 36,就是说云凡的等级是 54 。

这个存档里雨柔已经不在队里了,所以没有 02。现在我们把她改出来。将一二两行的最后四个字节改成下图所示的数据。(修改数据的方法是现在要改的地方点击一下,然后输入数字或字母就会覆盖原来的数据。)至于为什么要这样改,你去打开之前四人都在的时候的存档就知道是这么回事了。

这里的人物和等级信息只是用在显示下图的,并不是游戏中实际的人物和等级数据。

第二步

刚才的第一步只是一个开始,改到这里如果就进入游戏的话,你会在载入存档时看到雨柔,但是进去之后则完全感受不到她的存在。接下来的修改才是正题。但也会比第一步困难得多。

首先我们再来看看之前那张截图。
(我没有重新截图,所以假设现在我们已经完成了第一步的修改,紫色块的那部分已经改好了。)

现在我们找到 00000090h 这一行,我用黄色色块标注出来的上下两个字节 01 36 ,这正是表示 姜云凡 和 54 级的意思。从 01 开始就是姜云凡的人物数据。长度大约有 52 组数据,也就是 13 行(见文首列出的那篇博文)。不过这是后话。首先我们要修改的是在 01 的前一组,我用绿色标注出来的 03 。这个 03 是说队伍里有 3 位角色的意思。现在我们把它改为 04 ,因为我们要让雨柔归队了!

需要注意的是,这个数据的位置并不是固定的,不同的存档文件会不同,所以你只能够先在 090h 行左右找到云凡的那两行对应的数据,然后从 01 往回数的第四个字节就是我们要修改的内容。并且这也很好确认,因为这里的数据是当前队列人数。

确认一下

这两步修改结束之后我们的存档文件应该是这样的:第一处修改是紫色块开始到行尾的数据;第二处是绿色的部分由 03 改为 04 。第一处修改的位置对所有存档都是一致的,第二处的位置则需要自己寻找(见上一段)。

第三步

我们的存档文件并不只是这张截图的部分,它很长,做一下确认就是因为我们现在就要离开这个地方,滑动滚动条往下看去了。

从 090h 行附近的那个 01 36 的 01 开始,就进入了人物数据的部分,已经说过,每个人的数据大约有 13 行、52 组(一行有四组;一组=四个字节=八位数)。总共有四个人的数据,虽然雨柔不在队里,但雨柔的人物数据却在这个存档文件里(并且等级并不是她离开时的,而是和龙幽、小蛮一样已经同步到云凡的新等级。)

不过,在找到雨柔的人物数据之前,我们还是按顺序一个一个来。我们已经看到了云凡的数据,并且知道大概会有 13 行,那么从 090h 往下看,直到看到 04 35 (如下图黄色色块所示,在 1a0h 行),于是我们知道龙幽的数据开始了。

要注意的是,这里不止 13 行,跟那篇博文里所说的数据并不相同,但是要找到这里并不困难,因为 04 35 上下两组数据还是很好确认的。

如法炮制,我们可以找到小蛮的数据开头。(这次的确是 13 行,恰好 13 行;也许可以猜测云凡的数据会比其他人更多,所以不止 13 行)

接着,从 08 开始是小蛮的数据,再往下数 13 行:

从 00000270h 一行的第二个字节(列 1)到 00000340h 一行的第一个字节(列 0)是小蛮的人物数据。然后我们在 00000340h 行的列 5 及其下一行看到了 02 35 ,雨柔出现了!

等等,那么两者之间的 01 00 00 00 是什么呢?按照那篇博文的说法,这一组数据表示的是未在队列里的人数,所以 01 表示的是有1个角色(也就是雨柔)没有在队里。而这组数据的另外一个功能就是隔离在队角色和离队角色的人物数据。所以在离队的雨柔之前,最后一个在队的小蛮之后,就有了这组数据。而现在我们要做的就是把这一组(四个字节、八位数)数据从此剪切掉,然后粘贴插入到雨柔的人物数据之后。

剪切这组数据的方法是,选中它们,右键,剪切(cut)。剪切之后,后面的数据就会提前,变成下面这样了:(08 35 和 02 35 就会在同一列了)

接下来我们要找到雨柔人物数据的末尾在哪里,还是数 13 个整行:

从黄色高亮的 02 开始,这 13 行蓝色高亮部分就是雨柔的数据,在末尾的黑色方块位置右边的那一位(截图里是 8 )上面点击右键(不要选择任何数据,也就是说不要像上面这张截图这样去使数据高亮,否则就会覆盖选中的数据;这里高亮它们是为了讲解清楚这块数据是什么而不是演示操作过程),右键菜单里粘贴(paste),就会把刚才剪切的 01 00 00 00 插入进来。

但是我们知道这里的 01 表示有一个人没在队里,而现在所有人都在队里了,所以我们应该改为 00 ,也就是 00 00 00 00 ,如下图:

如果你没有操作错误的话,现在我们已经让雨柔在队里了。快要成功了。

最后一步

改到刚才那里,如果我们把存档拿到游戏里用的话,在载入存档的时候我们会看到下图(刚才贴过的)。

并且这个存档也可以成功载入,只不过当你进入队列画面或是进入战斗之后就会弹出。因为还有一个重要的数据冲突了。现在我们就来修改这个数据。

仍然是雨柔的部分,以 02 为第 1 行、第 1 组的开头,向下数,到第 7 行、第 4 组数据,也就是下图用紫色标注的地方。

这里的 01 表示该角色在队伍中的位置, 00-03 分别表示 1-4 。所以这里的 01 就是第 2 位的意思。(雨柔离队之前的确是在队伍里第二位的对吧?如果当时没有调过队伍顺序的话。)但是,现在队伍里第 2 位另有其人,是龙幽。如果我们找到龙幽的人物数据,同样的这个位置,就会发现这里也是 01 ,而云凡是 00 ,小蛮是 02 。

所以,雨柔加入队伍之后,我们应该把紫色高亮的部分改为 03 ,让她在队伍的第 4 位。不用担心,只要能正常进入游戏、进入队列画面,就可以自己调整角色顺序了,如果要在这里改动则要改好每个人这里的数据,就太麻烦了。

到此大功告成了!

如果更谨慎一些的话,你可以依次找到每个人物的 队列位置 数据(方法和雨柔这里的完全一样),然后检查有没有冲突。之前弹出的原因就是有两个 01 ,而现在已经改为 00-03 各一个。

原文件与成品下载

包括原文件和成品的打包文件:点击下载

修改后的成品:点击下载

最后放一张合击图纪念一下:

shot.2011.7.25.12.41.18

Be First to Comment

Leave a Reply