第37章testforblock、testforblocks-探测下

我们现在学会了如何探测实体,那方块呢?

使用/testfo

lock和/testfo

locks。

这两个指令只相差1个字母,但是功能却大径相庭。在英文中,blocks是blk的复数。也就是说,/testfo

lock是探测单个方块,而/testfo

lock是探测多个方块。

真有这么简单吗?

/testfo

lock

作用:探测指定位置是否为某种方块。

需要权限等级:Java-2,基岩-1

需要作弊:是

格式:

基岩版

/testfo

lock 探测位置:坐标方块ID:字符串[数据值:整数

之前

/testfo

lock 探测位置:坐标方块ID:字符串[数据值:整数

/testfo

lock 探测位置:坐标方块ID:字符串[方块状态

很不幸的是,虽然Java版和基岩版都有加入这条指令,但是Java版中这条指令在版本的第三个快照时被移除了。所以说:

/testfo

lock in Java

生于版本13w37a

死于版本17w45a

算了,正经点。

举个例子,比如:

/execute atestfor -1minecraft:redstone_block

就是探测每个玩家其脚底下是否是红石块,是则成功,否则失败。

然后是/testfo

locks。刚才说过这里多了s,也就是多个方块,那么是怎么探测的呢?

先来个介绍:

/testfo

locks

作用:探测指定区域是否与另外一个指定区域完全相同

需要权限等级:Java-2,基岩-1

需要作弊:是

格式:

/testfo

locks 源区域起始坐标源区域终止坐标比较区域下西北角坐标[模式:masked|all

比较时先通过/fill选择区域的方式确定源区域,再与要比较区域进行比较。只不过这个要比较区域的位置填写就挺蛋疼:你得找到要比较区域的下西北角(专业术语叫做区域基点)。

哪里是下西北角呢?

区域内XYZ三个值最小的地方。

这两个区域的大小由第一个定,所以比较的区域就直接给一个角了。

以后的/clone指令(复制指令)也是这种形式。

举个例子:

/testfo

locks -1 -1 -1 1 -1 1 -1 2 -1

作用是:检测执行者脚下3x3的区域是否和头顶3x3的区域完全一样

/testfo

locks还有两个比较模式:

all和masked。

all(默认模式)——比较全部。

masked——忽略源区域的空气方块(即源区域的空气方块可以代替要比较区域的任何方块)

这两章所讲的3条指令,要发挥全部作用就需要和红石比较器配合,不只是单单的用命令方块执行哦!

历史

Java

——加入了/testfo

lock

1.8——加入了/testfo

locks

——/testfo

lock支持方块状态

——因为execute if的出现,/testfo

lock和/testfo

locks被移除。

携带版Alpha

——加入了/testfo

lock和/testfo

locks

上一章目录+书架下一章