最近总是看到有人不知道存档位置在什么地方,想了想要不写个怎么找存档位置的指南。
找到存档位置之后不仅可以备份游戏存档(SL大法),如果存档本身可以被解析的话还可以修改存档达到想要的效果。
如果你需要找存档位置的话可以使用Procmon这个软件(https://learn.microsoft.com/zh-cn/sysinternals/downloads/procmon)微软官方的分析工具捕获软件的日志,之后逐条排除,寻找存档位置。
一般而言:
unity制作的游戏存档存储在:C:\Users\%UserName%\AppData\LocalLow 下,寻找制作组名称的文件夹。
rpgmaker制作的游戏存档存储在游戏目录下,不过依据版本不同可能存储在根目录,根目录下的save或者根目录下面的www\save里面。



部分游戏喜欢把存档存储在:%HOMEPATH%\Documents 这个目录下(因为文档这个位置是可以移动的,不保证用户有没有移动到奇怪的位置上)。

甚至于说还有一些使用云存档的邪道游戏,喜欢把存档塞在steam的目录里面: steam\userdata\你的用户id\游戏id\remote(典型就是病弱妹和绝地潜兵1)。

当你找到存档之后就可以对其着手修改了,第一件事是先用记事本打开看看,如果是可以解析的文件的话,那就有大量的可操作空间了,剩下一些常见的存档格式也有现成的工具可以试试。
无论你想对存档做什么,第一步都是先找到存档文件,那么接下来就介绍一种在各种情况下都行之有效的方式。
首先需要一款可以读取各个进程执行了什么操作的软件,这里使用的微软提供的进程监视器 Procmon 。

打开程序之后首先点击 reset 清理原有的所有过滤规则,这步是为了防止之前的规则影响本次筛选,之后点击 apply 应用之后点击 ok 进入下一步。

点击 capture 开始捕捉(一般来说会自动开始),这时它就会开始出现日志了。

这时迅速的打开游戏,进行一次存储或者读取存档的操作,之后关闭抓取模式。
要求迅速的原因是为了防止条目过多,筛选起来费劲。
这里我就使用病弱妹未开启云存档的情况下读取存档来演示了。

首先,先按住这个标记,拖动到游戏上松开鼠标,这一步是为了筛选游戏,当然,你想直接编辑筛选器也是可以的。

此时,监视器中只留下了病弱妹这一个程序,然后对操作进行筛选,只留下文件读写操作,就是红框中的第二个。
五个选项分别是注册表更改,文件读写,网络活动,进程活动以及性能分析。

进行筛选之后就如上图所示,这时候通过右键,使用 exclude 可以排除掉一些明显不是存档的路径。
这一步就需要玩家有一定的计算机基础,知道一些较为基础的文件夹作用,譬如说 WinSxS 是用于存放系统组件的, SysWOW64 是用于存放32位运行库的。
又譬如说dll文件是动态链接库,exe文件是可执行文件,这些东西明显不能用来作为存档使用的。
而既然我刚刚执行的是读取存档的操作,那么“操作”就应该是读取文件。
当然,这并不需要玩家全部都知道,使用排除法连续排除即可。

有了这些就可以使用 filter 进行过滤,譬如说我现在写的就是: 如果-路径中-包含-data.xp3-那么就-排除。注意我写的空格,这个就是里面几个选框的作用。
点击 add 之后点击 apply 将过滤规则应用到监视器。

经过这么排除,再经过高亮显示的过滤器(我设置了路径中包含data或者是save等关键词的过滤器),很帅成就可以找到游戏的存档路径。

在 path 上右键,点击 jump to 就可以进入到选择的路径。

如何测试是不是我们需要的路径呢,将所有文件备份之后删除,看看游戏内存档还在不在就行了。
既然找到了存档,那接下来了存档发生什么事情可就不是你能说了算的。
不过到了这一步,那可就真是各凭本事了,存档加密的话我也解决不了。
顺带,改存档之前先把云存档关掉。
这里就拿另一个肉鸽农场的存档举例。(别问为啥不是病弱妹,存储格式我看不懂)

存档路径下有这么几个文件,都打开看看,嗯,都是人类可以辨识的文本。

先别看存档格式看不看得懂,要是打开是乱码的话你就要开始在二进制的情况下比较多份文件了,你不会想知道怎么操作的。
而这几份,都是非常友好的 json 格式的文件,那看起来能搞。
我想直接解锁游戏中的所有角色,那我就尝试读一下存档文件,可以发现 save_file_settings.save 这个文件中有相关的描述,显示 farmer 啥的,那估计就是这个文件。
接下来,备份这个文件,对游戏做出一定修改,譬如说通关一个角色。这时候存档就会发生一定变化,我们将这两份文件作对比。
这里可以使用多种软件,文本编辑器自带的也可以, byound compare 也行,git diff 也可以,找到发生改变的行,这样我们就知道了存档存储的方式。(这里模拟了一下,之前的存档被我删了)

也就是说,只要把 0.0 更改为 1.0 就可以解锁了,那么剩下的就是批量替换了。
这是需要玩家手动修改的存档,那像是一些已经有成熟修改方案的存档,像是RPGmaker的存档可以自行尝试(别问mtool,那个是运行时的调试器,不是存档修改器)。
