
*所有内容均为原创内容,未经允许禁止转载或摘编
村民商店
首先,这期的内容不难,相信我。这期的命令你要把它有条理、有层次的理解。
还记得在05期我们用 /summon 召唤了一个掉落物(钻石剑)吗?我们为它加上了数据标签细化了钻石剑的附魔、属性和说明文字。这期的命令和那期的结构一样,只是将召唤的东西从掉落物换成村民,一个有数据标签的村民!
首先是召唤命令的格式: /summon <实体名> [x] [y] [z] [数据标签] 。
实体名我们写村民的名字: Villager 。
[x] [y] [z] ;召唤出来的位置。可用波浪号指定基于命令执行坐标的相对坐标。
[数据标签] ;哈哈 ^_^ 这期的数据标签会很多的 ~~

实例
先把这期实例的命令贴出来:
/summon Villager ~ ~1 ~ {Profession: 0,Career: 1,CustomName: "胡萝卜",CustomNameVisible:1,CareerLevel:42,CanPickUpLoot:0,PersistenceRequired:1,Silent:1,Invulnerable:1,NoAI: 1,Attributes:[{Name:"generic.knockbackResistance",Base:"1f"},{Name:"generic.maxHealth",Base:99999}],Offers:{Recipes:[{buy:{id:"carrot",Count:64},maxUses:9999999,sell:{id:"iron_block",Count:1},rewardExp:false}]}}

执行命令,召唤成功
接下来会根据上面的命令讲村民的数据标签。
/summon Villager ~ ~1 ~,这个就不讲了...
Profession: 0, 村民的材质 ID 。(见下图)
Career: 1, 村民的职业 ID 。(见下图)

材质和职业 ID 表❶
CustomName: "胡萝卜", 该实体的自定义名称。可以不存在这个标签。
CustomNameVisible:1, 值为1 或 0 (true/false) - 如果该实体拥有自定义名称,值为 true 时,无论光标是否指向它,它总是显示在实体的上方;值为 false ,只有光标指向它时名称才会显示。如果实体没有自定义名称,将会显示默认名称。可能不存在这个标签。
CareerLevel:42, 村民交易选项中目前的等级。等级随着一次交易的完成而增长。如果它的值为零,下一次交易的进行会重新生成村民的职业并将它的职业等级(CareereLevel)重设为Lv.1。设置一个比这个职业还要高的值便不会形成新的交易选项。(貌似所有的职业在等级42时都不会刷新交易)
CanPickUpLoot:0, 1或0 (true/false) – true代表生物能捡起物品(穿上捡起的盔甲,使用捡起的武器)。
PersistenceRequired:1, 1或0 (true/false) – true代表生物不会天然地消失。
Silent:1, 1 或 0 (true/false) - 如果为 true,,则该实体不会制造声音。可以不存在这个标签。
Invulnerable:1, 1 或者 0 (true/false) - 如果实体不能被摧毁,则为 true,对实体和非实体都适用。生物不会受到任何来源的伤害(包括药水效果),同时不能被钓鱼竿、攻击、爆炸或弹射物破坏。注意,该实体在创造模式下仍然可以被摧毁。
NoAI: 1, 1或0 (true/false) - 如果为 true,则生物的 AI 将会被关闭。生物将不会移动和试图移动。
Attributes: 实体的属性,下分很多可设置的属性,所以这是一个“表”。表内容要用 [] 括起来。
命令中的属性见下表。每个属性都要用 {} 括起来。表中的属性均可在所有生物中找到,包括玩家实体。

属性表
属性值中的 "0f" ,f 代表 float浮点型(我怀疑是这个意思,不很确定)。
总结一下属性的格式:Attributes:[{Name:"属性名称",Base:"属性值"},{Name:"属性名称",Base:"属性值"}...]
Offers: 自然游戏时在第一次打开交易菜单时产生的(反正就这么写,我解释不出来了)。
Recipes: 交易属性列表。它又是一个表,所以要用 [] 括起来。其中的格式是:Recipes:[{第一个交易项目},{第二个交易项目}...] 。接下来看交易项目的具体设置。
buy:{id:"carrot",Count:64}, 第一个收购项目。括号中可添加的数据标签有:id,Count,Damage(数据值),tag(不懂看第05期)。
maxUses: 代表能进行的最大交易次数。
sell:{id:"iron_block",Count:1}, 出售项目。
rewardExp: 1 或 0 (true/false) - true代表交易会提供经验球。
最后举一个tag标签嵌套进村民商店的例子。
首先是一个我写的货币标签:{display:{Name:"1.00",Lore:["服务器货币"]}}(不懂看05期)
可以嵌套到收购项目或出售项目中。例如sell:{id:"paper",Count:1,tag{display:{Name:"1.00",Lore:["服务器货币","暗冥夜辰"]}}},

tag标签嵌套
浅谈命令方块商店和村民商店在服务器中的作用。
村民商店比较稳定且bug很少。服务器中可以将收购与出售用村民商店的方式建立。让玩家获得一定数量的"货币实体",这样可以鼓励玩家与玩家之间的交易。而大数量的存取或销售利用命令方块商店与记分板的结合制作银行和贵重物品商店。这可以大大减小命令方块的放置、设置、写命令的工作量。也可以杜绝偷钱等恶性事件。一个世界的金融贸易不只是玩家与系统,玩家与玩家的交易、货币的流通更为重要。而一个稳定的金融体系也可以更好的留住玩家!——致各位op们
~~~~~~~神奇的分割线~~~~~~~
注:有想知道的代码或者好的想法可以在评论区写出来,我会考虑优先出教程哒^_^
我写的比较细,零基础的小白们,看到有不懂的地方欢迎在评论区提问。至于大佬们吧...,欢迎批评哦~
我学习的网站(部分内容❶出处):
https://minecraft-zh.gamepedia.com/%E6%9D%91%E6%B0%91
谢谢大家的支持!
各位读者大大们觉得喜欢就点一下推荐,也可以关注我看更多Minecraft中的命令 ^_^~~~
为大家打开命令中的数据标签便于理解
/summon Villager ~1 ~ ~
{一级数据标签
Profession: 0, 农民材质
Career: 1, 农民职业
CustomName: "胡萝卜", 自定义名字叫胡萝卜
CustomNameVisible: 1, 名字总是显示在头顶上
CareerLevel: 42, 村民职业与交易项目不刷新
CanPickUpLoot: 0, 不能捡盔甲穿
PersistenceRequired: 1, 不能被地图刷新刷掉
Silent: 1, 村民静音
Invulnerable: 1, 免伤
NoAI: 1, 不能乱跑
Attributes: [二级属性表
{Name: "generic.knockbackResistance",Base: "1f"}, 不被击退
{Name: "generic.maxHealth",Base: 99999} 最大生命值99999
],
Offers: {二级交易?
Recipes: [三级交易表
{四级第一个交易项目
buy: {五级定义第一个收购项目
id: "carrot", 收购胡萝卜
Count: 64 收购64个
},
maxUses: 9999999, 可交易9999999次
sell: {五级定义出售项目
id: "paper",出售纸
Count: 1,出售1个纸
tag:{display:{Name:"1.00",Lore:["服务器货币","暗冥夜辰"]}} 出售一个特殊的纸
},
rewardExp: false 交易不提供经验
}
]
}
}