上一章说到/testfor还有两个变种,可以探测方块。这两个指令分别是:/testforblock和/testforblocks。
这两个指令只相差1个字母,但是探测的内容却不一样。这两个单词都比testfor多出了block,也就是方块。
在英文中,blocks是blcok的复数。也就是说,/testforblock是一个方块,而/testforblock是两个方块。
/testforblock
作用:探测一种方块是否在一个位置。
使用权限下限:管理员(OP)
是否可使用命令方块执行:是
格式:
/testforblock <方块位置><方块英文>[数据值]
很不幸的是,虽然Java版和基岩版都有加入这条指令,但是Java版中这条指令在1.13版本的第三个快照时被移除了。所以说:
/testforblock in Java
生于1.7.2版本13w37a
死于1.13版本17w45a
算了,正经点。
要探测首先要知道方块的位置。这条指令只能探测一个方块,但是方块的位置也是必不可少的(好像是一句废话)。
然后也就是方块英文,也就是id。这个填方块就对了。
最后也就是数据值,这个可写可不写。写了,那么就是指定数据值的方块;不写,就是如果是这种方块就行。
然后是/testforblocks。刚才说过这里多了s,也就是两个方块,那么是怎么探测的呢?
先来个介绍:
/testforblocks
作用:(不告诉你)
使用权限下限:管理员(OP)
是否可使用命令方块执行:是
格式:
/testforblocks <作为样式区域起始坐标><作为样式区域终止坐标><要比较的区域的下西北角坐标>[比较模式]
其实,这里多出的s不是指两个方块,而是许多方块。所以,这个是拿一个区域和另一个区域进行比较。
所以,testforblocks的作用就是:比较两个区域的方块是否相同。
作为样式区域也就是比较标准,如果要比较的区域=样式区域,那么就探测成功,使用比较器就可以输出红石信号(一般的指令成功时也会输出,但只有1格强度。除了一些特别的指令,比如说/testfor,输出的是数量)
当然,在比较的时候你得找到要比较区域的下西北角。哪里是下西北角呢?
-x是西方(x值渐渐减少)。
z是北方(z值渐渐增加)
所以,下西北角的方块就是走动时x值渐渐减少,z值渐渐增加并且所到达的地方。
这两个区域的大小由第一个定,所以比较的区域就直接给一个角了。
那么有什么比较模式呢?
all和masked。
all,也就是“全部”的意思,前面有遇到过。也就是说,all的作用就是:比较全部。也就是默认的模式。
masked,在中文里意为“掩饰”“戴着面具的”。这里肯定取前者。所以,masked的作用应该是:掩饰。掩饰什么呢?作标准的区域的空气方块不和比较区域的方块做比较(也就是空气方块可以匹配任何方块),其他都比较。
所以这就是/testforblocks的全部了。