跳过正文

艾尔登法环通过修改游戏存档 16 进制值来修改游戏数据

·1357 字·3 分钟· loading ·
技术教程 游戏 存档修改
褐瞳さん
作者
褐瞳さん
Everyone is mania in general
目录

前因
#

之前写过一个艾尔登法环的无缝联机 MOD 工具,可以快捷转换在线版和 MOD 版存档,还可以修改一些 MOD 的设定。后来有一个小伙伴发邮件寻问我是否可以在软件中添加一个功能:因为 MOD 物品在在线版中算作弊物品,所以想在 MOD 版转为在线版存档时通过直接修改存档数据删除其中的 MOD 物品,从而实现可以无缝转换存档。

HeTongRe4per/EldenRingSeamlessCoopTool

一个艾尔登法环无缝联机Mod工具

C#
4
0

因此我在网上搜索了一下一些资料,找到了一些项目有类似的功能,知道了例如查物品数据和修改的大概实现方式。但是在互联网上没有什么人详细写过,所以想写这篇希望能帮到人。

准备
#

只适用于单机游戏,请不要在线上游戏中尝试作弊。

如果你能找到这篇文章我就默认你是有一定基本知识了,例如 16 进制是什么,你想要修改的物品 ID 是多少等等。

需要准备的工具和文件:

  • Hex 修改工具,例如常用的 HxD 或者 VS Code 搭配 Hex Editor 插件(十分推荐使用 HxD)
  • 游戏存档
  • 游戏存档备份(最好进行一下备份,防止修改后出现问题无法逆转)
  • 一份物品 ID 表(你需要知道你修改的物品的 ID 是多少)

本文将以埃尔登法环的存档作为示例,使用到的修改器是 HxD。

确定物品 ID
#

首先找到物品的 ID,例如我需要修改的是 MOD 添加的物品,它们本来不属于游戏内容,所以我在 MOD 的 FAQ 中找到了 MOD 添加的几个物品的 ID。

物品 ID

我这里 MOD 作者物品的 ID 给的是 10 进制,需要将其转为 16 进制备用。

物品名称10 进制 ID16 进制 ID
袖珍大壶83800017FDE61
玛莲妮亚雕像83800027FDE62
挑战者之针83800037FDE63
离别迷雾83800047FDE64
判官的法典83800057FDE65
卢恩之酒83800067FDE66

使用编辑器寻找物品
#

上一步我们已经知道了物品的 16 进制 ID,现在需要在存档中找到物品对应的位置。

在这里我们需要知道一个小常识,一般的游戏存档为了方便计算机的读取、编辑和兼容性,存档多以小端序存储,所以我们拿到的 16 进制 ID 并不能直接使用,需要按小端序排列。例如袖珍大壶的 ID 7FDE61,在搜索时应该搜索61DE7F

搜索位置

现在我们搜索到了4 个有袖珍大壶 ID 的位置,分别在112191604D16A15218F1处。一个小知识:艾尔登法环人物数据包括人物的背包数据是存储在310 - 28030F这一段中的,其他位置请不要随意修改。

那么我这里这 4 个数据都是有效的。那就继续下一步。

开始修改
#

接下来我们又需要知道一个小知识,艾尔登法环的物品 ID 后面会有一位添加一个随机值为间隔,后面就为物品数量。

示例:

示例-1

所以如果想要修改物品数量那么直接修改从 ID 往后数两位的位置的值就行。但是我需要删除这些物品,那么直接将这一部分,即61 DE 7F B0 01这一部分全部置零即可。

修改校验和
#

继续一个小知识:艾尔登法环会将人物的数据整合计算一个 MD5 值,并存放在300 - 30F这一段。

所以我们需要将修改后的310 - 28030F这一段数据计算并修改 MD5。

  1. Ctrl + E,起始位置和终止位置分别输入31028030F

选择数据范围

  1. 在顶部菜单栏选择「分析」->「检验和」

选择菜单

  1. 可用算法翻到最下面,选择「MD-5」

选择MD5

  1. 从底部「校验和」中右键复制 MD5 校验和

  2. Ctrl + E,起始位置和终止位置分别输入30030F,确认后右键选择「覆盖式粘贴」

粘贴校验和

进入游戏验证
#

最后进入存档文件夹,删除所有存档(记得先备份)。将我们修改好的存档放进去,发现 MOD 物品消失了!(这里删的时候漏了一个)

修改前
修改前

修改后
修改后

参考与鸣谢
#


本文作者: 褐瞳さん
本文链接: https://hetong-re4per.com/posts/how-to-modify-game-data-by-modifying-game-save-hex/
版权声明: 本文文字在未特别注明下默认使用 CC BY-NC-SA 4.0 许可协议。

相关文章

为 OrangePi 编译属于自己的 OpenWrt
·1339 字·3 分钟· loading
技术教程 OpenWrt OrangePi 开发板
使用 Github Action + Hugo 实现推送仓库自动生成静态文件并推送到 Page 仓库
·2927 字·6 分钟· loading
技术教程 Github Page Github OpenWrt
使用 Docker + Koishi 搭建一个属于自己的聊天机器人
·2425 字·5 分钟· loading
技术教程 QQ 机器人 Docker Koishi