第一中文网

第二十六章 更加精确的目标选择器 下 (第5/7页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

hasitem目标选择器参数

这个参数可能会比较复杂,因此在了解这个参数之前,我们得先了解一下:背包中的物品

背包具有很多个物品栏,每个物品栏具有多个栏位,栏位储存着物品。因此,每个放在背包中的物品都具有栏位标签。物品有很多个种类,因此,物品还具有id标签。大部分类型的物品可以堆叠,因此,物品还具有数量标签。在Java1.13以下版本和基岩版中,同id的物品也可能不同,因此,物品在这些版本中还具有数据值标签。

hasitem参数可以用来选取具有指定物品的实体。更准确一点来说,hasitem参数可以通过检测已选实体的背包中指定条件下的物品,来筛选实体。

hasitem参数的值比较特别,它的值可以是单个条件,也可以是由多个条件组成的条件列表。让我们来看看hasitem参数的一个条件项目到底可以指定哪些东西。

一个条件项目可以检测单个类型的物品,具体来说可以指定以下的参数:

item——物品id

data——物品的数据值[可选]

quantity——限制所选范围内物品的总数量[可选]

location——需要检测的物品栏[可选]

slot——需要检测的槽位[可选,必须配合location参数使用]

比如:

{item=bed,data=1}

这个条件可以筛选背包内具有橙色床的实体。不难发现,单个条件可以具有多个不同的筛选参数,并且外面要使用花括号({})包裹起来。

需要注意的是,data参数目前有个bUG,就是不能适用于方块类物品。如果你对一个方块类物品使用了data参数,那么不管你怎么改data的值,游戏总会认为该参数的值为0。怎么判断一个物品是不是方块类的呢?看物品的图标。如果图标是直接给出了方块的3d图像(也就是渲染图),比如羊毛,那就是方块类物品。像是床这种图标是专门画的就不是方块类物品,所以能够正常使用data参数。

quantity参数得好好讲一讲,它并不是说检测单个栏位内物品的数量,而是检测整个范围内的指定类型物品数量总和。比如:

{item=dirt,quantity=100..}

这个条件可以选择到那些背包内泥土数量达到甚至超过100块的实体。也就是说,假设这里有一个张三,背包内有两组泥土,那么这个条件就可以选择到它。

不难发现,quantity的值简直是基岩版的一股清流,竟然向Java1.13及以上的版本学习,采用了Java版先进的『两点法』,不错不错,值得表扬。而且,这参数还在Java版的基础上改造了一下,变成了还可以使用不等号进行反选:

{item=dirt,quantity=!100..}

这将会选取拥有泥土数量<100的实体。

对了,如果你指定了这个参数为0,那就可以选择『没有指定物品的实体』:

{item=dirt,quantity=0}

这将会选取背包内没有泥土的实体。

location参数可以缩小检测的范围到指定的物品栏。具体可以使用哪些物品栏以及这里的物品栏是个啥东西.....这就需要你前往第三十八章了解\/replaceitem指令。

这里就先假装你已经搞懂了这些内容。举个例子:

{item=dirt,quantity=0,location=

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办