Offers有什么用我们并不知道,似乎去掉这个NBT标签把Recipes拿出来也丝毫没有问题,也不知道Mojang为何要在Recipes外套一个Offers。
单个交易项目有以下NBT标签:
rewardExp(Byte布尔值)——交易成功后是否提供经验球,1为提供,0为不提供。
maxUses(Int整形)——该交易项目能够使用的次数,当交易项目被刷新时会随机增加2~12。
uses(Int整形)——该交易项目已经被使用的次数。如果大于等于maxUses该交易项目将会无法使用。交易项目刷新时maxUses会随机增加,uses就再次小于maxUses,交易项目便重新开启。
buy(复合标签)——该交易项目中村民需要收购的东西,值为物品通用标签。
buyB(复合标签)——该交易项目中村民需要收购的第二个东西,值为物品通用标签。该标签不一定需要。
sell(复合标签)——该交易项目中村民出售的东西,值为物品通用标签。
举个简单的例子:
/summon villager ~~~{CareerLevel:200,Offers:{Recipes:[{rewardExp:1,maxUses:,buy:{Count:1,id:“twilightforest:trophy“,Damage:4},buyB:{Count:10,id:“minecraft:emerald“},sell:{Count:1,id:“minecraft:diamond_sword“,tag:{ench:[{id:16,lvl:10}]}}}]}}
(上面这条指令适用于Java1.13之前的版本)
看起来这个很复杂,但如果你能够把它展开再看就极为简单了。
这条指令将会生成一名CareerLevel为200的村民,他有一个可以使用15万次并且可以提供经验值的交易项目:用1个幻影骑士战利品(暮色森林mod)+10绿宝石换取一把锋利X的钻石剑。
现在你可以尝试自己去自定义一个交易项目。但请注意,最好新建一个txt文件并使用notepad、文本文档之类的程序打开再在里面编写指令(因为这样子可以用换行+tab键以类似于代码的样子编写,极为方便),编写完成后再复制进游戏中执行。不要在游戏内的命令方块、聊天栏内编写,因为这样子很容易出错!
村民的NBT除了上面讲到和交易有关的标签,还有另外三个并不怎么重要的标签:
Riches(Int整形)——直译为“富有的”,游戏内没有使用,会随村民收到绿宝石而上升。
Willing(Byte布尔值)——村民是否愿意繁殖,1为愿意。会在进行一次让交易项目刷新的交易后变为1。
Inventory(列表)——村民的背包,但并没有栏位之分。举个简单的例子:
/summon villager ~~~{Inventory:[{id:“minecraft:emerald“,Count:64}]}
这将会生成一名有64个绿宝石的村民。
村民的背包只有8格,所以如果这个列表内的项目超过了8格,多余的部分将会被清除(除非能够与没有超过的部分堆叠)。
现在,你知道如何自定义村民交易了吧?需要注意,单个村民具有的交易项目最多只能有16项!
喜欢Minecraft指令手册请大家收藏:()Minecraft指令手册更新速度全网最快。