
CNS 存档文件 JSON 转换器
此工具可将CNS存档文件转换为JSON格式,并支持反向转换。
查看大图CNS存档JSON转换器
介绍
CNS - Custom Nanosuit System 把我的存档弄坏了。我眼看就要失去花费好几天时间精心打造的几百套服装存档……或者……我做了这个工具来修复这一切。这个工具可以在CNS存档与JSON格式之间双向转换,让你可以使用任何文本编辑器安全地检查和编辑存档数据。
源代码已发布在我的Github上。
关于损坏的CNS文件以及我如何修复它
在某个时刻,使用CNS更换服装时,视觉上看似正常工作,但CNS内部数据并未更新。在这种情况下,保存预置文件只会写入旧的固定服装,加载存档后会恢复旧的外观。这意味着CNS存档文件(DekCNS.sav)已经损坏,并且无法在游戏内修复。
我将损坏的存档和一个完好的初始存档都转换为JSON,然后逐步替换损坏存档中的顶级属性。我最终发现,删除AutoLoadCNS和CamPosition属性后,CNS就能够正常保存了。与预置文件相比,这两个属性无关紧要。我仍然不明白为什么这样做有效,但既然有效,我就在这个工具中实现了修复功能。如果你遇到同样的问题,可以尝试在你的存档文件上使用命令行程序的fix命令。当然,它可能并非在所有情况下都有效,所以请分享任何失败的案例。
⚠️ 注意
本工具完全基于对CNS存档文件格式的逆向工程。我无法访问CNS设计文档,因此此实现可能不完整。请自行承担使用风险。保存文件后,请立即在游戏中验证。在覆盖任何现有存档前,此工具会自动在存档文件旁边的backup文件夹中创建备份。
安装方式
我提供了独立的命令行程序和Mod Organizer插件版本。对于独立程序,下载压缩包并解压到常规目录中。对于Mod Organizer插件,将其解压到Mod Organizer的plugins\目录下。
使用方式
- 独立程序
命令格式:
CNSSaveConverter [-h] [-i INDENT] [-v] {tojson,fromjson,fix} input output
参数说明:
positional arguments:
{tojson,fromjson,fix}
要执行的命令
input 输入文件路径
output 输出文件路径(fix命令不需要) (默认: None)
options:
-h, --help 显示此帮助信息并退出
-i INDENT, --indent INDENT
JSON缩进级别(仅tojson) (默认: 2)
-v, --version 显示程序版本号并退出
- Mod Organizer插件
在工具栏的插件下点击CNS存档JSON转换器。插件将依次打开对话框,让你选择输入文件和输出文件路径。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。