网易我的世界1.12.2 testfor指令检测背包内物品

/testfor @p[r=3] {Inventory:[{id:bedrock]}
结果显示的是与要求的数据结构不匹配
而我包里物品栏里已经塞满了基岩

在物品名称前加上minecraft,并且把ID后面的物品名称需要扩上引号。比如testfor @p[r=3]{Inventory:[{id:"minecraft:bedrock"}]}。

检测玩家手持物品,就需要用到参数SelectedItem,代码指令为testfor @a {SelectedItem:{id:minecraft:cactus}}。

游戏内容

介绍

玩家们可以自由选择游戏模式 [生存、创造、冒险、极限 (仅Java版) 和旁观模式(仅Java版) ]。在各种模式中体验不一样的有趣玩法,在生存模式中享受打怪、冒险等多种乐趣,在创造模式下享受当创世神的乐趣。

该游戏以玩家在三维空间中自由地创造和破坏不同种类的方块为主题。玩家在游戏中可以在单人或多人模式中通过摧毁或创造精妙绝伦的建筑物和艺术,或者收集物品探索地图以完成游戏的成就(进度)。玩家也可以尝试红石电路和指令等玩法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-19

第一,testfor是不支撑对玩家利用NBT标签的,其次,Minecraft基岩版现在还不支撑利用NBT标签,这儿存在着一些技能妨碍,请等候后续更新。在物品称号前加上minecraft,而且把ID后边的物品称号需求扩上引号,1.12好像是有必要得有引号才干辨认,我也是刚发现的。

testfor是检测,Inventory 检测背包必要指令,Slot:0b 就是只检测物品栏的第一关有没有指定物品,0就是第一格,代号是b,id 就是要检测的物品的名称,Damage 数量,写2就是要两把才能激活,可惜对不能叠加数量的物品你只能写1,Count 没什么用。

本回答被网友采纳
第2个回答  2018-03-14
首先,testfor是不支持对玩家使用NBT标签的,其次,Minecraft基岩版目前还不支持使用NBT标签,这里存在着一些技术障碍,请等待后续更新。追问

也就是说无法检测玩家背包里是否有某项物品?
我的本意是做一个自定义书做通行证

追答

您可以制作一个容器让玩家放入通行证,然后在另一个一模一样的容器中放入通行证,通过testforblocks进行对比。

追问

很新奇的思路,多谢

本回答被提问者采纳
第3个回答  2018-08-29
testfor @p[r=3]{Inventory:[{id:"minecraft:bedrock"}]}
在物品名称前加上minecraft,并且把ID后面的物品名称需要扩上引号,1.12好像是必须得有引号才能识别,我也是刚发现的
第4个回答  2020-08-09
/testfor @p[r=3] {Inventory:[{id:bedrock]}
改成
/testfor @p[r=3] {Inventory:[{id:bedrock}]}
应该就行了
相似回答