我的世界这些指令的意思和用法介绍

2024-07-19 12:40:37作者:饭克斯

首先以下内容来自MinecraftWiki网页链接

目标选择器参数

目标选择器参数汇总

通过坐标

参数

选择标准

x,y,z坐标

distance距离

dx,dy,dz体积尺寸

通过记分板参数

参数

选择标准

scores分数

tag记分板标签

team队伍名称

通过其它特性

参数

选择标准

limit数量

level经验等级(最高,最低)

gamemode游戏模式

name实体名称

x_rotation垂直旋转角度(最大,最小)

y_rotation水平旋转角度(最大,最小)

type实体类型

nbt实体数据

advancements进度

在使用目标选择器之后,你可以随意地使用参数来限定所要选择的群组。当使用@a或@e时,待选目标从全体筛选成特定的少数。当使用@p或@r时,待选目标根据距离远近或随机而从全体中产生。

在目标选择器变量之后附加键值对构成的逗号分隔表,并包含在方括号中:

@[=,=,…]

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

指定基准点

[x=X,y=Y,z=Z]—修改目标选择器选择的基准点(对选择顺序及部分选择参数有效,并且限制选择范围为执行的世界)。

默认以命令执行位置为基准点,可以只修改部分坐标。

坐标可以是整数或小数(具体为双精度浮点数)且必须明确——波浪号不可以用于此参数(基岩版除外)。

通过距离选择目标

distance参数可以限制目标与基准点的距离。比如[distance=..3]表示(与基准点的)距离在3格以内的实体(也就是半径为3的球形区域),[distance=3..]表示距离不小于3个的实体,[distance=1..3]表示距离在1格与3格之间的实体。

通过体积尺寸选择目标

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

只选择位于一定长方体区域内部的目标,体积定义为从基准点开始,向“x”方向(东/西方)延伸DX格,向“y”方向(上/下方)延伸DY格,并向“z”方向(北/南方)延伸DZ格。基准位置为命令执行所在方格的西北下角(即x、y、z坐标向下取整)处。(dx、dy和dz用来指定与坐标的距离;它们不是指定一个新的坐标。)

以碰撞箱计算,与区域重叠者均会被选择。

玩家可以结合通过半径和通过体积选择目标,此时只考虑二者重叠的区域。(从西北下角算起在一定的半径以内,且不超过定义的体积。)

通过分数选择目标

记分板使用scores标签,后面接用大括号括起来的分数条件(也是一系列用逗号隔开键值对)。例如@a[scores={point=30..39}]将选择记分项points的分数的不低于30,且不高于39的目标。

scores={myscore=10}—选择分数myscore等于10的实体。

scores={myscore=10..12}}—选择分数myscore在10与12之间的实体。

scores={myscore=5..}}—选择分数myscore大于或等于5的实体。

scores={myscore=..15}}—选择分数myscore不超过15的实体。

scores={foo=10,bar=1..5}}—选择foo分数等于10,且bar分数在1和5之间的实体。

另见:记分板§记分项

通过标签选择目标

[tag=某标签]—只选择记分板标签为“某标签”的目标。

[tag=!某标签]—只选择记分板标签不为“某标签”的目标。

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

[tag=!]—只选择拥有任意记分板标签的目标。

由于实体可以同时有多个标签,因此该参数可以多次使用,比如[tag=a,tag=b]表示选择既有标签a又有标签b的实体,[tag=a,tag=!b]表示选择有标签a且没有标签b的实体。

另见:记分板§标签命令

通过队伍选择目标

[team=某队伍]—只选择属于队伍“某队伍”的目标。

[team=!某队伍]—只选择不属队伍“某队伍”的目标。

[team=]—只选择不属任何队伍的目标。

[team=!]—只选择属于任意队伍的目标。

另见:记分板§队伍

通过数量选择目标

limit可以用来限制被选择的实体的数量。

当使用@p或@r变量时,此参数被预设为1,而更大的数值会增加回传的目标数量。当使用@a或@e变量时,此参数只会限制目标数量(默认选择所有目标)。

如果有多名距离最近的实体,距离完全相同,那么则会根据加载时间来选择。举例来说如果距离完全相同,@a[limit=1]会选择进入服务器时间最久的玩家而@e[type=creeper,limit=3]会选择最早加载(期间没卸载)的3只爬行者。

