1. 首页 > 游戏攻略二

解决幻兽帕鲁退出公会引发的炸档问题:一份全面的修复攻略 幻兽帕鲁游戏

准备工作:
为了修复Palworld中的坏档问题,你需要准备以下工具和资源:

1. Python 3.1+ 环境
2. 下载并安装palworld-save-tools:https://github.com/cheahjs/palworld-save-tools

停服备份、删除服务端存档中,PalServerPalSavedSaveGames
Players
.sav,标记为old
开服,坏档玩家新建角色,捏脸进入游戏出现角色后退出,得到与上一个sav同名文件,标记为new,停服
其中:
是要处理的服务器id,一般只有一个。

如果你的服务器上有多个存档,在PalServerPalSavedConfigWindowsServerGameUserSettings.ini文件中确定使用的项
.sav是要修复的角色服务端存档,可以通过最后修改时间或新开空白测试服登录来确定。

对于固定的DedicatedServerName和固定的steam17位数字id,只会生成唯一PlayerUId
步骤:
解压palworld-save-tools
使用convert-single-sav-to-json.py将新、旧两个sav转写为json
(不会使用命令行操作的用户,可以将.sav文件拖动到工具自带的convert-single-sav-to-json.cmd处,程序会自动打开该文件并转写,生成的.sav.json将保存在与原.sav文件相同的目录中,后续json转为sav的操作同理)
使用notepad++、vscode等编辑器打开new、old.sav.json
从new.sav.json中搜索并获取下列值,复制并替换到old.sav.json的相同位置中(为方便阅读,省略了部分父项和中间项)

1. OtomoCharacterContainerId-……-Guid(32位16进制id,必须)
2. IndividualId-Struct-……-InstanceId-……-Guid(32位16进制id)
3. Timestamp-……-DateTime(18位数字ID)
4. LastTransform-……-Rotation-……-Quat中的xyzw值
LastTransform-……-Translation-……-Vector中的xyz值

将编辑后的old.sav.json保存为
.sav.json,使用convert-single-json-to-sav.py转写为sav文件
将得到的
.sav放入服务端PalServerPalSavedSaveGames
Players目录中替换原文件
开服,修复完成。


玩家大部分数据不变,背包中5个帕鲁队友和等级会丢失。



【注意】
如果你不是开发者,不要改变json的任何结构,不要增减任何换行、空格,否则可能导致json转写为sav失败
联机档理论上可以通过同样的方式修复,只要你能确定受影响的用户存档文件位置,通常位于%LOCALAPPDATA%PalSavedSaveGames

Players
该工具同样能用于修改存放服务器世界数据的level.sav,通过某种方法应该能达到不用创建新角色也能自动修复坏档id的效果,甚至可以修改包括但不限于玩家id、公会成员、物体位置等信息。

但转写出的json过于巨大,笔者非计算机相关专业人士,对此不能说有所了解,至少也是一窍不通,只好抛砖引玉等待后续大佬进一步研究。



希望这篇教程对你有所帮助!