【我的世界命令教程】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中的命令 ^_^~~~ |
[编辑:叶子猪小秘书] 本资讯及文章仅代表发表厂商及作者观点,不代表叶子猪本身观点!



