您的位置:>我的世界>资讯资讯>

【我的世界命令教程】03目标选择器和防熊命令 清除TNT

开始吐槽

*所有内容均为原创内容,未经允许禁止转载或摘编

MC小知识:在游戏中按F3可以打开调试信息,游戏版本、当前位置坐标、生物群系、电脑配置等都可以在这里看到,手机版可以用 /tp ~ ~ ~ 来获知当前坐标

循环 不受制约命令方块图片 1.9+

上一期我们使用的传送命令 /tp [传送目标] <目的地目标> 中,<目的地目标>是用来指定传送的目的地实体。必须是一个玩家的名字或一个目标选择器。那么实体是什么呢?目标选择器又是什么呢?

实体

实体包括以下几类:

生物(怪物,动物,村民等)

游戏玩家,弹射物( 弓箭、火球、喷溅药水等

方块( 箱子、熔炉、命令方块、刷怪蛋、告示牌等

物品实体(在地上的物品)

物品( 物品栏中的物品 (包括附魔、自定义名称等)

交通工具( 船、矿车等

动态方块( 引燃的TNT、正在掉落的沙子、沙砾、铁砧

其他实体( 烟花火箭、画和物品展示框

目标选择器

目标选择器用于自定义类别来选择被执行命令的实体。

它分为两个部分:<目标选择器变量> + [目标选择器参数]

目标选择器变量

用于指定待选目标的大致分类。一共有5种变量: @p,@r,@a,@e,@s

@p

选择距离最近的玩家。

在服务器控制台中输入时,命令执行基准点为(0, 0, 0)。如果周围有多个最近的玩家,他们与基准点距离完全相同,那么会选择其中最晚进入服务器的玩家。

在聊天栏输入时,会选择输入命令的玩家。

在命令方块中输入时,会选择距离该命令方块最近的玩家。

c目标选择器参数可以用来追加待选目标。(举例来说,@p[c=3]会选择最近的三名玩家)。若参数是负值,c会反转选择目标的顺序(举例来说,@p[c=-1] 会选择最远的一名玩家)。

注意,这里的[c=3]、[c=-1]就是数据标签,而c=3就是一个键值对。

@r

选择随机玩家(或使用type目标选择器参数来包含实体)。

c目标选择器参数可以用来追加待选目标。(举例来说,@r[c=3]会随机选择三名玩家)。

如果没有使用type参数,@r只会选择随机玩家。type参数可以用来选择非玩家的实体(举例来说,@r[type=zombie]会随机选择僵尸,@r[type=!player]会随机选择非玩家实体,等等)。

@a

选择所有玩家,包括已死亡玩家。除了此选择器以及@s以外的其它所有目标选择器都不能选中已死亡玩家。

@e

选择所有实体(包含玩家)。

目标选择器参数可以进一步筛选待选目标。举例来说,@e[type=cow]只会选择牛。

@s

只选择唯一一个实体:执行该命令的实体,包括已死亡玩家。若命令执行者不是一个实体,如通过命令方块或服务器控制台执行命令,则此选择器不会选中任何东西。

目标选择器参数

目标选择器参数其实就是目标选择器变量的数据标签。在数据标签中可以附加一个或多个键值对,并包含在方括号中,格式是:

@<目标选择器变量>[<键名>=<键值>,<键名>=<键值>,…](看不懂键值对的倒回去看第一期)

键名区分大小写,括号、等于号和逗号旁不能有空格,键值对只能用逗号分隔。

键名汇总❶

上表中左边的参数就是可添加的目标选择器参数,也就是键名。

通过坐标选择目标

[x=X,y=Y,z=Z]

— 选择基于此准确位置一定距离的目标。结合选择半径以选择在特定位置的唯一目标。

坐标必须为整数且必须明确——波浪号不可以用于此参数

通过半径选择目标

[r=R]

— 只选择以命令的执行处为中心,半径小于R米区域内的目标。

[rm=RM]

— 只选择以命令的执行处为中心,半径大于RM米区域内的目标。

如果坐标和半径都已被定义,命令会以定义的坐标为中心执行命令。

通过空间选择目标

[dx=DX,dy=DY,dz=DZ]

只选择位于一定体积内部的目标,体积定义为从执行命令的位置开始,向“x”方向(东/西方)延伸DX格,向“y”方向(上/下方)延伸DY格,并向“z”方向(北/南方)延伸DZ格。如果最初的坐标已经使用

x

y

z

参数定义,则它会取代命令的执行位置,成为体积选择参数的计算位置。否则,基准位置为命令执行所在方格的西北下角处。(

dx

dy

dz

仍然用来指定与坐标的距离;它们不指定一个新的坐标)。

通过分数选择目标

[score_name=SCORE]

— 只选择目标计分板name中分数的不高于SCORE的目标。

[score_name_min=SCOREMIN]

— 只选择目标计分板name中分数的不低于SCOREMIN的目标。

例如,

@a[score_points_min=30,score_points=39]

将选择目标计分板points的分数的不低于30,且不高于39的目标。

注:计分板下期说

通过标签选择目标

[tag=TAG]

— 只选择记分板标签为TAG的目标。

[tag=!TAG]

— 只选择记分板标签不为TAG的目标。

[tag=]

— 只选择没有任何记分板标签的目标。

[tag=!]

— 只选择拥有任意记分板标签的目标。

注:tag标签以后说

通过队伍选择目标

[team=TEAM]

— 只选择属于队伍TEAM的目标。

[team=!TEAM]

— 只选择不属队伍TEAM的目标。

[team=]

— 只选择不属任何队伍的目标。

[team=!]

— 只选择属于任意队伍的目标。

注:队伍下期说

循环 条件制约命令方块贴图 1.9+

通过数量选择目标

[c=C]

— 只选择指定数量的目标。通常按与命令执行者的距离排序。

当使用

@p

@r

变量时,此参数被预设为1,而更大的数值会增加选定的目标数量。当使用

@a

@e

变量时,此参数只会选择最近的目标。而如果有多名距离最近的玩家,距离完全相同,那么会根据玩家最近一次加入服务器的时间来选择。

举例来说:如果距离完全相同,

@a[c=1]

会选择进入服务器时间最久的玩家而

@e[type=Creeper,c=3]

会选择生成时间最久的3只爬行者。

当输入的值为负值时,目标的顺序会被反转。

举例来说:

@p[c=-3]

会回传3个最远的目标,而且,如果所有目标距离都一样远,

@e[c=-3]

会选择3个刚生成的目标。

通过经验等级选择目标 [仅Java版]

[l=L]

— 只选择不超过L经验等级的目标。

[lm=LM]

– 只选择不低于LM经验等级的目标。

此参数自动剔除所有非玩家目标。

通过游戏模式选择目标

[m=M]

— 只选择处于指定的游戏模式的目标。

[m=!M]

- 只选择 处于指定的游戏模式的目标。

M允许值为:

-1

: 所有游戏模式

0

,

s

,

survival

:生存模式

1

,

c

,

creative

:创造模式

2

,

a

,

adventure

:冒险模式

3

,

sp

,

spectator

:旁观模式

此参数自动剔除所有非玩家目标。

通过名称选择目标

[name=NAME]

— 只选择名字为NAME的目标。

[name=!NAME]

— 只选择名字不是NAME的目标。

通过垂直旋转选择目标

[rx=RX]

— 只选择最大不超过垂直旋转角度RX的目标。

[rxm=RXM]

— 只选择最小不低于垂直旋转角度RXM的目标。

垂直旋转角度从270面对正上方,降低至将近水平时角度升至359,刚好水平时为0,再到90.0面对正下方(因此垂直旋转值增加时会旋转向下)。

通过水平旋转选择目标

[ry=RY]

— 只选择与最大不超过水平旋转值RY的目标。

[rym=RYM]

— 只选择与最小不低于水平旋转值RYM的目标。

水平旋转值从-180(面对正北方),到-90(面对正东方),到0(面对正南方),到90(面对正西方),到180(正北偏西),旋转回正北方-180(因此水平旋转值增加时会向右旋转,或者从上方看下去是顺时针方向旋转)。

通过实体类型选择目标

[type=TYPE]

— 只选择特定的实体类型的目标。

[type=!TYPE]

— 只选择不属于特定的实体类型的目标。

TYPE必须游戏内部用来判定不同种类实体的实体ID(举例来说,

Creeper

指定爬行者,

Minecart

指定普通矿车等等)。实体ID必须区别大小写,且无效的实体ID会造成命令失败。

当与

@r

一起使用时,原本用来选择玩家的命令也可以被用来选择其它实体。

注:因为点燃的TNT也算特殊的实体,所以可以利用此命令做到防熊孩子。

下面列两个例子:

将距离我半径100格内的玩家传送到坐标x=10,y=72,z=-30

/tp @a[r=100] 10 72 -30

将距离我半径500格内的苦力怕传送到我的位置

/tp @e[type=C reeper,r=500 ] 暗冥夜辰

233

防熊命令

这个命令可以清除所有点燃的TNT。当然了,把TNT当装饰物应该没什么意见吧!

首先获取一个命令方块,打开它的GUI界面,输入以下指令:

/execute @e[type=PrimedTnt] ~ ~ ~ /kill @e[type=PrimedTnt]

输入命令

并且更改第一个 脉冲 变为 循环,第三个 红石控制 变为 保持开启。点击完成

输入命令

聊天栏中显示成功设置,并且命令方块的颜色也自动变成了蓝色。代表现在这个命令方块会在每个游戏刻执行一次(20游戏刻=1秒),而点燃的TNT会在经过80游戏刻(4秒)的闪烁之后才会爆炸。现在我们就拿个TNT来测试一下吧!

放置TNT

放好了,准备就绪~

点燃TNT

成功啦!在我按下去的一瞬间就消失了!聊天栏也显示已清除TNT方块。

注:在up主测试的另一个版本1.11.2中,实体TNT的名称需要更改为 tnt 才可正常使用。

/execute @e[type=tnt] ~ ~ ~ /kill @e[type=tnt]

现在详细讲解一下这条命令。首先我们看到这条命令有两个 / 。对 这条命令由两个命令组成。

第一个命令的格式是 / execute < 实体 > <x> <y> <z> < 命令… >

它可以嵌套其他的命令,它的作用是 在指定方块被检测到时执行另外的命令。

/execute;不可更改,原样输入。

@e[type=PrimedTnt];@e代表所有实体,[ type=PrimedTnt ]限定了实体中名字是 PrimedTnt的

~ ~ ~;是 指定命令运行的位置。

/kill @e[type=PrimedTnt];是 第二个命令, 的格式是 / kill [ 玩家 | 实体 ]

它的作用是 杀死或者清除实体(玩家,生物,物品等)。

TNT在点燃之后就从方块变成了一个特殊的实体,我们这条命令的意思就是循环检测实体形态的TNT是否存在,一旦检测到就立即清除所有的TNT实体。

~~~~~~~神奇的分割线~~~~~~~

注:有想知道的代码或者好的想法可以在评论区写出来,我会考虑优先出教程哒^_^

我写的比较细,零基础的小白们,看到有不懂的地方欢迎在评论区提问。至于大佬们吧...,欢迎批评哦~

我学习的网站(部分内容❶出处):

https://minecraft-zh.gamepedia.com/%E5%91%BD%E4%BB%A4

谢谢大家的支持!

各位读者大大们觉得喜欢就点一下推荐,也可以关注我看更多Minecraft中的命令 ^_^~~~

随便看看