某些方块会在一些情况下表现的和实体一样。比如熔炉燃烧、刷怪笼运转等等。这些和那些装饰方块不同。装饰方块只有一种状态,而这些特殊的方块则拥有自己的实体附加nbt。基本格式为
- give 玩家名 物品名称 物品数量 损伤值 实体附加nbt
BlockEntityTag:
使用give系列必加的数据标签。因为setblock不需要加这个,许多人误认为give也是直接使用nbt导致没有做到玩家想要的效果。简单来说,如果没有这个数据标签,那么给玩家的物品不会带有玩家指定的nbt(指定的效果)。基本格式为{BlockEntityTag:{实体附加nbt}}。要注意后面要多加一个括号,否则不成立。比如
- give @a command_block 1 0 {BlockEntityTag:{Command:kill @a}}
- setblock ~ ~1 ~ command_block 0 1 {Command:tellraw @a {text:"123456",color:red}
Command:此nbt用于区分命令方块里的命令。这个nbt用处比较大,因为它可以使给予/放置的命令方块带有玩家指定的命令。在实体附加nbt处填写"Command:命令内容"即可指定特殊的nbt。所以使用这个nbt,玩家不需要再费劲心思去跑到指定地点再自己很费劲地设置命令了。一定要注意give系列的指令要加上BlockEntityTag,这里有很多人误解为这个指令在give里就是无效的(也可以直接blockdata命令方块里的内容来做到这种效果)。
SuccessCount:此nbt用于区分命令方块输出的状态。当命令方块执行一些特殊的探测系列命令时(execute,testfor等等),命令方块会输出命令。
而这个nbt正是用于弄出直接有输出的命令方块。在实体附加nbt处填写"SuccessCount:1"即可给予/放置有输出信号的命令方块(其实填写1以上的数字都可以输出命令)(
TrackOutput:此nbt用于区分命令方块右下角按钮的情况。如下图↓,按下这个按钮后会变为X,再按还会变为O。
这项nbt比较特殊,无法直接更改。当玩家将这个改为"O"的时候(O:每当激活一次指令之后,无论是正确的、错误的、还是未知的,输出效果都会在"上一个输出"这个框里保留,直到下一次输出或者更改命令方块),这项nbt会变为TrackOutput:1,反之改为"X"(X:变为X时,这里会一直变为"-",不会再提示。效果和O相反)时,这里会变为TrackOutput:0。即使无法直接使用,但是依然是存在这项nbt的。(比如:用blockdata想改变TrackOutput时,使用后即使显示的是TrackOutput:0,实质上并没有改变)
LastOutput:此nbt用于区分命令方块里在"上一个输出"里输出的内容。和TrackOutput一样,无法直接改变这个nbt。比如输出情况为"方块已放置",那么LastOutput这个nbt内容则会变为"方块已放置"(LastOutput:方块已放置)。无论是否关掉gamerule的信号输出提示,只要不把TrackOutput关了,这个nbt都会随着玩家的操作而自动改变。
箱子:
Items:之前粗略的讲了一下这个nbt。这个nbt用于区分箱子自带的物品(性质和带Command的命令方块相同,放置/给予玩家的就是有物品的)。基本格式为在实体附加nbt处填写{Items:[{Items数据标签}]}。Items的数据标签有id、Count、Damage、Slot、tag几种。
id:用于区分箱子物品的种类。一般填写"id:物品名称"。物品名称填写物品的编号/英文名称。
Count:用于区分箱子物品的数量,最多64。一般填写"Count:xxx"。
Damage:用于区分箱子物品种类的损伤值。一般填写"Damge:xxx"。
Slot:用于区分箱子物品所在的格数。比如填写0b,物品就会出现在第一格。共27格,也就是0-26。一般填写"Slot:xxxb"(填写b比较稳定,个别时候不填写可能使给予/放置的箱子不太正常或者无法给予/放置)。
tag:用于区分箱子物品的其他关于物品自身的nbt。这一点以后编写物品nbt时会讲到。比如ench,Lore等等。一般填写"tag:{物品数据标签}"。比如tag:{ench:{id:46,lvl:5}}。使用此数据标签一定要注意括号的数量。
举个例子,比如
- setblock ~ ~1 ~ chest 0 1 {Items:[{id:stone,Count:1,Damage:1s,Slot:0b,tag:{ench:[{id:16,lvl:1}]}}]}
漏斗:
TransferCooldown:此nbt用于区分漏斗运输物品的时间。这似乎也是一个无法直接改变的nbt。当漏斗收到了红石信号之后,这项nbt会数值会变为0,也就是TransferCooldown:0,即使漏斗下有容器依然不会继续运输物品。
Items:此nbt用于区分漏斗里的物品。和箱子的用法一样。不同的是,漏斗只有五格,所以只能填写0-4。
熔炉:
CookTime:此nbt用于区分熔炉需要冶炼的物品已经被冶炼的时间。在实体附加nbt出填写CookTime:xxx即可改变熔炉物品被冶炼的时间。这个nbt可以用作缩短被冶炼的时间。xxx处填写数字,比如填写40就是2秒(游戏刻)。如果直接放置的话需要和Items联用才有效。只是有一定的范围,超过200的话就会变成这个样子
也就是说,CookTime会改变这个箭头的进度。
BurnTime:此nbt用于区分熔炉燃料燃尽剩下的时间。需注意是正在燃烧的燃料,不是放进去就会燃烧的时间。在实体附加nbt处填写BurnTime:xxx即可改变燃料燃尽剩下的时间。这个nbt也可以用作增加熔炉燃料燃烧的时间。xxx处填写数字,比如填写100就是5秒(游戏刻)。如果直接放置的话需要和Items联用才会有效果。举个例子,比如
- setblock ~ ~1 ~ furnace 0 1 {BurnTime:10000,Items:[{id:coal,Count:1b,Slot:1b},{id:coal_ore,Count:1b,Slot:0b}]}
小bug:很可能熔炉不会再有烧东西的信号。
CookTimeTotal:此nbt用于区分熔炉物品烧东西完毕的时间。这个nbt无法直接改变。比如一个铁矿石熔炼成一个铁锭大约需要8秒的时间,那么如果熔炼一个铁锭那么这个nbt就会自动改为大约是CookTimeTotal:160。
Items:此nbt用于区分熔炉的物品。用法和箱子一样,但熔炉只有三格,所以范围为0-2。熔炉的其他nbt需要和这个nbt来配合(blockdata除外,可以直接改变现有的状态)。
酿造台:
BrewTime:此nbt用于区分酿造台已经酿造的时间(就像熔炉的CookTime)。在实体附加nbt处填写BrewTime:xxx即可弄出已经酿造出一段时间酿造台。如果用give,setblock类似的指令的话必须要和Items配合。xxx处填写数字,也就是游戏刻。它会改变箭头的进度。
Items:此nbt用于区分酿造台的物品种类。和箱子用法相同。由于只有4个格所以范围为0-3。
信标:
信标请看http://www.mcbbs.net/thread-443530-1-1.html
发射器:
Items:此nbt用于区分发射器里物品的种类。用法和箱子的Items相同(格数相同)。
投掷器:
Items:此nbt用于区分投掷器里物品的种类。用法和箱子Items相同。
音符盒:
note:此nbt用于区分音符盒的音调大小。使用这个nbt放置/给予的音符盒可以随意调整高低,而并不是最初时最低的音调。在物品nbt处填写note:xxx即可。xxx处填写数字,范围为0-24(填写24包括以上都是最高音调,填写0是最低音调)。举个例子,比如
- setblock ~ ~ ~ noteblock 0 1 {note:10}
出自索引:http://www.mcbbs.net/thread-440268-1-1.html