介绍
这是一个可以对僵毁游戏存档进行备份的小工具,其基本原理是对僵毁存档中数以万计的小文件做哈希值计算并保存下来,下一次备份时再对存档文件进行哈希值计算,每次备份只对两次计算结果中存在差异的文件进行复制与替换从而忽略掉大部分未更改的存档文件,以此达到减少备份耗时的目的。
2024-04-15更新
现在用C++重新实现了该工具,新增了一些功能,比如自动备份,自定义地图区块备份,仅备份角色文件,对于全文件备份使用线程池处理进一步优化了速度。
使用方式
- 解压压缩包
- 编辑
config.ini
配置文件 - 运行exe文件
详细说明(旧版Python实现)
解压后文件内容如图所示
打开 config.ini
配置文件,其中对每项设置有详细说明,这里不过多赘述。
根据你的实际情况对设置进行修改,然后关闭此文件。
打开控制台进入该工具的目录,使用 ./PZSaver -h
命令查看帮助。可以将该工具添加到环境变量从而在任何路径下访问。
其中 -s
-d
-r
分别对应 保存备份 删除备份 恢复存档 三个功能,这三个开关参数可以忽略,默认执行存档备份操作。-n
参数接收一个字符串,用于临时指定需要操作的存档名称,使用该参数传入存档名称时将忽略配置文件中的设置。
上图所示内容为存档选择提示,当配置文件中没有设置存档名并且没有通过 -n
参数指定存档名时将会出现。选择好存档后进行下一步。
继续,若选择的存档之前没有使用该工具进行过备份,会提示初次备份,初次备份直接将所有文件复制到备份路径,同时计算哈希值并保存,耗时较长请耐心等待。
哈希值计算过程
备份过程 注意备份过程可以继续游戏,但是还是建议退出到主菜单时备份,因为游戏内的存档并不是实时同步到文件中的,只有在退出时会完全同步存档文件,等我总结好存档同步的规律后再修改这里。
备份结束,初次备份用时三分钟。
接下来进行一段时间的游戏,再次进行备份
检测到1074个文件发生变动,新增一个文件,其余96036个文件都没有发生改变,随后工具仅对变动的文件进行了备份替换,此次备份仅耗时34秒。可以说是极大的优化了存档耗时。接下来再玩一段时间相同存档,退出到主菜单,然后进行存档恢复操作。
注意,进行存档恢复时必须先退出游戏到主菜单界面,否则会报错
存档覆盖操作时相较于备份操作会额外进行新文件和缺失文件判断,对于新文件,会直接从存档中删除,对于缺失文件,会从备份中复制到存档文件夹,大部分情况都是会出现新增文件,缺失文件一般只存在与不小心删除某个存档文件的情况,总而言之,只要备份完整,总能恢复。此次恢复操作用时39秒,比手动覆盖快好多倍。
最后演示删除存档备份。使用 ./PZSaver -d
执行删除操作,提示选择需要删除的备份。
选择一个后提示确认
开始删除,删除备份不会对当前游戏存档产生任何影响,除非出现bug。。。,下图为删除过程。
删除耗时39秒,这个和直接删除文件夹的时间差不多。
详细说明(新版C++实现)
解压后文件夹内容如下图所示
config.ini
配置文件
新版本除部分必填项以外其余项可不进行设置,程序运行时会提示进行选择
打开控制台进入该工具的目录,使用 ./PZSaver -h
命令查看帮助。可以将该工具添加到环境变量从而在任何路径下访问。
新版本既可以使用命令行运行,也可以直接双击.exe文件运行
功能选择菜单
选择存档
选择备份模式
任务执行前输出详情
自动备份,超出最大备份数量设置的部分会被删除
所有功能都有提示信息,后面就不过多介绍了
写在结尾
用法就是上面演示的这些了,本来想加个定时自动保存的功能但感觉没必要,希望这个工具能帮到有需要的人吧,有bug的话直接在评论区喷我即可。
== 新版本已同步到分享链接 ==
啊李芸:https://www.alipan.com/s/o42UPStEVSj
柏°匀:https://pan.baidu.com/s/1S5gk15j2-rnYliZO9GQ59A?pwd=neko