跳至正文

NBTExplorer 简要介绍

NBTExplorer 是一个给MC写的看NBT的软件,不过实际上也可以读tModLoader的TagCompound,图标是MC的死布什枯死的灌木

你可以在Github下载到这个软件,下载 .msi 后缀的安装包即可

不过实际上更推荐下载汉化版(点我跳转到下载链接)本简介也是在使用汉化版的前提下进行的。下载下来是个 .zip 文件,解压后打开 NBTExplorer (Fixed).exe 即可

是的,这就是从MC Wiki上截下来的

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打开

《NBTExplorer 简要介绍》有1个想法

  1. Pingback: ModPlayer-自定义玩家属性 - 裙中世界

发表回复