第189章 ,/.

positioned ——仅仅只能修改执行位置中的坐标

at ——不仅仅能修改执行位置中的坐标,还可以修改维度位置和旋转角度。

记住两者的区别之后,让我们来看看positioned子命令的使用方式:

... positioned <坐标>...

\\修改执行位置中的坐标为指定坐标\\

... positioned as <实体>...

\\修改执行位置中的坐标为指定实体的坐标,如果有多个实体,则分别以每个实体的坐标作为执行位置的坐标,多次运行指令\\

还是很简单,让我们来试一试:

/execute positioned 1 1 1 run tp @s ~~~

这将会把你tp到(1.5,1,1.5)的位置。至于为什么不会tp到(1,1,1)处,我们在前几章已经讲过了。

/execute positioned as @e[type=villager] run setblock ~~-1 ~ minecraft:diamond_block

这条指令将会在每名村民的脚下放置一个钻石块。

但还是请注意,positioned仅仅只会修改执行位置中的坐标。

为什么我要多次强调这个东西?

举个最简单的例子,假设你在下界,主世界有一个村民位于(1,23,1)的位置,此时你在下界运行一遍上面的指令,你就会发现:

在下界的(1,22,1)处,放置了一个钻石块,但理想情况下应该是在主世界放置。

这是怎么回事?答案很简单:因为positioned只会修改坐标,不会修改维度。如果你真的要使得在下界也能够让主世界的村民脚下生钻,有两种方法:

①/execute as @e[type=villager] run setblock ~~-1 ~ minecraft:diamond_block \\将positioned as替换为as\\

②/execute positioned as @e[type=villager] in minecraft:overworld run setblock ~~-1 ~ minecraft:diamond_block \\加上in子命令,指定维度位置是主世界\\

最后,我们只剩下了一个修饰子命令:align

align这个子命令比较特殊,它并不是说修改维度位置为某个实体所处的维度,也不是说修改旋转角度为某个方块的朝向,而是对执行位置中的坐标小修小补:对小数向下取整,对整数保留不变,将坐标改为方块坐标。其语法如下:

... align <坐标组合>...

其中,『坐标组合』参数可以填写任意的xyz。注意啊,这里不是填写具体的数字,而是就填写xyz这三个字母的任意组合,甚至缺个x缺个y之类的都可以,只是不能重复而已。

比如:

/execute align xyz run tp @s ~~~

假设你原本的坐标是(-105.315,-57.,-25.875),使用上述指令后你会传送到(-106,-58,-26),也就是将你的xyz三个坐标分别向下取整再传送。

上面这条指令你也可以写成:

/execute align yzx run tp @s ~~~

/execute align zxy run tp @s ~~~

都可以,就是不能这么写:

/execute align 1 1 1 run tp @s ~~~

/execute align xxyyzz run tp @s ~~~

这样子是不行的。

如果你只想对x坐标和z坐标进行向下取整,只需要去掉一个y就可以了:

/execute align xz ...

这章没有结束,请点击下一页继续阅读!

现在,8条修饰子命令都已经学完了,让我们来将它们一齐运用一下:

/execute in minecraft:the_nether positioned as @s run tp @s ~~~

这将会把你传送到地狱,并使得坐标不会变化。假设你原本在主世界是(1,1,1),使用这条指令你只会跑到下界的(1,1,1),x和z轴并不会除以8。

为何?让我们来使用『流水线思维』分析一下:

At First——你自己、(1,1,1)、主世界、你自己的旋转角度、feet

in——你自己、(0.125,1.0,125)、地狱、你自己的旋转角度、feet

\\in修改了维度位置到地狱,并且由于是从主世界到地狱,x和z轴就被分别除以8\\

positioned——你自己、(1,1,1)、地狱、你自己的旋转角度、feet

\\positioned将坐标重新改成了你自己的坐标\\

所以,你才会传送到地狱的(1,1,1)处,而不是(0.125,1,0.125)。

再来看看第二条:

/execute as @e[limit=13,sort=nearest] at @s rotated 360 -45 anchored eyes facing entity @e[limit=1,sort=nearest,distance=0.1..] feet align yzx in minecraft:the_end positioned 1 24 1.0 if predicate snow_king:0.3 run tp @s ^^^

这条execute用到了10个子命令:as、at、rotated、anchored、facing、align、in、positioned、if和run,其中if子命令是我们接下来的内容,但早点接触也没事。