怎么检测区域内玩家是否携带一样物品 然后执行指令
指令是:/testfor @a {SelectedItem:{id:minecraft:stone_sword,Count:1,Damage:0,tag:{display:{Name:"Test"}}}},如果要检测玩家手上的物品的话必须要打上 Selectedltem,然后id 是要检测的物品的id,stone_sword 顾名思义就是石剑,Count 就是数量,写2就是要拿两把才能检测的到,对不能叠加数量的物品你只能写1,Damage,一个数值,并没有什么用,然后name就是名字
本帖最后由 ⊙u⊙ 于 2019-5-18 18:29 编辑
复制代码当玩家进入x=-3~2, y=4, z=15~20这个范围时,若背包里有任何至少一件物品拥有single这个自定义标签,say hi
这个是给予物品此标签的方法...
复制代码
特意这么写的。
其一,一般用到自定义tag的时也不会太在意后面的值。当然需要检查值的话后面的当我没说。
其二,检查路径略比检查nbt是否匹配要快。特意用if data可不是没有理由的...
其三,... @SPGoding
- execute as @a[x=-3,y=4,z=15,dx=5,dy=0,dz=5] if data entity @s Inventory[].tag.single run say hi
这个是给予物品此标签的方法...
- /give @s minecraft:command_block{single:1b}
特意这么写的。
其一,一般用到自定义tag的时也不会太在意后面的值。当然需要检查值的话后面的当我没说。
其二,检查路径略比检查nbt是否匹配要快。特意用if data可不是没有理由的...
其三,... @SPGoding
execute as @a[distance=..10,nbt={Inventory:[{id:"minecraft:diamond_sword",tag:{xxx:1b}}]}] run kill @s
SPGoding 发表于 2019-5-19 11:13
execute as @a[distance=..10,nbt={Inventory:[{id:"minecraft:diamond_sword",tag:{xxx:1b}}]}] run kill ...
无法找到实体AS
SPGoding 发表于 2019-5-19 11:39
那你就是 1.12 及以前的版本,下次提问记得说一下。
/scoreboard players tag @a add matched {Inventory ...
怎么设置一个区域呢
本帖最后由 最亮的信标 于 2019-5-19 20:48 编辑
在第一个指令的@a后增加目标选择器 如:@a[x=x1,y=y1,z=z1,dx=x2,dy=y2,dz=z2] 检测x1 y1 z1为一顶点,x2 y2 z2为另一顶点围成的区域内的玩家。如果是圆形区域 则为@a[x=x1,y=y1,z=z1,r=R] x1 y1 z1为圆心 R为半径(如果不填XYZ默认以命令方块做圆心)
9999999999999 发表于 2019-5-19 13:59
怎么设置一个区域呢
在第一个指令的@a后增加目标选择器 如:@a[x=x1,y=y1,z=z1,dx=x2,dy=y2,dz=z2] 检测x1 y1 z1为一顶点,x2 y2 z2为另一顶点围成的区域内的玩家。如果是圆形区域 则为@a[x=x1,y=y1,z=z1,r=R] x1 y1 z1为圆心 R为半径(如果不填XYZ默认以命令方块做圆心)