第27章更加精确的目标选择器上
我相信,玩基岩版的各位,在输入目标选择器后,都会出现一个符号那就是“[”。java版的各位就没有了。
为什么呢?其实,目标选择器真实的格式是这样的:
[目标选择器]
<目标大类或玩家名>[深入筛选方式]
没错,其实目标选择器的真实格式是这样的。其实可以通过一些细节来筛选目标。
那么到底有多少种筛选方式呢?答:到目前为止(2020-1-9),java版有16种的筛选大类,20种筛选方式;基岩版有12种筛选大类,20种筛选方式。
那么到底是什么呢?我先总体的列出来:
坐标——x、y、z
距离(一个球体)——distance(java版),r、rm(基岩版)
选取范围的长、宽、高(一个长方体)——dx、dy、dz
记分板分数——scores
记分板标签——tag
队伍名称(java版独有)——team
选取数量——limit、sort(仅java版),c(仅基岩版)
经验等级——level(仅java版),l、lm(仅基岩版)
游戏模式——gamemode(仅java版),m(仅基岩版)
目标名称——name
垂直旋转角度(头以x或z轴的角度)——x_rotation(仅java版),rx、rxm(仅基岩版)
水平旋转角度(身体以y轴的角度)——y_rotation(仅java版),ry、rym(仅基岩版)
实体类型——type
实体的数据标签(java版独有)——nbt
游戏进度(java版独有)——advancements
predicate(java版独有)——predicate
是不是看起来很复杂?其实的确有点复杂,但我们得先看看格式:
(注意,接下来的“[]”都不属于格式的符号,属于必填符号,“<>”符号仍是格式符号)
[<方式>=<值>,<方式>=<值>,…]
看懂了没有?如果没看懂,我这里讲一下。
这是一个大概的格式,其中如果只有一种方式,就是像下面这样填:
[<方式>=<值>]
但是如果是n个,那么就得像刚才的“[<方式>=<值>,<方式>=<值>,…]”一样了,以“,”(英文逗号)作为分隔号。
现在详细的讲讲各种方式。
(坐标)
这个很熟悉吧,就是坐标而已。“x”就是x轴,“y”就是y轴,“z”就是z轴。
那么举个栗子:
@e[x=1,y=60,z=30]
这个意思是选取在x=1,y=60,z=30的全部实体为目标。要注意一点,这里的坐标都必须是绝对坐标。
(距离)
以“距离”选择实体,java版和基岩版各不相同。java版是以distance选择的,而基岩版是r和rm。
先举个java版的例子:
@a[distance=5]
这条指令的意思是:选取所有距离执行源5格的玩家作为目标。注意,仅仅是距离5格,远一格或近一格都是不行的。
但其实一共有四种选择方式,上面的只是一种而已。而接下来的三种分别是:
@a[distance=5..10]——选择所有距离执行源5格到10格的玩家作为目标。
@a[distance=..5]——选择所有距离执行源的格数小于5的玩家作为目标。
@a[distance=5..]——选择所有距离执行源的格数大于5的玩家作为目标。
懂了没?这已经很详细了。
然后是基岩版的例子。首先是r:
@p[r=5]
基岩版的很简单。这条指令的意思就是:选取距离执行源小于5格最靠近执行源的玩家。
其实基岩版就是拆散了distance,变成了r和rm。所以如果是rm的话: