EP.6 运用目标选择器【基岩版指令教程】

同学们好,我是ThePlayer571,我们继续来学习,基岩版基础指令。
本节课我们会介绍一条能与选择器搭配的指令/testfor
,并在这基础上做一些应用。
/testfor
/testfor
,用于检测实体。用在命令方块中,成功检测到实体就能激活红石比较器,从而输出红石信号。其语法是/testfor <选择器>
。

例如输入/testfor @a[r=3]
,后面连接比较器和红石灯(如图)。这个装置可以检测半径3格以内的玩家,如果有玩家则会点亮红石灯。




如果觉得左边一直显示提示很烦躁,可以输入/gamerule commandblockoutput false
来关闭提示。(建议关闭)


指令在java版中已移除,基岩版或许也会将其移除。这里提到它是为了给以后的
/execute
指令打基础。

接下来,我们将围绕/testfor
和选择器,做一些实用装置。
求雨台
情景需求
我是一个服务器的服主,我想要做一个求雨台(样貌如图所示),玩家在中间的下界合金块(netherite_block
)上扔出一颗钻石后,天气变为雨天。(不消耗钻石)

可以将命令方块藏在下界合金块下方,输入testfor @e[name=钻石,r=2]
,其后连接连锁型命令方块,输入weather rain
。
装置图如下





僵尸探测器
testfor
输出的红石信号强度与检测到的实体数量成正比,即检测到的实体越多,比较器给出的红石信号越强(在达到上限之前)。如图所示。



利用这个特性,我们可以做出不一样的装置。
情景需求
我是一名丧尸危机地图制作者,在庇护所内有一个按钮,按下后能探测方圆40格内的僵尸(zombie
)数量,有多少只僵尸,就会点亮多少个红石灯(最多检测5只僵尸)。庇护所如图所示。

实现方法
使用/testfor @e[type=zombie]
,有多少只僵尸输出多少格信号即可。该装置红石技术要求较高。




打个总结

本节课课后作业:
关于求雨台的拓展
服主对求雨台不是很满意,他认为想求到雨必须消耗一颗钻石,请你设计一个装置,消耗一颗钻石以求雨。
请以以下两种方式实现:
钻石在物品栏内,按下按钮,清除一颗钻石,天气变为下雨。
将钻石扔在指定位置上,钻石消失,天气变为下雨。
挑战:你能只用两个命令方块实现方式2.吗。
自动开门装置
我想要一个铁门,只有我经过时才会自动打开,其余玩家或生物经过时都不会打开。

上节课课后作业答案:
输入一条指令,清除距离自己最近的2个苦力怕(
creeper
)。
/kill @e[type=creeper,r=2]
/kill @e[name=忽必烈]
此处也可为
/kill @e[name="忽必烈"]
,二者效果一致。
输入一条指令,清除 除"玩家"(
player
)、"苦力怕"(creeper
)外 的所有实体。
/kill @e[type=!player,type=!creeper]
输入一条指令,清除距离自己最远的1个苦力怕(
creeper
)。
/kill @e[type=creeper,c=-1]
设计一个机关。设置一个压力板,踩到它的僵尸(
zombie
)会被清除,其他生物踩到它不会被清除。

本节课课后作业答案: