本篇教程由作者设定使用 CC BY-NC 协议。
新人第一次尝试写教程,可能会有不完备的地方,请多多包涵~
(木偶、竹光、银纸、白鞘依然是单独注册的物品,可直接使用,故不再说明)
拔刀剑重锋的物品NBT格式与之前有所不同,原有参考文献不能完全对应,故编写此教程。
先说方法:一如既往的是,必须要对任务物品进行NBT编辑,具体操作如下
选取物品后,将bladeState这一项中包含的内容进行大裁剪,只需保留translationKey、SpecialEffects、ModelName、SpecialAttackType、TextureName这几项,随后将NBT匹配设为True,模糊匹配同样设为True,这样就能正常区分了。
下面是关于为什么要这样改的详细分析
此处以“枯石大刀”为例进行数据结构的说明,因为该刀的机制较为全面:
(由于原始NBT数据较长故用截图展示)
图1为创造直接拿出来的本体,图2为经过使用后的物品,可以对比观看。注意到物品有两个标签:拔刀剑数据bladeState和附魔数据Enchantments,其中需要编辑的为bladeState。蓝色为建议保留的部分,红色为必须删除的部分。
由于示例直接选择了原版物品,所以只删红色部分也行。但考虑到各种自定义刀和附属包还会增加别的内容,因此依然只建议保留蓝色部分。
具体分析如下:
建议保留,这部分能让刀在任务中呈现正常的物品样式 | translationKey | 物品翻译数据 |
SpecialEffects | 被动特殊效果,如示例刀的“凋零性” | |
ModelName | 物品模型 | |
SpecialAttackType | 特殊攻击,即SA | |
TextureName | 物品贴图 | |
必须删除,这部分内容每把刀都不一样 | lastActionTime | 这把刀上次使用的时间刻,没用过则为0 |
currentCombo | 这把刀当前连段使用的出招 (但由于NBT更新的原因有时变化不及时, 会记录为上一次使用的出招) | |
BladeUniqueId | 这把刀的独特ID,每把刀都不同 (示例中由于都是创造拿的故相同) | |
proudSoul、killCount | 耀魂数、击杀数,会随刀的使用自然增长 | |
maxDamage、RepairCounter | 伤害上限、强化次数,会随刀的强化自然增长 | |
TargetEntity、fallDecreaseRate | 使用中自动产生的数据 |
其余内容(如幻影剑样式SummonedSwordColor、模型位置修正adjustXYZ等)虽然不影响匹配,但在任务显示中也无帮助,出于尽可能简化的缘故一并删除。
补充:实际使用中的一点细节纠正
有些时候即便根据上述步骤更改了NBT数据,也依然不能很好的识别物品,测试后发现这很可能是由附魔数据导致的。
众所周知拔刀剑可用的附魔非常多,集盔甲、剑、弓于一体,不加其他附魔模组的情况下一把刀依然能达到上十个,这或许导致了FTB任务在进行匹配时不能正常运行,结果迟迟无法完成任务。
从技术上解决这个问题不难,将任务物品的附魔数据Enchantments删掉即可,但是这样会导致任务中的物品图标有些“枯燥”:
所以用自定义任务物品图标替代本身的图标:
这样就能取得更加完美的匹配了。