当输入的值为负值时,目标的顺序会被反转[到1.12为止]。举例来说@p[c=-3]会回传3个最远的目标,而且,如果所有目标距离都一样远,@e[c=-3]会选择3个刚加载/生成的目标。

sort参数可以对实体进行排序,排在前的有限数量个实体入选。

sort=nearest表示最近的实体。@a[sort=nearest,limit=1]相当于@p。

sort=furthest表示最远的实体。比如@a[sort=furthest,limit=3]相当于1.13之前的@p[c=-3]。

sort=random表示随机排序。@a[sort=random,limit=1]相当于@r。

sort=arbitrary是@a和@e的默认排序方式。

通过经验等级选择目标

[仅Java版]

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

level=10表示10级的玩家。

level=10..12表示10级与12级之间的玩家。

level=5..表示至少为5级的玩家。

level=..5表示不超过5级的玩家

通过游戏模式选择目标

[gamemode=模式]-只选择处于指定的游戏模式的玩家,比如@a[gamemode=survival]表示所有生存模式的玩家。

[game=!M]-只选择不处于指定的游戏模式的目标,比如@a[gamemode=!survival]表示所有不是生存模式的玩家。

M允许值为:

survival:生存模式

creative:创造模式

adventure:冒险模式

spectator:旁观模式

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

此参数支持多重反选,如@a[gamemode=!adventure,gamemode=!survival]表示既不是冒险模式又不是生存模式的玩家。

通过名称选择目标

[name=NAME]—只选择名字为NAME的目标。

[name=!NAME]—只选择名字不是NAME的目标。

从1.13开始,NAME可以用双引号括起来,因此支持含有空格的名字。

通过垂直旋转选择目标

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

通过水平旋转选择目标

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

通过实体类型选择目标

[type=TYPE]—只选择特定的实体类型的目标。

[type=!TYPE]—只选择不属于特定的实体类型的目标。

TYPE必须游戏内部用来判定不同种类实体的实体ID或标签(举例来说creeper指定爬行者,minecart指定普通矿车,tnt指定TNT等等)。实体ID必须区别大小写(可以省略minecraft命名空间),且无效的实体ID会造成命令失败。

type标签支持多重反选,如@e[type=!cow,type=!chicken]表示既不是牛又不是鸡的目标。多重正选是无效的。

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

通过实体数据选择目标

从1.13开始,实体选择器支持nbt参数,取代/scoreboard和/testfor中的“数据”参数。该参数的值为NBT格式,不支持反选。比如@e[nbt={OnGround:1b}]表示所有在地面上(不是在半空中)的实体,@e[type=creeper,nbt={powered:1b}]表示所有高压爬行者。(表示数字类型的字母可以省略,上述实例中的1b可直接用1表示。

通过进度选择目标

从1.13开始,实体选择器支持advancements参数,取代/advancement/test。advancements后接一组用中括号括起来的键值对,其中键为进度或条件的名称,值为true或false或键值对。

比如story/form_obsidian代表进度“冰桶挑战”,@a[advancements={story/form_obsidian=true}]表示已达成进度“冰桶挑战”的实体,@a[advancements={story/form_obsidian=false}]表示未达成进度“冰桶挑战”的玩家。(同样,当进度名称的命名空间为minecraft时,命名空间可以省去,上面的实例中,story/form_obsidian等价于minecraft:story/form_obsidian,下同。注意进度的条件是一个规定的字符串,它没有命名空间。)

也可以规定特定进度的条件。比如进度story/obtain_armor(“整装上阵”)有四个条件:iron_helmet、iron_chestplate、iron_leggings和iron_boots。@a[advancements={story/obtain_armor={iron_helmet=true}}]表示所有达成了进度“整装上阵”的iron_helmet条件的玩家,即装备过铁头盔(不一定是正在装备铁头盔的玩家,也不一定需要达成进度iron_helmet)。

有时一个进度只有一个条件,此时选择规定进度是否达成等价于规定其条件是否达成。比如进度story/follow_ender_eye“隔墙有眼”的唯一条件是in_stronghold,因此@a[advancements={story/follow_ender_eye=true}]等价于@a[advancements={story/follow_ender_eye={in_stronghold=true}}]

进度的条件的字符串可以在游戏主文件(.minecraft\versions\版本名.jar)中的data\minecraft\advancements中的代表各个进度的JSON文件中查阅。

展开全文

热门推荐

相关攻略