这条指令可以杀死所有面向正北的玩家(神奇的是这并不会框选住所有活着的玩家,@a[ry=180,rym=179]才会框选住几乎所有活着的玩家)
至于x_rotation和y_rotation参数,你应该知道怎么用了吧?
@a[x_rotation=35..]——所有头水平线朝下35°及以上的玩家
@a[x_rotation=..35]——所有头没有水平线朝下35°以上的玩家
@a[x_rotation=0..35]——所有头水平线朝下0到35°(含)的玩家
@a[x_rotation=35]——所有头水平线朝下35°的玩家
@a[y_rotation =60..]——所有朝向是在南偏西60°顺时针到正北这个范围内的玩家
@a[y_rotation =..60]——所有朝向是在南偏西60°逆时针到正北这个范围内的玩家
@a[y_rotation =60..120]——所有朝向是在南偏西60°顺时针到北偏西60°这个范围内的玩家
@a[y_rotation =60]——所有朝着南偏西60°的玩家
——实体类型——
实体类型是type,上面我们已经见过了。
type和name本质上是差不多的,但是它筛选不是通过名字,而是通过实体种类。
什么是实体种类?比如一个玩家叫Notch,另一个玩家叫Herobrine,虽然名字不同,但他们都是『玩家』种类的。又比如这里有一只马,那里有一只叫马的驴,虽然它们都叫马,但前者是马,后者是驴,并不是一个种类的。
type可以选定指定类型的实体,比如:
/kill @e[type=minecraft:villager]
就可以杀死全部已生成的村民。
type一般来说仅用于@e,因为只有@e是包含非玩家实体的。在Java1.13以下和基岩版中,你也可以用在@r中来随机选择特定类型的实体。
和name一样,type也支持感叹号反转:
/kill @e[type=!player]
这条指令的作用是:杀死所有非玩家实体。
需要注意的是,name和type这两个参数在非感叹号反转的情况下都是不可重叠的,比如:
@e[type=cow,type=player]
像上面那样是不可以的,Minecraft中可没有既是牛又是玩家的动物。如果真有,那么也应该合并成为一个新的实体,也许会叫作cow_player(牛人)呢。
——实体家族——
我们知道通过type可以选取特定类型的实体。但如果我们要选取一堆不同类型的实体用于执行同一种指令呢?
记分板、NBT和标签可以很好的解决这个问题。但在了解这三个东西之前,我们暂且没有除多弄命令方块以外的更好的办法。
Mojang估计看我们这么可怜,于是在基岩版1.16.100中,加入了family参数。
family参数和type参数差不多,只不过它是通过实体家族筛选的。
什么是实体家族?
举个例子:
僵尸知道吧?僵尸一般来说有三类变种:
尸壳、僵尸村民、溺尸
虽然它们客观上并不属于同一种实体,但主观上我们仍然会将它们归类到一个大类:僵尸类。
用Mojang的说法,它们都是属于同一个族(family)的。
现在你应该知道实体家族到底是什么了吧?
举个例子:
/tp @e[family=creeper]@s
这条指令的作用是:将所有属于苦力怕家族的实体传送到自己身旁。
当然,你也可以使用感叹号将作用反转。需要注意,和type、name参数不同的是,family参数在非反转情况下也是可以叠加使用的,因为有些实体可能会属于多个族。
你可以在Minecraft Wiki上搜索『族』词条来查看原版所有可用的实体家族。
——物品——
我们知道,在Java版中,如果要筛选具有指定物品的实体,可以使用NBT或/clear。那在基岩版中该怎么办?使用/replaceitem或/clear吗?
这的确是两种可行的方法,但Mojang还给了我们第三个方法:
hasitem目标选择器参数
这个参数可能会比较复杂,因此在了解这个参数之前,我们得先了解一下:背包中的物品
背包具有很多个物品栏,每个物品栏具有多个栏位,栏位储存着物品。因此,每个放在背包中的物品都具有栏位标签。物品有很多个种类,因此,物品还具有id标签。大部分类型的物品可以堆叠,因此,物品还具有数量标签。在Java1.13以下版本和基岩版中,同id的物品也可能不同,因此,物品在这些版本中还具有数据值标签。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!