⑥Gossips(复合标签列表)和一个交易项目中的demand、specialPrice和priceMultiplier(前两者为Int整形,后者为Float单精度浮点数)
为了在村庄与掠夺更新后也能够使用NBT自定义交易,我们得先来看看村民职业方面的改变。
在1.14版本之前,村民有一级职业(Profession标签决定)和二级职业(Career标签决定)。而在1.14版本更新后,就没有什么一级二级之分,所有职业都有了单独的命名空间ID,如农民就有了minecraft:farmer。并且由于职业不再分一级二级,所以在新版本只有一个标签决定着村民的职业:VillagerData复合标签下的profession标签。
profession标签的值就是该村民的职业ID。截止Java1.19版本,原版村民14个职业的ID分别是:
minecraft:armorer——盔甲匠
minecraft:butcher——屠夫
minecraft:cartographer——制图师
minecraft:cleric——牧师
minecraft:farmer——农民
minecraft:fisherman——渔夫
minecraft:fletcher——制箭师
minecraft:leatherworker——皮匠
minecraft:librarian——图书管理员
minecraft:mason——石匠
minecraft:nitwit——傻子(这也是职业?)
minecraft:shepherd——牧羊人
minecraft:toolsmith——工具匠
minecraft:weaponsmith——武器匠
举个例子,假设我们要生成一个农民,只需要这样子:
/summon villager ~~~{VillagerData:{profession:“minecraft:farmer“}}
然后游戏就会生成一个没有任何职业的村民。等等,怎么不是农民?
因为我们没有指定工作站点。村民由于没有工作站点,所以就变成了无职业的村民。我们会在待会了解到如何解决这个问题。
VillagerData内不仅仅有profession标签用来决定村民职业,还有另外两个比较重要的标签:
level(Int整形)——村民的职业等级,新手为1级,大师为5级。如果设定的等级高于职业的最高等级,村民将不会开放新的交易项目。(没错,这就等同于1.14更新前的CareerLevel标签)
type(字符串)——村民的种类,它指定了这个村民是沙漠村民(minecraft:desert)还是平原村民(minecraft:plains)还是其他类型的村民。
其中的type标签不用管,除非你想要给村民弄点儿不一样的衣服。我们重点看看level标签。举个例子:
/summon villager ~~~{VillagerData:{profession:“minecraft:farmer“,level:5}}
这将会生成一个大师级别的农民。等等,怎么不变回无职业了?
正常情况下,level字段只能由交易改变,也就是说玩家是个关键因素。新版本的村民虽然有『工作站没掉就失业』的性质,但如果游戏发现这个村民好像和其他玩家交易过,就不会让这个村民失业。在这边,由于我们改变了level标签的值,导致游戏认为这个村民已经和玩家交易过了,所以这个村民不会失业。
上面这些也是1.14更新后与自定义交易关系相当大的内容,接下来我们来看看同样也是1.14更新后自定义交易的核心:Offers标签。
Offers标签的内容其实变化并不大,我们在第一百五十四章所讲的内容可以完美适配过来,因此这里就不细讲那些重复的内容。我们就重点来看看1.14更新后,在交易项目中添加的4个新标签:
xp(Int整形)——村民每次交易能从该交易项目中获取的经验值
demand(Int整形)——价格调整因素之一:供需关系
specialPrice(Int整形)——价格调整因素之二:特惠
priceMultiplier(Float单精度浮点数)——价格调整因素之三:价格乘数
xp标签我们就不讲了,做自定义交易干嘛要管村民升级。我们重点来看看后面三个标签,这三个标签十分重要,因为它们关系到一个非常重要的东西:价格
这章没有结束,请点击下一页继续阅读!
喜欢Minecraft指令手册请大家收藏:(m.2yq.org)Minecraft指令手册爱言情更新速度全网最快。