(本章写作时作者使用的是基岩版1.17.0版本和Java1.17.1版本)
(本章内容有可能有些难,推荐在游玩Minecraft的情况下阅读本章)
(本章于2022年7月10日进行大规模修改)
在你不知道指令的时候,你是否在玩地图的时候看到过一个五彩斑斓的方块?当你因好奇尝试去撸它的时候,你却发现:这根本撸不动!
没错,这就是我们的命令方块,英文名Command Block,命名空间ID为mand_block,在MC指令圈中常常被简写成CB。你可以通过/give指令来获得它,比如:
/give @s mand_block
目前你不需要去了解这个指令到底是啥,怎么用,看下去就完事了。
如果你在输入了以上指令以后都没有获得,那么你最好去检查一下你的Minecraft游戏版本。你可以尝试使用命令方块的数字id:137。(/give 你的玩家名 137)
如果还是不行,请你看一下你的Minecraft版本是否低于JAVA1.4.2或者是携带版1.0.5。低于这两个版本的Minecraft是没有命令方块的。
命令方块有三种颜色,六种方向,具体为:
颜色:橙得一批、青得一批、紫得一批
方向:东西南北上下
命令方块的硬度和基岩是一样的,都是-1。
爆炸抗性也一模一样,都是。
命令方块的三种颜色,各代表着3种不同的种类:
橙得一批的那个是脉冲,作用是你叫它动一下(接入红石信号),它就动一下(执行一次命令),并会向其指向的链命令方块发出执行信号。
紫得一批的那个是重复,作用是你叫它动一下(接入红石信号),它就没完没了地动(每一游戏刻执行一次命令,一般1游戏刻=1/20秒),并且每动一下都会向其指向的链命令方块发出执行信号。
青得一批的那个是链(又叫做连锁),作用是你叫它动一下(接入红石信号),它不会动。它只会在收到执行信号时,将该执行信号立马传递给下一个它指向的链命令方块,然后再根据当前条件判断是否要执行。听起来似乎有点复杂?举个例子:
A→B→C→D→
其中,A是未被激活的脉冲命令块,BCD三个命令方块都是已被激活且无条件限制的链命令块。当A激活时,ABCD将会同时执行指令,因为A激活时向B发出了执行信号,B收到后也向C发出了信号,C也向D发出了信号,三个链命令方块也都没有条件限制。(关于无条件是个什么东西,下面会讲到)
关于链命令方块还是比较复杂的,具体内容请到『第九十九章初识模块-简单的注册/登录系统下』了解。
而方向的话,有什么用呢?
上面我们讲连锁命令方块时已经遇到过一次了:当你将一个未被激活的脉冲或循环命令方块(A)指向另一个已被激活的连锁命令方块(B),那么当A被激活时,就会向B发出执行信号。(注意,B以及之后的CDE等一般都是连锁,作为开头的A一般是脉冲或循环命令方块)
就像下面这样(箭头即该命令方块的朝向,符号?代表此命令方块被激活,符号?代表此命令方块收到执行信号):
①A→B?→
②A?→B?→
③A?→B??→
但B并不一定会执行,还得看这个B是有条件(条件制约)还是无条件(不受制约)的。
另外,只要这一串命令方块一直延伸下去,且除了第一个之外后面全都是链命令方块,那么不管这些链命令方块有没有被激活、是否会真的执行指令、指令有无错误,信号仍然会一直传递下去,直到默认指定的最大值。
我们会在以后讨论更加复杂的情况,也就是在第九十九章进行讨论。在此之前,你可以自己做做实验,猜猜规律。
需要注意,虽然通常情况下像这样一个接着一个的命令方块链是摆成一条直线的样子,但你也可以像下面这样摆成蛇形:
B←A
↓
C→D→
这也是没有问题的。