本帖最后由 PotatoMaster101 于 2014-4-23 16:37 编辑

大家好,今天教大家如何用指令方块刷出带有自定义物品的箱子。这个的用处是可以放到冒险地图里。箱子里的物品越多,指令就会越长。这个是MC1.7或以上版本才能用的。做这个有两种办法:用/summon或/setblock做。/setblock的较简单。



OK,首先教大家用/setblock的做。第一步是如何刷出一个空箱子。指令是:
  1. /setblock ~ ~1 ~ minecraft:chest 0 replace
复制代码
这条指令可以打到指令方块里,激活后会在指令方块的顶上刷一个空箱子。讲解下/setblock指令:
setblock是1.7的新指令,用处是在一个地方放置一个方块。指令里的 ~ ~1 ~ 就是坐标。如果坐标前面加了个 ~ 的话,就代表为指令方块为中心。所以我这里打 ~ ~1 ~ ,就代表在指令方块的y+1的地方放一个箱子。大家看到X和Z的地方都是~,也就是代表 X和Z没有漂移,所以只会在指令方块的上面刷出。另一种方法是 ~0 ~1 ~0。之后minecraft:chest就是箱子的ID了。我这里打的是名字,大家可以打数字ID,比如54。再后面的0就是方块信息了。由于是刷出的普通的箱子,所以没有信息,就写成0。这个的用处是在刷不同颜色的羊毛,各个颜色的羊毛都有单独的信息。之后是replace,就是把指令方块上面的方块替换成一个空箱子。这个也是旧房块处理,分别有:

replace:替换
destroy:删除前面的方块,换成新的方块
keep:和replace差不多

本人大多数还是用replace,比较简单。

OK,下面教大家如何刷出带有自定义物品的箱子,因为刷出个空箱子没任何意义。这里就要用到NBT了。自定义物品的NBT是 {Items}。指令是:
  1. setblock ~ ~1 ~ minecraft:chest 0 replace
  2. {Items:[{id:264,Slot:0,Count:5}]}
复制代码
大家看到,第一行还是和刚才的/setblock一样。第二行出了点新的东西。来说下第二行:

Items:一个NBT,告诉指令方块这个箱子里需要有自定义物品。要自定义物品的话一定要打
id:自定义物品的ID,用数字ID就可以了。箱子里想要什么就打什么的ID。
Slot:这个是自定义物品在箱子里放置的位置。0就是第一格,1就是第二格,以此类推。
Count:每个物品的数量。这个可以随便填写。要一个物品就打1

之后大家看到这些ID,Slot,Count都是在同一个括号里的,这说明这些信息都是在同一个物品上起效。所以如果把这条指令打进指令方块 (setblock ~ ~1 ~ minecraft:chest 0 replace {Items:[{id:264,Slot:0,Count:5}]}),激活后会刷出一个箱子,打开后箱子里的第一格会刷出5个钻石。

有些玩家会问如何刷出多个物品,这很简单,直接把多个物品用括号分开就可以了,例子:
  1. /setblock ~ ~1 ~ minecraft:chest 0 replace
  2. {Items:[{id:364,Count:5,Slot:0},
  3. {id:311,Slot:1,Count:1},
  4. {id:95,Count:64,Slot:2,Damage:5}]}
复制代码
这条指令用处就是在一个箱子里刷:5块牛排,一个钻石装备和64个绿色玻璃。大家看到在指令的最后一行会出现一个新的NBT:Damage。这个就像前面说的方块信息一样。由于玻璃有很多颜色,但是ID都是一样的。他们唯一不同的就是信息。所以Damage:5的话,就是ID=玻璃,信息=5,也就是一个绿色玻璃。这个可以随便调,比如Damage:7就是一个灰色玻璃。



接下来教大家如何用 /summon 来做自定义物品箱子。这个比/setblock复杂点,因为/summon的用处是刷生物,而不是直接的刷方块。如果要刷方块的话,要多加几个NBT。首先教大家如何刷出个空箱子:
  1. summon FallingSand ~ ~1 ~
  2. {Time:1,Tile:54}
复制代码
指令方块里打进这条指令后会在正上方刷一个空箱子。来讲解下指令:/summon就是一个新的指令,用来刷生物。后面的 FallingSand 就是刷出一个掉落沙,掉落沙就是沙子掉落时候的状态。只有用掉落沙才可以让/summon刷出一个方块。之后的~ ~1 ~就是坐标,前面说过了。第二行有2个NBT:分别是Time和Tile,用处是:

Tile:刷出掉落沙的ID,比如箱子就是54,打57的话会刷出一个掉落沙钻石块
Time:掉落沙的时间。掉落沙一定要有时间,没的话刷出来的掉落沙会瞬间被系统刷没。最起码1

OK,之后指令方块会在头顶上刷出一个掉落沙的箱子。因为时间调成了1,掉落沙着落后就变成了箱子。如果不打时间(Time)的话掉落沙一刷出就会被系统刷没。

之后来教大家如何在箱子里刷物品,用/summon。指令是:
  1. /summon FallingSand ~ ~1 ~
  2. {Tile:54,Time:1,TileEntityData:{Items:[{id:264,Slot:1,Count:5}]}}
复制代码
大家看到,这条指令里的一部分和前面的/setblock完全一样。也就是 {Items},但是Items这个NBT前面又加了一个NBT:TileEntityData,这个就是掉落沙数据。因为掉落沙刚刷出的时候,还并不是一种方块,就像点燃的TNT一样。所以要加TileEntityData,也就是给掉落沙信息,掉落后会释放出信息,也就是箱子里出现了自定义物品。打完这条指令后效果会和前面的一样,箱子里第一格有5个钻石。如果要加多个物品的话,那和前面的完全一样。例子:
  1. /summon FallingSand ~ ~1 ~
  2. {Tile:54,Time:1,TileEntityData:{Items:
  3. [{id:57,Slot:1,Count:64},
  4. {id:159,Slot:0,Count:32,Damage:15},
  5. {id:276,Slot:2,Count:1}]}}
复制代码
这条指令会刷出一个箱子,里面有:32个黑粘土,64个钻石块和一把钻石剑。NBT也和之前的一样,我就不多说了。之后就差不多完工了。如果要再加东西的话也很简单,多加几个括号和逗号就好了。但是要注意的是打NBT时,方括号和弯括号一定要打对,而且都要平衡掉。所以开几个括号就要关闭几个括号,否则指令方块会出错。

======================END=======================