北冥饼鲲 | give中的NBT | 指令详解第3期

数据标签是一段文字序列,描述键值对组成的数据结构。数据标签用于Java版的命令中,用于指定玩家、实体和一些方块的较为复杂的数据。
数据标签由零个或以上、用逗号分隔的键值对组成,且用大括号括住。每个键值对包含键名和键值,用冒号分开。但是,有些键值可以继续包含键值对,因此数据标签可以用来描述层次结构。
——Minecraft Wiki
一、什么是NBT(数据标签)
数据标签是一种增强原版物品的方式,可以让单一物品多样化。
数据标签并不是高深的指令,而出现在我们生活当中
比如:耐久值、附魔、名字,这些都是NBT标签。
二、NBT的主要作用
不通过让玩家进行操作,只通过命令方块召唤出有特殊数据的物品或生物。
也可做出游戏中根本无法获得的物品,甚至可以做出炸服的逆天物品。
三、有NBT出现的例子
NBT应该严格按照套层的方式书写,比如这样:
/give @p wooden_sword 1 0 {
display: {
Name: "物品名称",
Lore: [
"Lore1",
"Lore2"
]
},
AttributeModifiers: [
{
AttributeName: "generic.maxHealth",
Name: "generic.maxHealth",
Amount: 20,
Operation: 0,
UUIDMost: 87898,
UUIDLeast: 584624
}
],
HideFlags: 4,
Unbreakable: 1
}
或者这样:
/give @p wooden_sword 1 0 {display:{Name:"物品名称",Lore:["Lore1","Lore2"]},AttributeModifiers:[{AttributeName:"generic.maxHealth",Name:"generic.maxHealth",Amount:20,Operation:0,UUIDMost:87898,UUIDLeast:584624}],HideFlags:4,Unbreakable:1}
毫不夸张的来说,利用DevC++来写NBT是可行的(滑稽)
四、列举give中常出现的NBT
●ench-附魔:ench:[{id:附魔ID,lvl:等级}]
举例:/give @p diamond_sword 1 0 {ench:[{id:16,lvl:1}]}
所有附魔ID详见 minecraft-zh.gamepedia.com/附魔 “数据值”章节

●display-显示:display:{Name:"名称",Lore:["介绍1","介绍2"]}
举例:/give @p diamond_sword 1 0 {display:{Name:"名称",Lore:["介绍1","介绍2"]}}

●AttributeModifiers-特殊属性:{AttributeModifiers:[{AttributeName:"generic.maxHealth",Name:"generic.maxHealth",Amount:数值,Operation:0为整数,1为百分数,UUIDMost:77548,UUIDLeast:598145}]}
这是最特别的一个,因为其中最少uuid和最多uuid是什么意思这边都没太搞懂?Name有什么用也没看懂?网上所有的教程都只是照搬Wiki,目前暂未看到任何的东西,如有大佬路过请评论区解释,看到会置顶的。那我们现在就只管AttributeName和Name一样就行了。
特殊属性ID:generic.maxHealth=最大生命值,generic.followRange=生物跟随距离,generic.knockbackResistance=击退抗性,generic.movementSpeed=移动速度,generic.attackDamage=攻击伤害
举例:(为了方便观赏)
/give @p diamond_sword 1 0 {
AttributeModifiers: [
{
AttributeName: "generic.maxHealth",
Name: "generic.maxHealth",
Amount: 1,
Operation: 0,
UUIDMost: 91207,
UUIDLeast: 75154
},
{
AttributeName: "generic.followRange",
Name: "generic.followRange",
Amount: 32,
Operation: 0,
UUIDMost: 41585,
UUIDLeast: 279854
},
]
}

●Unbreakable-无法破坏:Unbreakable:1为无法损坏,0为正常
举例:/give @p diamond_sword 1 0 {Unbreakable: 1}

注意:无法破坏并不是无限耐久,而是不损耗耐久!
●HideFlags-隐藏标签:HideFlags:数值 (1=ench, 2=Modify,4=Unbreakable,8= CanDestory,16=CanPlaceOn,32=其他,将其求和=隐藏多个标签)
举例:/give @p diamond_sword 1 0 {ench:[{id:16,lvl:1}],HideFlags:1}

●CanDestory/CanPlaceOn-可以破坏/可以放置于:CanPlaceOn:["ID"]

多重NBT:NBT可以连用,格式为{NBT1,NBT2,NBT3[{SON1,SUN2}]},比如说/give @p wooden_sword 1 0 {display:{Name:"物品名称",Lore:["Lore1","Lore2"]},AttributeModifiers:[{AttributeName:"generic.maxHealth",Name:"generic.maxHealth",Amount:20,Operation:0,UUIDMost:87898,UUIDLeast:584624}],HideFlags:4,Unbreakable:1}就是一个很好的栗子。
五、学这个有什么用?
其实这一段得话仔细看,有生命、有速度、有攻击,非常适合在原版RPG内大批量使用(此处一定要@盘灵古域,这是鲲鲲的命令启蒙地图,我基本上把盘灵古域的命令方块拆了个遍);通过外部修改器(比如All-U-Want)能改出与插件无异的任何物品(别问什么暴击、吸血,都能做的);总的来说,在角色扮演/剧情/PVE类地图中,学好NBT,才能掌控世界。
六、学完了这些,我应该怎么应用的呢?
很简单!先按一下推荐,再扔两个硬币,最后点一下收藏和分享,转发给你的好朋友哇! 如果你还想看到指令详解类型的专栏,请记得关注鲲鲲!!
至于如何像个大佬一样玩NBT,请参阅cv906030或者直接前往指令生成网站:http://mc.ahgame.com/tools/