Minecraft最新最全指令教学16 /execute 1(PC1.15.2)
MJ_Hamster
2020年03月22日 19:01
收录于文集
共22篇

耗子的指令课堂(16)

引导

在接下来的所有指令教学中,我会使用不同颜色的字强调不同种类的内容,方便大家阅读与查看。凡例:

深蓝色  标题

橙色      技术类文字

深绿色  专有名词

红色      强调

粉色      区分数字内容

紫色      范例

第二章  指令介绍

2.5  最强大的指令系统/execute

        编写这一节花了很长时间,从构思怎么编排到实际测试再到真正编写内容,才写完了这一部非常长而且详细地教程,希望大家可以看得明白。这一节讲的内容是指令系统改版之后最强大的指令——/execute。之所以说它强大,是因为它实在是太万用了,以至于学会了这个指令,就可以打遍天下无敌手,尝试制作属于自己的内容。

        execute的本义是“执行”,也就是说,这条指令的本质就是“执行指令”。和其他指令不太一样的是,这条指令的结构非常灵活,没有定式,但其深层次的原理类似于搭积木,将很多块独立的积木叠在一起,组成一条完成的指令。这些“积木”(子指令)有以下几种:

        修饰类:改变执行方式

        条件类:检测当前是否符合条件,决定是否会执行成功

        执行类:执行一条你想要的指令,只有一种:run {指令},代表执行后面填写的指令(不可以写左斜线“/”),并且一定要放在指令的末尾

        存储类:将结果存储到其他介质中,比如记分板、BOSS条的分数(重点讲/scoreboard和/bossbar的应用)

        当然,当/execute指令检测成功(不是执行成功,执行成功也可能检测失败)之后,使用红石比较器检测指令方块会输出红石信号。

2.5.1  修饰类子指令

(1)as

        格式:as {实体,可以使用目标选择器}

        指定指令的执行者。

        举例:正常来说,在指令方块里执行/say hi时方括号里面是“@”,但是使用as指定执行者时/execute as MJ_Hamster run say hi(让MJ_Hamster执行指令/say hi),“@”会变成“MJ_Hamster”,和玩家MJ_Hamster执行/say hi的效果是完全一样的。

(2)positioned

        格式:positioned {x y z} 或者 positioned as {实体}

        指定执行指令的坐标。可以填写具体坐标,也可以套用as子指令,指定实体所在位置为选定的坐标。

        举例:将所有骷髅传送到它正上方15格的位置

        首先,改变执行者:所有骷髅as @e[type=skeleton]

        然后指定执行指令的坐标:所有骷髅本身的位置(执行者位置):positioned as @s

        执行向上传送15格的指令:run tp @s ~ ~15 ~

        将这几部分拼在一起,就可以得到:

        /execute as @e[type=skeleton] positioned as @s run tp @s ~ ~15 ~

(3)align

        格式:align {x,y,z三个字母的任意组合,顺序随意}

        将对应坐标轴上的坐标转化为方块坐标。取方块坐标的方法是将绝对坐标向下取整(不大于这个数的最大整数)。比如x=2.3会化为x=2,z=-1.5会化为z=-2(什么?你问我整数怎么取?当然是它本身咯)。至于x,y,z的排列方法,你可以使用1、2、3个字母的任意排列选择你想要取整的坐标。比如xz就是将x坐标和z坐标取整;xyz和yxz的效果一样。

        举例:将自己传送至你所在的方块坐标(x、y、z都是整数)

        /execute align xyz run tp ~ ~ ~

(4)in

        格式:in {维度}

        将指令执行的维度改为特定的维度。维度可以是overworld(主世界)、the_nether(下界)和the_end(末地)。

        举例:在主世界获得在末地距离(-1000,90,1250)最近的末地城的坐标

        首先,选择维度:末地in the_end

        然后选择执行坐标:positioned -1000 90 1250

        执行查找末地城的指令:run locate EndCity

        将这几部分拼在一起,可以得到:

        /execute in the_end positioned -1000 90 1250 run locate EndCity

(5)at

        格式:at {实体}

        将指令指定位置、朝向、维度改为目标实体的位置、朝向和维度。

(6)rotated

        格式:rotated [{水平旋转角度} {垂直旋转角度}|其中一个] 或者 rotated as {实体}

        指定坐标的执行方向。如果你忘记了水平旋转和垂直旋转的内容,请进入传送门复习:

        如果使用as,那么指定的执行方向会是实体的朝向。

        举例:万箭归宗(让所有箭向MJ_Hamster面朝的方向移动)

        选定执行者:所有箭实体as @e[type=arrow]

        选定执行位置:箭本身的位置at @s或者positioned as @s(思考一下为什么?)

        选择移动朝向:MJ_Hamster的朝向rotated as MJ_Hamster

        使箭矢向前传送:run tp @s ^ ^ ^0.1

        将这几部分拼在一起,用保持开启的循环指令方块执行:

        /execute as @e[type=arrow] at @s(或者positioned as @s) rotated as MJ_Hamster run tp @s ^ ^ ^0.1

(7)anchored

        格式:anchored (eyes|feet)

        将坐标基准点改为实体的眼睛(eyes,一般为头部坐标)或脚(feet,实体所在坐标)。不写默认为feet。

(8)facing

        格式:facing {x y z} 或者 facing entity {实体} (eyes|feet)

        指定指令的执行方向朝向某个坐标或实体。eyes实体的眼睛(头部坐标),feet实体的脚(实体所在坐标)。不写默认为feet。

        举例:吸星大法(让所有非玩家实体持续向MJ_Hamster移动)

        首先确定目标:所有非玩家实体as @e[type=!player]

        实体位置:at @s

        执行朝向:朝向MJ_Hamster的所在坐标(玩家的所在坐标是下半部分身体的坐标)facing entity MJ_Hamster feet

        使实体向前传送:run tp ^ ^ ^0.1

        将这几部分拼在一起,用保持开启的循环指令方块执行:

        /execute as @e[type=!player] at @s facing entity MJ_Hamster feet run tp ^ ^ ^0.1

下一篇:第二章 指令介绍 2.5 最强大的指令系统/execute(第二部分)