首页 男生 游戏竞技 Minecraft指令手册

第四章 目标选择器

Minecraft指令手册 你好MC 1505 2024-07-09 15:29

  (本章写作时作者使用的是Java1.12.2、1.17.1和基岩1.17.0)

  这里有一只牛。

  我们要用指令锁定这头牛。

  但怎么锁定呢?

  你在命令方块界面可能见到过这段话:

  用“@br /”来代表最近的玩家

  用“@r”来代表随机玩家

  用“@a”来代表全部玩家

  用“@e”来代表全部实体

  用“@s”来代表执行实体

  (这段话在Java新版本被移除了)

  这段话中所讲的东西,就是指令中常见的一个参数类型:目标选择器。

  目标选择器,顾名思义就是选择目标,而目标就是Minecraft中的“实体”。不懂实体是什么?Minecraft Wiki对实体的定义是:『包括在Minecraft中所有动态的、移动中的对象』。简单且不严谨地来说,实体指的是非方块的东西,比如玩家、生物等都是,还有例如掉落的方块、点燃的TNT也是实体。

  目标选择器的本质就是通过一系列的参数指定筛选的条件,然后游戏根据给出的条件对所有实体进行筛选,进而得到指令执行的作用目标。通过目标选择器,我们可以指定指令执行时所产生的效果会在哪些实体上奏效。比如我们一开始就提到的/kill指令,这条指令就可以使用目标选择器来选择哪些实体会被杀死。

  实际上我们也可以不用目标选择器指定目标,反而使用玩家名称或实体UUID(UUID是一串很长且随机生成的字符串,每个Minecraft实体都有一个唯一的UUID以便游戏区分)。但这两个东西,一方面效率低下,另一方面不能自动化。下面就是一个例子:

  假设此时有一名玩家,其名称叫做“JIE灬挥刀乱砍”(如有同名,纯属巧合),玩家UUID是“5409be4a-6333-4912-ab5b-58265ccbfe3c“。如果他想要用指令给自己一个钻石块,还不用目标选择器指定,就要这么写:

  /give JIE灬挥刀乱砍 command_block

  或者是这样写:

  /give 5409be4a-6333-4912-ab5b-58265ccbfe3c command_block

  使用目标选择器,只需要:

  /give @s command_block

  其中,@s就代指了执行该指令的实体。

  命令方块中的介绍有点过于简单,还是得具体介绍一下:

  @br /——代指距离执行地点最近的玩家,包括死亡玩家,如果没有执行地点,默认是主世界坐标(0,0,0)的地方,一般来说这种情况只会在服务器控制台执行指令时出现。关于坐标会在下一章讲到。

  @s——代指执行指令者,不管执行指令者是否已经死亡。如果执行指令者不是个实体,比如是个命令方块,那么将会什么也不会发生。

  @a——代指所有玩家,包括已经死亡的玩家

  @r——随机选择一位玩家,包括已经死亡的玩家

  @e——代指所有实体,不包括已死亡实体

  @c——代指自己的吉祥物[仅教育版]

  @v——代指所有吉祥物[仅教育版]

  @initiator——代指正在与该NPC交互的玩家[仅基岩版],不管这名玩家是否在交互时被杀死

  最后一个@initiator是一个比较新奇的东西,它无法用在除基岩版NPC以外的地方,关于基岩版的NPC以后的章节会讲到。

目录
设置
手机
书架
书页
评论