1.12.2的我算是会点,可是1.14.4就不明白了,最近才开始用1.14.4做地图,指令还不算熟悉。
/execute if data entity @s Inventory[{Slot:-106b}]
若副手存在物品则会执行成功
/execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:command_block"}]
若副手存在命令方块则会执行成功
/execute if data entity @s Inventory[{Slot:-106b}].tag.xradar
若副手存在nbt标签为xradar的物品(比如从下面指令获取的物品)则会执行成功
/give @s stone{xradar:1b} 1
若副手存在物品则会执行成功
/execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:command_block"}]
若副手存在命令方块则会执行成功
/execute if data entity @s Inventory[{Slot:-106b}].tag.xradar
若副手存在nbt标签为xradar的物品(比如从下面指令获取的物品)则会执行成功
/give @s stone{xradar:1b} 1
- execute as @a[nbt={Inventory:[{id:"minecraft:poppy",Slot:-106b}]}] run say Nobody loves poppy
检测副手拿着虞美人的玩家
晴路卡 发表于 2020-7-23 18:02
检测副手拿着虞美人的玩家
如果要侦测一个tag为A的道具应该怎么写这个代码,1l那个侦测tag我用着不管用
 本帖最后由 CR_019 于 2020-7-24 10:23 编辑 
so,tag是指:
1、/give @s diamond_sword{bar:1b},那么此物品在玩家副手里时会储存为{Slot:-106b,id:"minecraft:diamond_sword",tag:{bar:1b}}2、在实体里面有tag标签,在实体的nbt内被储存为Tags:["A"],由于物品里的nbt可以随便填,所以也可以把这种形式放在物品标签里面。那么这样的话就是/give @s diamond_sword{Tags:["A"]},储存为{Slot:-106b,id:"minecraft:diamond_sword",tag:{Tags:["A"]}}。
以上都是废话。所以你为什么不把你想要的东西放在副手,运行一遍data get @s Inventory[{Slot:-106b}],然后把返回的值发上来看看呢,我们不知道你想要侦测的是什么物品。
↓不跟你们抢生意
so,tag是指:
1、/give @s diamond_sword{bar:1b},那么此物品在玩家副手里时会储存为{Slot:-106b,id:"minecraft:diamond_sword",tag:{bar:1b}}2、在实体里面有tag标签,在实体的nbt内被储存为Tags:["A"],由于物品里的nbt可以随便填,所以也可以把这种形式放在物品标签里面。那么这样的话就是/give @s diamond_sword{Tags:["A"]},储存为{Slot:-106b,id:"minecraft:diamond_sword",tag:{Tags:["A"]}}。
以上都是废话。所以你为什么不把你想要的东西放在副手,运行一遍data get @s Inventory[{Slot:-106b}],然后把返回的值发上来看看呢,我们不知道你想要侦测的是什么物品。
↓不跟你们抢生意
晴路卡 发表于 2020-7-23 18:02
检测副手拿着虞美人的玩家
就是物品标签
CR_019 发表于 2020-7-24 09:44
so,tag是指:
1、/give @s diamond_sword{bar:1b},那么此物品在玩家副手里时会储存为{Slot:-106b,id:"mine ...
没有与inventory:相匹配的元素
CR_019 发表于 2020-7-24 09:44
so,tag是指:
1、/give @s diamond_sword{bar:1b},那么此物品在玩家副手里时会储存为{Slot:-106b,id:"mine ...
 
 
 
 本帖最后由 CR_019 于 2020-7-24 22:38 编辑 
没人回答可太惨了
检测方法在上面大佬已经写了,用execute if指令。
玩家物品数据存在Inventory标签下,每一个物品为这个列表里的一项,由四个标签构成:Slot,id,Count,tag
Slot表示在物品栏的位置,副手为-106;
id表示原版物品名称,比如钻石剑为"minecarft:diamond_sword";
Count表示物品数量;
其他的一切标签,都是存在tag里的,比如自定义的物品名称、描述,附魔,属性修饰符,自定义模型数据等等。
你用give指令,大括号里的内容也是存在tag里的。
tag标签也可以用来辅助判断,但是物品的tag标签和CBcreater里的“物品标签”是不一样的。tag里面是数据标签,由“键:值”这样的形式构成。比如:
所以你要检测什么标签,就把它放到侦测指令的nbt一项里面,和id,Slot并列。
例子:execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:diamond_sword",Count:1b,tag:{foo:1b}}] run 自己副手有foo:1b这个标签的钻石剑,执行指令;execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:diamond_sword",Count:1b,tag:{Tags:["A"]}}]你要的:“物品标签”为A的钻石剑
具体的标签,就在你dataget到的标签里面选一个。
把最佳给上面的大佬,不要给我
没人回答可太惨了
检测方法在上面大佬已经写了,用execute if指令。
玩家物品数据存在Inventory标签下,每一个物品为这个列表里的一项,由四个标签构成:Slot,id,Count,tag
Slot表示在物品栏的位置,副手为-106;
id表示原版物品名称,比如钻石剑为"minecarft:diamond_sword";
Count表示物品数量;
其他的一切标签,都是存在tag里的,比如自定义的物品名称、描述,附魔,属性修饰符,自定义模型数据等等。
你用give指令,大括号里的内容也是存在tag里的。
tag标签也可以用来辅助判断,但是物品的tag标签和CBcreater里的“物品标签”是不一样的。tag里面是数据标签,由“键:值”这样的形式构成。比如:
所以你要检测什么标签,就把它放到侦测指令的nbt一项里面,和id,Slot并列。
例子:execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:diamond_sword",Count:1b,tag:{foo:1b}}] run 自己副手有foo:1b这个标签的钻石剑,执行指令;execute if data entity @s Inventory[{Slot:-106b,id:"minecraft:diamond_sword",Count:1b,tag:{Tags:["A"]}}]你要的:“物品标签”为A的钻石剑
具体的标签,就在你dataget到的标签里面选一个。
把最佳给上面的大佬,不要给我