天才一秒记住【第一中文网】地址:www.dyzww.cc
slot.enderchest}
这将会选取所有在其末影箱内没有泥土的实体。需要注意,对于玩家来说,默认是不会检测到末影箱的。也就是说,如果你在末影箱内放了一块泥土,那么{item=dirt,quantity=0}这个条件还是会选择到你,但{item=dirt,quantity=0,location=slot.enderchest}这个条件则不会。另外,即使是对于没有末影箱的非玩家实体,游戏仍然会假装其具有末影箱,然后又因为游戏假装出来的末影箱内没有泥土,导致上述条件也会选择到非玩家实体。
在使用location参数时,还可以更进一步使用slot参数来缩小检测范围到指定的栏位。比如:
{item=dirt,quantity=1..,location=slot.enderchest,slot=0}
这将会选取到所有在其末影箱左上角第一格内放有泥土的玩家。和quantity一样,这参数同样也支持升级后的『两点法』:
{item=dirt,quantity=1..,location=slot.enderchest,slot=1..}
\\\\选取到所有在其末影箱内除了左上角第一格外其他位置放有泥土的玩家\\\\
{item=dirt,quantity=1..,location=slot.enderchest,slot=!0}
\\\\同上\\\\
上面这些都是一个条件内可以弄的参数,hasitem参数的值也确实可以直接放入单个条件:
\/testfor @a[hasitem={item=dirt,quantity=1..,location=slot.enderchest,slot=!0}]
但是如果要多个条件呢?这时候就需要用到列表:
@a[hasitem=[{item=dirt},{item=apple}]]
这将会选择到背包内同时具有泥土和苹果的玩家。
不难发现,在多个条件组成的列表中,每个条件也是使用逗号分开,列表最外侧被中括号([])包起来。
这就是hasitem参数的具体使用方法,其中部分内容超纲了一些,但总体上还是易于理解的。
——Nbt——
——进度——
——谓词——
上面这三个均为Java版独有,且我们还未接触到,暂时先留个坑,以后再填。
附录:目标选择器发展历史
Java
1.4.2——加入目标选择器,最初只有@a、@r、@p三个变量
1.8——加入了@e变量和dx、dy、dz参数
1.9——m参数现在接受游戏模式全称和缩写,在此版本之前只支持数字Id。并加入了tag参数。
1.11——移除了隐含目标选择器(如@a[26,65,-28],代表@a[x=26,y=65,z=-28]),并且错误的目标选择器不再略过,而是会报错。
1.12——加入了@s变量
1.13——加入了Nbt和进度advancements参数,并对原本的参数进行大改
1.15——加入了谓词predicate
基岩版
1.16.100——加入了family参数
1.17.10——加入@initiator变量用于Npc
1.18.
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!