偵測玩家手持物品

手持物品偵測拆成兩個部分
1.偵測玩家選定的欄位
例子:
玩家選擇第1格時回傳訊號
/testfor @p {SelectedItemSlot:0}
SelectedItemSlot可填0-8,對應道具欄的九個格子

2.偵測某欄位是什麼物品
例子:
偵測玩家道具欄第3格是否為鐵劍
/testfor @p {Inventory:[{Slot:2b,id:minecraft:iron_sword}]}
使用tag:Inventory 
參數: 
1.Slot:對應物品欄編號,單位為b(詳細編號看此) 
2.id:必須使用物品名稱mincraft:XXXX,不可用ID 
3.Damage:區分同ID但不同類的道具,例如異色羊毛 
4.Count:物品數量 
5.tag:這邊可填入物品TAG,請看後續範例


結合1,2,先偵測玩家選到第1格,再偵測第1格是否為鐵劍 
就可得知玩家是否拿著第1格的鐵劍
例子:
偵測玩家是否拿著物品欄第1格的鐵劍
/testfor @p {SelectedItemSlot:0,Inventory:[{Slot:0b,id:minecraft:iron_sword}]}

如果只要偵測玩家拿著鐵劍,不管鐵劍放哪一格都要偵測出來,同時偵測0-8九個位置即可 
例子:
/testfor @p {SelectedItemSlot:0,Inventory:[{Slot:0b,id:minecraft:iron_sword}]}
/testfor @p {SelectedItemSlot:1,Inventory:[{Slot:1b,id:minecraft:iron_sword}]}
/testfor @p {SelectedItemSlot:2,Inventory:[{Slot:2b,id:minecraft:iron_sword}]}
…
/testfor @p {SelectedItemSlot:8,Inventory:[{Slot:8b,id:minecraft:iron_sword}]}
更多例子:
偵測玩家是否拿著鐵劍[hello_sword]
/testfor @p {SelectedItemSlot:0,Inventory:[{Slot:0b,id:minecraft:iron_sword,tag:{display:{Name:"hello_sword"}}}]}
偵測自定義物品只要把物品tag放在tag裡面即可

留言

熱門文章