在我的世界中,我们可以通过控制台来获得任意物品,但通常这样玩就会兴趣大减,因此玩家们想出了利用NPC村民来获得物品。我们可以用 /summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:9999,buy:{id:"1",Count:4},sell:{id:"80",Count:2}}]}}创建4个石头(id:1)交换2个雪块(id:80)、交易次数为9999次的村民。
制作生存地图时,很多时候都要自定义村民的交易,自定义村民交易有两种方式:一是使用NPCmod,这里这种方式不做详细介绍;二是使用,summon,就是这一节要讲到的内容。
在自定义村民交易之前,我们先要了解一下村民的职业。在Minecraft1.12版本中有6种村民的职业。见下面来自minecraftwiki的图。
用summon指令可以来设置村民的职业,格式为Profession:,后面加职业类型的ID,就是从左往右的第3列。
例10:/summon Villager ~ ~1 ~ {Profession:5}
在命令执行者上方1格的位置召唤一只职业为傻子的村民。
其实村民的职业和自定义村民交易没有任何关系,村民的职业对自定义村民交易没有任何影响。
自定义村民交易的格式为:
Offers:{Recipes:[{maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}}]}
maxUses后面填交易次数,通常做生存地图时,会把交易次数设成9999,这样就接近无数次了,id后面填物品的英文或编号,Count和以前一样后面填写物品的数量。
下面要着重讲一下buy和sell的问题,buy的意思是买,sell的意思是卖。买和卖都是以村民为中心的。buy可以理解为村民要收购的东西,而sell可以理解为村民要出售的东西。
例11:/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:9999,buy:{id:"1",Count:4},sell:{id:"80",Count:2}}]}}
作用:在命令执行者上方1格的位置召唤一只可以用4个石头(id:1)交换2个雪块(id:80)、交易次数为9999次的村民。
次的村民。
注:如果没有对村民设置职业的话,那么村民的职业ID默认为0。
如果放置村民收购物品的框有2个,也就是说村民收购的物品可以不止一个,这样的话可以用
buy:{id:"",Count: },buyB:{id:" ",Count:}来表示。
例12:/summon Villager ~ ~1 ~ {Offers:{Recipes:[{maxUses:9999,buy:{id:"1",Count:1},buyB:{id:"3",Count:1},sell:{id:"35",Count:2,Damage:3}}]}}
作用:在命令执行者上方1格的位置召唤一只可以用1个石头(id:1)和1个泥土(id:3)交换2个淡蓝色羊毛(id:35,子编号为3)。
可以发现,羊毛的id都是35,而羊毛有不同颜色,所以就需要子编号,子编号在指令中用,Damage表示。右上的图可以发现羊毛的编号是35,子编号是3。
一个村民也可以设置多个交易,只需两个交易之间用逗号隔开就行了,如:{maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}, {maxUses:,buy:{id:"",Count:},sell:{id:"",Count:}
例13:/summon Villager ~ ~1 ~{Offers:{Recipes:[{maxUses:9999,buy:{id:"265",Count:4},sell:{id:"276",Count:1}},{maxUses:9999,buy:{id:"266",Count:5},sell:{id:"313",Count:1}}]}}
作用:在命令执行者上方1个的位置召唤一只可以用4个铁锭交换1把钻石剑、交易次数9999次,也可以用5个金锭交换1个钻石靴子、交易次数9999次的村民。