第一中文网

第六十九章 修饰子命令 上 三要素与修饰子命令 (第2/4页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

1

假设villager_count这个假玩家在计分项an_objective上的分数原先为0。请你猜一猜,运行这条指令过后,分数将会变为多少?一定会变为1吗?

上面这条指令的意思是:将所有村民作为执行者,给villager_count在计分项an_objective上的分数加上1。而指令在运行过程中,会将每位村民都作为执行者运行一遍指令,因此最终指令将会运行『村民总数量』遍,我们也成功地将村民的总数量作为分数记到了计分板上。假设现在有两名村民,最终得到的分数将会是2,因为这两个村民都分别运行了一遍『scoreboard players add villager_count an_objective 1』。

为什么指令在运行过程中,会将每位村民都作为执行者运行一遍指令,而不是直接将所有村民作为执行者,仅仅运行一遍指令?

原因很简单:每条指令执行过程中,执行者、执行位置、执行朝向分别都只能有一个。

请你一定要记住这个知识点,因为接下来我们将会需要运用这个知识点来解决一些问题。

对了,既然新版本的execute有这个特性,那旧版本呢?

也是有的。

所以你能想到这有什么用处吗?

testfor指令虽然可以用来探测指定实体是否存在,但想要将数量储存到计分板中还需要一个\/stats指令,十分麻烦且容易出错。而execute如果这样用,直接吊打testfor啊!而且,这是可以用于基岩版的,做玩家人数检测或实体数量检测!

比如在基岩版,你可以这么干:

\/execute @a[r=10,x=15,y=94,z=20,tag=游戏参与者]~~~ scoreboard players add player_count count 1

这将会计算出以(15,94,20)为中心,半径10米内带有『游戏参与者』标签的玩家数量,非常适合用于小游戏的人数判定。

回到正题啊,接下来我们来看看at子命令。

at子命令,可以更改执行位置中的维度位置、坐标以及执行朝向中的旋转角度为指定实体的维度位置、坐标和旋转角度。其格式也是十分滴简单:

... at <实体:目标选择器>...

举个例子:

\/execute at @e[type=minecraft:arrow] run summon villager ~~~

这将会在每支箭的位置,分别运行一遍『summon villager ~~~』来召唤一只村民。

可以发现,虽然我们没有更改执行者,但相对坐标的基准点却被更改了,这说明相对坐标默认不是将执行者的位置作为基准点的,而是将指令执行位置作为基准点。其实这个我们在第五章就已经提到了,这里只不过再提一下而已。

另外,你有没有注意到『分别』两个字?也就是说,at子命令照样会使得指令在每个位置分别运行一遍。不要小看这一点,待会你就会知道小看这一点会导致什么严重的灾难。

in可以更改指令执行的维度位置,因此我们可以通过in指令来快速前往其他维度。其语法如下:

... in <维度Id>...

举个例子:

\/execute in minecraft:the_nether run tp @s ~~~

这将会把你传送到地狱。需要注意的是,你的x和z

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办