NBTExplorer 是一个给MC写的看NBT的软件,不过实际上也可以读tModLoader的TagCompound,图标是MC的死布什枯死的灌木
你可以在Github下载到这个软件,下载 .msi 后缀的安装包即可
不过实际上更推荐下载汉化版(点我跳转到下载链接)本简介也是在使用汉化版的前提下进行的。下载下来是个 .zip 文件,解压后打开 NBTExplorer (Fixed).exe 即可
tModLoader中包含TagCompound的目前就是 .tplr 和 .twld 文件了,我写了一个简单的ModPlayer类,它会从TagCompound中读取
using Terraria.ModLoader; using Terraria.ModLoader.IO; namespace TagCompoundTest; public class SimplePlayer : ModPlayer { private int _lifeMaxBoost; // 读取 _lifeMaxBoost 数据 public override void LoadData(TagCompound tag) { // 善用 TryGet 方法,避免因为数据不存在而抛出异常 // 使用 nameof 免去你打错字符串的烦恼,但注意不要重命名字段,否则会读取不到之前存下的值(也可以重命名后手动把键值改成旧名字) tag.TryGet(nameof(_lifeMaxBoost), out _lifeMaxBoost); } // 保存 _lifeMaxBoost 数据 public override void SaveData(TagCompound tag) { tag[nameof(_lifeMaxBoost)] = _lifeMaxBoost; } // 应用生命值加成 public override void PostUpdateEquips() { Player.statLifeMax2 = _lifeMaxBoost; Player.statLife = _lifeMaxBoost; } }
接下来编译并重新加载Mod,创建一个新的人物,开始教程
文件结构
首先点击左上角的“打开文件”,并选择你人物的 .tplr 文件
之后你会看到树状的结构图,这就是tModLoader保存的TagCompound的样子
展开所有结构(由于我加载的Mod不多,所以数据很少,可以全部展开),我们一个一个看:
- loadouts: 原版1.4.4可以让你保存三套配装,就是这个
- infoDisplays: 身上带有【手机】时会显示在右边的状态信息,这里是记录了哪些状态信息被玩家隐藏了,不过只记录Mod添加的
- modBuffs: 就是玩家身上带有的Buff,虽然写了“mod”,但实际上原版的Buff也会保存在这里
- modData: 就是各Mod添加的使用ModPlayer保存的信息
- usedMods: 上一次保存该玩家时,玩家开启的Mod
- hair & hairDye: 顾名思义,头发和头发染料信息
实际上,由于这是刚创建的人物,根目录拥有的条目并不多,这里还有一些比较重要的条目,也是tModLoader会保存的
- armor & dye: 盔甲和染料信息
- inventory: 玩家物品栏,和下面的便携储存一样,只保留带GlobalItem信息的物品和Mod物品
- bank1~4: 便携储存,从1到4分别是:猪猪存钱罐、保险箱、护卫熔炉、虚空库
- temporaryItemSlots: 一些为了防止退出后被吞而暂存在文件里的物品,有: 玩家手上的物品、放在旅途模式研究框里的物品、放在向导制作栏的物品、放在哥布林重铸栏的物品
- research: 玩家的旅途模式研究进度信息,只有模组物品的数据
修改数据
还记得上面写的ModPlayer类吗?我们打开它的条目,来修改一下保存的 _lifeMaxBoost
数据
首先,选中 modData
,点击顶栏的“查找”,点击“寻找”
在“值”中写你的ModPlayer类的名字,比如我的是 SimplePlayer
,就填进去,然后点“开始查找”
然后就能找到对应的条目了,点开 data
,把 _lifeMaxBoost
随便改一个值(改之前记得先退回到游戏主界面)
然后Ctrl+S快捷键保存,或按顶栏的保存图标
接下来进入游戏,你会发现…
如此简单就完成了一次修改!在你Mod不小心改错了什么,导致游戏根本打不开人物选择界面的时候,除了直接删除人物存档之外,也可以用NBTExplorer把你Mod的数据删掉
如果你搞崩的数据存在原版plr文件里,NBTExplorer就没法删除了,这时候你可以试试这个在线玩家编辑器
NBTExplorer不仅可以修改数据,还可以删除或增加数据
世界存档
.twld 文件也是可以用NBTExplorer打开的:
保存了原版的物块、图鉴解锁、箱子、城镇NPC、TileEntity等一堆信息,这里就不多赘述了
比如说你可以把 bestiaryKiils
中所有条目的 count
数据改为100,这样现有被记录的模组的图鉴击杀信息就会全部变成100
首先选中 bestiaryKills
,点击查找,选择替换
之后选中左边的 Search Rules,点击“添加整数标签”
要匹配键值为 count
,数值小于100的数据,所以我们这样填:
之后选中右边的 Replacement Tags,也是添加整数标签,名称写回 count
就行
点OK后,双击 count
把值改成100,最后是这样的:
直接点击替换全部,现有的Mod图鉴击杀数据低于100的(我的是灾厄的)就全部变成100了
一些Mod可能用TagCompound保存自己的数据文件(比如更好的体验构造法杖的文件)也可以用NBTExplorer打开
Pingback: ModPlayer-自定义玩家属性 - 裙中世界