关于Minecraft自定义村民交易
可怜的尧尧
2023年11月05日 15:03
我的世界MC

各大论坛与wiki目前皆有着成熟的指令介绍,这里仅针对村民自定义交易做快捷指令教学。


适用人群:

  • RPG地图制作者,需要用到村民交易换取道具者

  • 生存档中死活刷不出想要的交易且不想再浪费时间者

  • 游玩高版本Minecraft无类似背包编辑器傻瓜式自定义指令者

  • 健忘且需要记录者

测试版本:1.20


首先来看最初级的summon指令:

/summon minecraft:villager

效果:

生成一个无职业村民


众所周知村民可以通过绑定工作方块进行转职:

以图书管理员为例,村民会随机生成两个可交易格子:


我们引入更高一级的指令:

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},xp:1,maxUses:8}]}}

效果:

生成一个图书管理员,交易内容为20个绿宝石换取一本附魔书

指令拆解解释:

{VillagerData:

村民数据,后续的一切自定义内容的大开头

{profession:"librarian",

村民职业为图书管理员

type:"minecraft:plains",level:8},

村民类别为平原且等级为8

Offers:{Recipes:[

村民的交易需求,后续一切自定义交易内容的大开头

{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},

村民“想买”20个绿宝石,同时“想卖”一本附魔书,即一个20个绿宝石换取一本附魔书的交易格子

xp:1,maxUses:8}]}}

交易获得的经验值为1,一次进货最多交易次数为8

可以看到,指令的开头有着 “{” 或 “[” ,而同时指令的结尾有着 “}” 或 “]” ,各自对应。

这些对应的括号决定着指令能否顺利使用,在游戏中直观表现为正确完整的指令输入在指令方块中会呈现绿色,而错误残缺的则是红色。

括号适用对称原则,与数学计算式中的大中小括号相似,有着先后顺序,读者细心观察即可发现其中的规律,加以正确规划即可掌握括号的对应模式。

总体大前括号在指令最后对应总体大后括号,内容中小括号在各自独立内容后对应内容中小括号。

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},xp:1,maxUses:8}]}}

{VillagerData:*************}

即总体大括号

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},xp:1,maxUses:8}]}}

{profession:"librarian",type:"minecraft:plains",level:8}

即内容中小括号

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},xp:1,maxUses:8}]}}

[{buy:{id:"minecraft:emerald",Count:20},sell:{id:"minecraft:enchanted_book",Count:1},xp:1,maxUses:8}]

即另一个内容中小括号,且该 “ [ ] ” 括号涵盖许多 “ { } ” 括号,需注意先后顺序。


下面引入附魔书的自定义编辑:

"minecraft:enchanted_book",Count:1,tag:{StoredEnchantments:[{id:"protection",lvl:4}]}}

可以看到,“tag” 后的格式与村民交易类似,并且以StoredEnchantments指令自定义了保护四的附魔。

加入到村民指令当中则是:

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},buyB:{id:"minecraft:book",Count:1},sell:{id:"minecraft:enchanted_book",Count:1,tag:{StoredEnchantments:[{id:"protection",lvl:4}]}},xp:1,maxUses:8}]}}

效果如下:

细心的读者可以发现:

{buy:{id:"minecraft:emerald",Count:20},buyB:{id:"minecraft:book",Count:1}

相比于上一个指令,多加入了“buyB”,即对于村民增加了一个新的“想买”的物品,可以模拟普通村民的交易格子。

但不同的是只有一行交易。

我们可以再次按照固定格式增加新的交易格子:

/summon minecraft:villager ~ ~ ~ {VillagerData:{profession:"librarian",type:"minecraft:plains",level:8},Offers:{Recipes:[{buy:{id:"minecraft:emerald",Count:20},buyB:{id:"minecraft:book",Count:1},sell:{id:"minecraft:enchanted_book",Count:1,tag:{StoredEnchantments:[{id:"protection",lvl:4}]}},xp:1,maxUses:8},{buy:{id:"minecraft:bookshelf",Count:1},sell:{id:"minecraft:paper",Count:24},xp:1,maxUses:8}]}}

效果如下:

但与自然生成绑定职业的村民不同,指令生成的并无交易经验条:

我们可以通过data替换指令修改已有村民的交易:

/data modify entity @e[type=minecraft:villager,limit=1,sort=nearest] Offers set value {Recipes:[{uses:0,buy:{id:"minecraft:emerald",Count:20},buyB:{id:"minecraft:book",Count:1},sell:{id:"minecraft:enchanted_book",Count:1,tag:{StoredEnchantments:[{id:"protection",lvl:4}]}}},{uses:0,buy:{id:"minecraft:bookshelf",Count:1},sell:{id:"minecraft:paper",Count:24}}]}

效果如下:

这种修改后的村民可以与正常村民一样,通过交易可以升级并提供新的随机的交易格子:


以上,便是关于我目前掌握的较为简洁的村民自定义指令,读者可以按需选择学习使用。

感谢支持!