天才一秒记住【第一中文网】地址: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=
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!