命令/执行

来自Minecraft Wiki
跳转到:航行,搜索
本文是关于一个执行其他命令的命令。有关杀死玩家或其他实体的命令,请参见命令/杀戮.

/执行执行另一个命令,但允许更改执行器、更改执行器的位置和角度、添加先决条件并存储其结果。

Java版[编辑]

Java版,有12条指令(或子命令)用于/执行命令。在/execute之后连接多个子命令。子命令分为4类:modify子命令、condition子命令、store子命令和运行子命令。

  • Modify子命令修改命令变量并更改命令的执行情况,然后在命令后面执行带有特定发送方、执行位置、执行维度、执行旋转和执行锚定的子命令。
  • Condition子命令用于测试某些条件是否为真,并输出结果或限制执行条件。
  • Store子命令可以将命令的返回值存储在记分板或实体、块实体或存储器的数据中,还可以更改凸柱条的最大值或当前值。
  • 运行子命令用于执行另一个命令。

许多需要的子命令可以链接在一起。运行子命令可以任意排列或多次使用。但是运行子命令只能使用一次,并且必须放在子命令链的末尾。A运行子命令或条件子命令完成命令,否则命令不执行任何操作。游戏从头到尾按顺序处理这些子命令,例如,以下命令不同:

  • 所有实体向前移动一个块:作为@e在@s运行tp^^1执行
  • 所有实体移动到发送方前面的一个块:在@s作为@e run tp^^1执行

游戏在处理之前会处理其他子命令运行和存储子命令,因此运行和store子命令不能影响其他子命令。这个运行命令和存储子命令也不能相互影响。在某些情况下,命令中途终止而不执行任何操作。

