欢迎光临散文网 会员登陆 & 注册

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

2023-08-07 12:00 作者:ThePlayer571  | 我要投稿

同学们好,我是ThePlayer571,我们继续来学习,基岩版基础指令。

本节课我们会介绍一条能与选择器搭配的指令/testfor,并在这基础上做一些应用。

/testfor

/testfor,用于检测实体。用在命令方块中,成功检测到实体就能激活红石比较器,从而输出红石信号。其语法是/testfor <选择器>

/testfor 激活比较器

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

总览
命令方块的内容
玩家处于半径3格内,testfor执行成功,输出红石信号
玩家处于半径3格外,testfor执行失败,不输出红石信号

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

输入 /gamerule commandblockoutput false
提示关闭

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

接下来,我们将围绕/testfor和选择器,做一些实用装置。

求雨台

情景需求

我是一个服务器的服主,我想要做一个求雨台(样貌如图所示),玩家在中间的下界合金块(netherite_block)上扔出一颗钻石后,天气变为雨天。(不消耗钻石)

求雨台长这样

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

装置图如下

总览
第一个命令方块
第二个命令方块
测试

僵尸探测器

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

命令方块内容
检测到一颗钻石
检测到两颗钻石

利用这个特性,我们可以做出不一样的装置。

情景需求

我是一名丧尸危机地图制作者,在庇护所内有一个按钮,按下后能探测方圆40格内的僵尸(zombie)数量,有多少只僵尸,就会点亮多少个红石灯(最多检测5只僵尸)。庇护所如图所示。

庇护所长这样

实现方法

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

总览 (这里为了方便展示把一些方块敲掉了)
第一个命令方块
测试 有一只僵尸
测试 有两只僵尸

打个总结

本期我们学习了目标选择器的应用,可能较难理解,建议多花点心思把这两个实例吃透。同时,我建议课堂上的实例,一定要自己动手复原一遍,这样有助于增进理解。文末我会给出实例的存档。同样,由于本期难度较高,我会直接给出作业答案。

本节课课后作业:

  • 关于求雨台的拓展

服主对求雨台不是很满意,他认为想求到雨必须消耗一颗钻石,请你设计一个装置,消耗一颗钻石以求雨。

请以以下两种方式实现:

  1. 钻石在物品栏内,按下按钮,清除一颗钻石,天气变为下雨。

  2. 将钻石扔在指定位置上,钻石消失,天气变为下雨。

挑战:你能只用两个命令方块实现方式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)会被清除,其他生物踩到它不会被清除。

压力板激活命令方块:/kill @e[r=3,type=zombie]

本节课课后作业答案:

已经包装在存档内了,点击下载 https://theplayer571.lanzouj.com/i1m1214it9vi。存档导入方法可在b站上查询。



EP.6 运用目标选择器【基岩版指令教程】的评论 (共 条)

分享到微博请遵守国家法律