欢迎光临散文网 会员登陆 & 注册

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

2018-08-08 20:09 作者:北冥饼鲲  | 我要投稿

数据标签是一段文字序列,描述键值对组成的数据结构。数据标签用于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,目前暂未看到任何的东西,如有大佬路过请评论区解释,看到会置顶的。那我们现在就只管AttributeNameName一样就行了。

            特殊属性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/





北冥饼鲲 | give中的NBT | 指令详解第3期的评论 (共 条)

分享到微博请遵守国家法律