首先 以下内容来自Minecraft Wiki网页链接
目标选择器参数
目标选择器参数汇总
通过坐标
参数
选择标准
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=13]表示距离在1格与3格之间的实体。
通过体积尺寸选择目标
[dx=DX,dy=DY,dz=DZ]
只选择位于一定长方体区域内部的目标,体积定义为从基准点开始,向“x”方向(东/西方)延伸DX格,向“y”方向(上/下方)延伸DY格,并向“z”方向(北/南方)延伸DZ格。基准位置为命令执行所在方格的西北下角(即x、y、z坐标向下取整)处。(dx 、dy和dz用来指定与坐标的距离;它们不是指定一个新的坐标。)
以碰撞箱计算,与区域重叠者均会被选择。
玩家可以结合通过半径和通过体积选择目标,此时只考虑二者重叠的区域。(从西北下角算起在一定的半径以内,且不超过定义的体积。)
通过分数选择目标
记分板使用scores标签,后面接用大括号括起来的分数条件(也是一系列用逗号隔开键值对)。例如,@a[scores={point=3039}]将选择记分项points的分数的不低于30,且不高于39的目标。
scores={myscore=10} — 选择分数myscore等于10的实体。
scores={myscore=1012}} — 选择分数myscore在10与12之间的实体。
scores={myscore=5}} — 选择分数myscore大于或等于5的实体。
scores={myscore=15}} — 选择分数myscore不超过15的实体。
scores={foo=10,bar=15}} — 选择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只爬行者。
当输入的值为负值时,目标的顺序会被反转[到112为止]。举例来说,@p[c=-3] 会回传3个最远的目标,而且,如果所有目标距离都一样远,@e[c=-3] 会选择3个刚加载/生成的目标。
sort参数可以对实体进行排序,排在前的有限数量个实体入选。
sort=nearest表示最近的实体。@a[sort=nearest,limit=1]相当于@p。
sort=furthest表示最远的实体。比如@a[sort=furthest,limit=3]相当于113之前的@p[c=-3]。
sort=random表示随机排序。@a[sort=random,limit=1]相当于@r。
sort=arbitrary是@a和@e的默认排序方式。
通过经验等级选择目标
[仅Java版]
此参数自动剔除所有非玩家目标。
level=10表示10级的玩家。
level=1012表示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的目标。
从113开始,NAME可以用双引号括起来,因此支持含有空格的名字。
通过垂直旋转选择目标
垂直旋转角度从270面对正上方,降低至将近水平时角度升至359,刚好水平时为0,再到900面对正下方(因此垂直旋转值增加时会旋转向下)。
通过水平旋转选择目标
水平旋转值从-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一起使用时,原本用来选择玩家的命令也可以被用来选择其它实体。
通过实体数据选择目标
从113开始,实体选择器支持nbt参数,取代/scoreboard和/testfor中的“数据”参数。该参数的值为NBT格式,不支持反选。比如,@e[nbt={OnGround:1b}]表示所有在地面上(不是在半空中)的实体,@e[type=creeper,nbt={powered:1b}]表示所有高压爬行者。(表示数字类型的字母可以省略,上述实例中的1b可直接用1表示。
通过进度选择目标
从113开始,实体选择器支持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文件中查阅。
▍有那些发布文章的平台?泛媒体平台
1微信公众平台>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)