执行命令后(如果它没有中途终止),它将返回一个成功还有一个结果值(请参见#存储子命令了解详情)。这两个值来自最后一个子命令(可以是condition子命令或运行子命令)。请注意,命令的返回值必须是整数,否则将向下舍入。这个成功值通常为0或1。当命令失败时,两个返回值都为0。当最后一个子命令(可以是condition子命令或运行子命令)被多次执行,只能返回上次执行的值。这两个值可以由store子命令存储。

/执行命令也有一个成功计数(不管是否中途终止)。这通常是01,但如果命令被拆分(可能是“/execute as@a->执行)则成功可以是大于1. 使用命令块执行时,成功计数返回到命令块,条件命令块可以检查成功与否,也可以使用redstone比较器读取。

有12条指令(或子命令)用于/执行命令,并且每个命令都有自己的特殊语法,因此描述语法需要一个很大的分支树。

完整语法树
/执行. . .
  • 排列<轴>->执行
  • 锚定<锚定>->执行
  • 作为<目标>->执行
  • <目标>->执行
  • 面向(<pos>实体<targets><anchor>)->执行
  • 在里面<尺寸>->执行
  • 定位(<pos>作为<targets>)->执行
  • 旋转的(<rot>作为<targets>)->执行
  • 商店(结果|成功)。
    • …块<targetPos><path><type><scale>->执行
    • …bossbar<id>(最大值)->执行
    • …实体<target><path><type><scale>->执行
    • …得分<targets><objective>->执行
    • …存储<target><path><type><scale>->执行
  • … (如果|除非) . . .
    • …块<pos><block>->[执行]
    • …块<start><end><destination>(全部屏蔽)->[执行]
    • …数据。
      • …块<sourcePos><path>->[执行]
      • …实体<source><path>->[执行]
      • …存储<source><path>->[执行]
    • …实体<entities>->[执行]
    • …谓词<predicate>->[执行]
    • …得分<target><targetObjective>。
      • …(<|<=|=|>|>=)<source><sourceObjective>->[执行]
      • …匹配<range>->[执行]
  • 运行<命令>
哪里->执行表示另一个子命令的开始。

修改子命令[编辑]

排列[编辑]

更新命令的位置,与当前块位置(整数)对齐。仅适用于指定轴。
这和地板坐标——即向下四舍五入。更新它的含义~ ~ ~^ ^ ^.
语法
对齐<轴>->执行
论据
<轴>:急流
字符“x”、“y”和“z”的任何非重复组合。(例如,,xz公司,zyx公司,或yz公司.)
结果
职位更新,在任何方向上的变化都小于1个块
如果参数指定不正确,则出错
例子
  • 给定位置(-1.8,+2.3,+5.9),/执行对齐xz改变位置~ ~ ~(-2,+2.3,+5)。
  • 给定(+2.4,-1.1,+3.8),/执行对齐yxz运行spawnpoint@p~~将玩家的生成点设置为(2,-2,3)。

锚定[编辑]

存储从脚到正在锚点中执行命令的实体眼睛之间的距离,锚点是命令上下文的一部分。
有效地重新集中^ ^ ^在眼睛或脚上,同时改变角度面向副司令部工作于
语法
锚定执行
论据
<锚定>:实体锚(字面意思是眼睛)
是将执行的命令锚定在眼睛水平还是脚水平
结果
^ ^ ^定位是在眼睛或脚的中央
如果参数指定不正确,则出错
例子
影响/总磷就是把目标的脚放在指定的位置来移动它。
执行锚定眼运行tp^^^有效地传送发送者的脚到眼睛所在的位置(执行位置)。
执行锚定眼运行tp^5^^意思是“把发送者的脚放在离它眼睛5个街区的地方”

作为[编辑]

将命令发送器设置为目标实体,而不更改位置、旋转、尺寸或定位
语法
作为<targets>->执行
论据
<目标>:实体
要成为新发件人的目标实体。
结果
发件人更新为目标实体(这将更改@s)
如果参数指定不正确,则出错
终止条件<目标>无法解析一个或多个在线实体。
当选择多个实体时,每个发送方执行一次下一个子命令。
例子
获取所有绵羊的数据: 执行as@e[类型=绵羊]运行data get entity@s

[编辑]

设置命令的位置、旋转和尺寸以匹配一个或多个实体的位置、旋转和尺寸;不更改发送器
语法
在<targets>->执行
论据
<目标>:实体
与位置、旋转和尺寸匹配的目标实体
结果
位置,旋转,更新以匹配目标实体(重新居中~ ~ ~^ ^ ^定位)
如果参数指定不正确,则出错
终止条件<目标>无法解析为一个或多个有效实体(指定玩家必须联机)
当选择多个实体时,下一个子命令在每个执行位置执行一次。
例子
所有羊向上移动1个街区: 执行as@e[类型=绵羊]在@s运行tp~~1~
自杀: 执行在@e[类型=绵羊]运行kill@s

面向[编辑]

将命令旋转设置为面向给定点(从其锚点(眼睛或脚)看)
语法
朝向->执行
面向实体<targets><anchor>->执行
论据
选项:面向<pos>
<pos>:向量3
旋转方向坐标
选项:面向实体<targets><anchor>
<目标>:实体
要旋转的目标
<锚定>:实体锚(字面意思是眼睛)
是指向目标的眼睛还是脚
结果
旋转更新以面对给定的位置或目标(重新排列^ ^ ^定位)
如果参数指定不正确,则出错
终止条件<目标>无法解析为一个或多个有效实体(指定玩家必须联机)
当选择多个实体时,每个执行循环执行一次下一个子命令
例子
发送器向左旋转一次: 执行面^1^^^运行tp~ ~~
所有图元沿(0,64,0)方向移动一个块(不更改其旋转方向): 作为@e at@s执行面向0 64 0运行tp@s^^1
所有图元沿(0,64,0)方向移动一个块(更改其旋转方向): 作为@e at@s执行面向0 64 0运行tp^^1
所有非玩家实体向其最近玩家的方向移动一个空间(不改变其方向): 执行为@e[type=!玩家]在@s面向实体@p eyes运行tp@s^^1

在里面[编辑]

设置命令尺寸
语法
在<dimension>->执行
论据
<尺寸>:
新执行维度的名称
minecraft名称空间中的标准维度是“overworld”、“theu nether”和“theu end”。
结果
维度已更新
如果参数指定不正确,则出错
例子
寻找终点城市(来自外星球): 执行最后运行locate EndCity
将玩家转移到当前坐标系下: 执行在地下运行传送~~

定位[编辑]

设置命令位置,而不更改旋转或尺寸;可以匹配实体的位置
语法
定位<pos>->执行
定位为<targets>->执行
论据
选项:定位<pos>
<pos>:向量3
新职位
选项:定位为<目标>
<目标>:实体
与职位匹配的目标实体
结果
职位已更新
如果参数指定不正确,则出错。
终止条件<目标>无法解析为一个或多个有效实体(命名玩家必须在线)。
当选择多个实体时,每个执行位置执行一次下一个子命令。
示例
在(0,64,0)附近寻找一个村庄
执行定位0 64 0运行定位村庄
让所有绵羊朝发送者的旋转方向移动一个区块(例如,当发送者向东看时,绵羊向东移动一个区块;当发送者向上看时,绵羊向上移动一个区块):
执行为@e[type=sheep]定位为@s运行tp@s^^1

旋转的[编辑]

设置命令旋转;可以匹配实体的旋转
语法
旋转<rot>->执行
旋转为<targets>->执行
论据
<腐烂>:旋转(<yaw><pitch>)
所需的旋转
偏航从正南(Z方向)顺时针测量,范围为[-180到+180)
从地平线的赤纬以度表示,范围为[-90到+90](直上到直下)
波浪符号可用于指定相对于当前执行旋转的旋转。
<目标>:实体
与旋转匹配的目标实体
结果
如果参数指定不正确,则出错
终止条件<目标>无法解析为一个或多个有效实体(命名玩家必须在线)。
当选择了多个实体时,每个执行循环执行一次下一个子命令。
例子
将每只羊向距离它最近的玩家面对的方向移动1个街区: 执行为@e[type=sheep]在@s或者定位为@s 旋转为@p运行tp@s^^1

条件子命令[编辑]

特殊用法如果除非子命令限制命令只能在指定的条件下执行。除非是对的否定如果,相当于“if not…”这两个命令具有相同的参数结构。

有六种不同类型的情况:

  1. (if |除非)阻塞–测试单个实块
  2. (if |除非)块–将真实的三维矩形体积与另一个体积进行对比测试
  3. (if |除非)数据一个实体,一个实体,一个实体,一个真实的数据块
  4. (如果|除非)实体–测试给定实体是否真实
  5. (if |除非)谓词–测试谓词
  6. (if |除非)得分-测试目标的分数

(if |除非)阻塞[编辑]

将给定位置的块与给定的块ID进行比较
语法
(如果|除非) <pos><block>->[执行]
论据
<pos>:方块图
要测试的目标块的位置
<block>:块谓词
要测试的有效块ID(或谓词)
块ID后面有块状态(用括号括起来-[])和/或数据标记(用大括号包围-{})

(if |除非)块[编辑]

比较两个大小相等的卷中的块
语法
(如果|除非)阻碍 <start><end><destination><scan mode>->[执行]
论据
<开始>:方块图
<结束>:方块图
源卷任意两个对角点的位置(比较对象;要比较的卷)
<目的地>:方块图
目标卷的西北下角的位置(比较器;要比较的卷)
假设与源卷大小相同
<扫描模式>:文字(全部蒙面)
指定是否全部的应比较源体积中的块体,或者是否应比较空气块体隐藏/忽略

(if |除非)数据[编辑]

检查目标块、实体或存储具有给定标记的任何数据
语法
(如果|除非)数据 块<pos><path>->[执行]–用于数据检查块
(如果|除非)数据 实体<target><path>->[执行]–用于数据检查实体
(如果|除非)数据 存储<source><path>->[执行]–用于数据检查[存储器?]
论据
选项: (if |除非)数据块<pos><path>
<pos>:方块图
待测试块位置
<路径>:nbt_路径
要检查的数据标记
选项: (if |除非)数据实体<target><path>
<目标>:实体
一个要测试的实体
<路径>:nbt_路径
要检查的数据标记
选项: (if |除非)数据存储<source><path>
<来源>:资源位置
<路径>:nbt_路径
要检查的数据标记

(如果|除非)实体[编辑]

检查是否存在一个或多个<targets>

语法
(如果|除非)实体 <目标>->[执行]
论据
<实体>:实体
要检查的目标实体

(if |除非)谓词[编辑]

检查<predicate>的计算结果是否为正结果。看到了吗谓语了解更多信息。

语法
(如果|除非)谓语 <谓词>->[执行]
论据
<谓词>:资源位置[部分需要书写]

(if |除非)得分[编辑]

对照另一个分数或给定范围检查一个分数

语法
(如果|除非)分数 <target><targetObjective>(目标目标)<source><sourceobject>->[执行]–用于比较两个分数
(如果|除非)分数 <target>匹配<range>->[执行]–将一个分数与一个范围进行比较
论据
<目标>:分数持有人
单分数保持者
*可以执行但失败
<目标>:客观的
记分板的目标是检查
选项:(<|<=|=|>=|>)<source><sourceObjective>
<来源>:分数持有人
第二个与之相比的得分保持者
*可以执行但失败
<sourceObjective>:客观的
记分牌目标
选项: 匹配<range>
<范围>:国际范围
比较分数的范围
结果
如果参数指定不正确,则出错。
当不在子命令链的末尾时,只有在条件tests pass时,它后面的子命令才会被执行。如果它被多个变量(例如发送者、执行位置、执行循环)多次执行,它将充当变量过滤器-只有与条件匹配的变量才执行下一个子命令。
当位于子命令链的末尾时,它检查条件是否满足,然后输出。
例子
杀死所有站在羊毛上的玩家:作为@a at@s执行如果块~~-1~#羊毛运行kill@s
检查你自己的A分和B分是否相等:执行如果得分@s A=@s B

Store子命令[编辑]

存储最终命令的结果成功有价值。它首先记录要存储的位置,然后在执行所有命令后存储在该位置。注意,命令的返回值必须是整数。如果是十进制,则四舍五入。

有五种不同的存储模式:

  1. 存储(结果|成功)块–将返回值存储在块的某个NBT下
  2. 商店(结果|成功)bossbar–将返回值存储为bossbar数据
  3. 存储(结果|成功)实体–在实体的一个NBT下存储返回值
  4. 商店(结果|成功)得分–将返回值存储在目标的得分下
  5. 存储(结果|成功)存储–将返回值存储在存储的某个NBT下

存储(结果|成功)块[编辑]

将最终命令的返回值另存为块图元中的标记数据。存储为字节、short、int、long、float或double。如果返回值是十进制,则先四舍五入,然后再乘以<缩放>.
语法
存储(结果|成功) <targetPos><path><type><scale>->执行
论据
<targetPos>:方块图
目标块位置
<路径>:nbt_路径
要保存值的所需标记的位置
<类型>:文字(字节|短|整数|长|浮点|双精度)
所需数据大小/类型
<缩放>:双重的
存储值前应用的乘数
结果
如果参数指定不正确,则出错。
路径不存在时不存储任何内容。

商店(结果|成功)bossbar[编辑]

将最终命令的返回值保存为bossbar的当前值或最大值
语法
存储(结果|成功)博斯巴尔 <id>(最大值)->执行
论据
<id>:资源位置
要保存的目标bossbar的ID
<价值>:文字(最大值|)
是否覆盖bossbar的当前值或者它的最大值
结果
如果参数指定不正确,则出错。

存储(结果|成功)实体[编辑]

将最终命令的返回值保存在实体的一个数据标记中。存储为字节、short、int、long、float或double。如果返回值是十进制,则先四舍五入,然后再乘以<缩放>. 就像/数据“命令,/execute store<arguments>”无法修改玩家NBT.
语法
|成功存储实体 <target><path><type><scale>->执行
论据
<目标>:实体
存储在其中的单个实体
<路径>:nbt_路径
要保存值的所需标记的位置
<类型>:文字(字节|短|整数|长|浮点|双精度)
所需数据大小/类型
<缩放>:双重的
存储值前应用的乘数
结果
如果参数指定不正确,则出错。
路径不存在时不存储任何内容。

商店(结果|成功)得分[编辑]

覆盖的分数由<目标>在给定的<目标>最后一个命令的返回值。
语法
存储(结果|成功)分数 <targets><objective>->执行
论据
<目标>:分数持有人
指定要重写其分数的分数持有者
<目标>:客观的
记分牌目标
结果
如果参数指定不正确,则出错。

存储(结果|成功)存储[编辑]

使用<路径>在内部存储<target>将返回值存储在中。存储为字节、short、int、long、float或double。如果返回值是十进制,则先四舍五入,然后再乘以<缩放>. 如果存储尚不存在,则创建它。
语法
存储(结果|成功)存储 <target><path><type><scale>->执行
论据
<目标>:资源位置(单字)
目标存储容器,作为命名空间ID
<路径>:nbt_路径
要保存值的所需标记的位置
<类型>:文字(字节|短|整数|长|浮点|双精度)
所需数据类型/大小
<缩放>:双重的
存储值前应用的乘数
结果
如果参数指定不正确,则出错


运行子命令[编辑]

这个运行command的单个参数是要执行的命令,其变量可以由使用的子命令修改。

语法
运行--><命令>
论据
<命令>
可以是任何命令
技术
将命令节点重置为命令调度员
有关将命令建模为聊天文本的信息:
  • 这个命令调度员当玩家以正斜杠开始一条消息时,是什么开始的(/).
  • A命令节点光标正在编辑的特定单词/条目,可以是命令或参数。
  • 这个根节点位于当前命令的第一个单词之前。
结果
执行此命令。失败,如果<命令>就是失败。

更多示例[编辑]

  • 传送所有有一个物品附魔的玩家效率在他们的第一个hotbar插槽中坐标(0,64,0):
    /作为@a if data entity@s Inventory[{Slot:0b}].tag.enchanttments[{id:“minecraft:efficiency”}]运行tp@s0 64 0
  • 制造烟雾微粒在所有玩家面前三个街区:
    /在@a锚定眼运行粒子烟^3执行
  • 将鞍座放在距执行球员5个街区内的清管器上,并从距离执行球员5个街区以上的清管器上取下鞍座:
    /在@s store success entity@s Saddle byte 1处执行@e[type=pig],如果实体@p[distance=..5]
  • 让玩家说“我的脚湿透了!”在聊天中,如果他们位于:
    /如果block~~~~水润说“我的脚都湿透了!”
  • 如果分数“test”没有设置,让玩家在聊天中说“Score is reset”,例如通过“scoreboard players reset@s test”:
    /作为@a执行,除非score@s test=@s test run说“score is reset”

基岩版[编辑]

语法[编辑]

执行<origin:target><position:x y z><command:command>
替代语法只允许在检测到特定块时执行命令:
执行<origin:target><position:x y z>detect<detectPos:x y z><block:block><data:int><command:command>

论据[编辑]

原点:目标

指定要作为命令的发送方的目标。必须是玩家姓名或目标选择器. 如果选择了多个图元,则命令将作为每个图元运行一次。

位置:x y z

指定运行命令的位置。用指定的坐标颚化符和插入符号是相对于目标,而不是命令执行的位置。

命令:命令

指定要运行的命令。必须是有效的命令。

探测器:x y z

指定要检查的块的位置。可以使用颚化符和插入符号指定相对于x:y位置.

块:块

指定detectPos上的块必须匹配的块ID才能运行命令。必须是有效的块ID。

数据:int

必须是该类型块或的有效块数据-1匹配任何块数据。

结果[编辑]

如果参数指定不正确,则失败,如果原点:目标如果选中的块的块id、数据或状态不正确,或者指定的命令失败,则无法解析为一个或多个有效实体(命名玩家必须联机)。

成功时,执行指定的命令,如同由指定的目标执行一样,完成操作人员-指定坐标级别的权限。

示例[编辑]

  • 在每个僵尸的位置召唤闪电:
    执行@e[type=zombie]~~~召唤闪电箭
  • 在每一个站在沙子上的僵尸的位置召唤闪电:
    执行@e[type=zombie]~~~探测~~-1~地雷阵:沙-1召唤闪电箭
  • 在最近的玩家位置召唤10个爬虫(只有在负载世界中至少有10个实体时有效):
    执行@e[c=10]~~执行@p~~~召唤爬虫~~
  • 以你朋友的身份召唤恩德德拉贡:
    执行@a[name=你的朋友的姓名]~~~召唤恩德龙

历史[编辑]

Java版
1.814w07a型补充/执行.
14周08A命令使用/执行现在将它们的成功值传递回运行它们的命令块。
1.1116w32a型补充块状态支持/执行.
1.1317周45安的语法/执行已经被分开了。
17周45B返工/执行存储.
18w02a型向添加了新的子命令/执行允许对命令进行更多的控制。
18w05a型补充/执行存储.
1.1418w43a型补充/执行(if |除非)数据.
1.1519w38a型补充/执行if谓词.
补充/执行存储存储.
袖珍版Alpha
0.16.0构建1补充/执行.
功能几乎相当于Java 1.10版在目标实体中的用法是可选的,但/执行.