逗游網(wǎng):值得大家信賴的游戲下載站!
發(fā)布時間:2014-02-26 來源:互聯(lián)網(wǎng)
我的世界里面對于命令方塊的使用是游戲一大難點之一,很多時候命令方塊可以簡化玩家的建造流程,不過對玩家的代碼知識要求比較高,下面是命令方塊實現(xiàn)探測玩家背包的方法。
探測玩家背包物品的方法
教大家如何在MC1.8里探測玩家背包的物品。
有2個做法:一個是用/clear,另一個是用/testfor。用testfor做更加高級,不過1.8更新后/clear也可以探測NBT什么,所以2個方法都可以。這個東西可以放在冒險地圖里面。
首先是clear。自從1.8更新后,clear的格式改變了?,F(xiàn)在可以自定義清空數(shù)量和物品NBT了?,F(xiàn)在的指令格式:
/clear <玩家> <物品> [數(shù)據(jù)] [數(shù)量] [dataTag]
/clear我就不詳細多說了,這條指令在很早就有了,不過以前一直沒法清空自定義數(shù)量,自定義NBT等。給大家舉個例子:如果要清空玩家背包里的一個叫“Test”的石劍:
那么指令就是:
clear @a minecraft:stone_sword 0 1 {display:{Name:"Test"}}
大家看見,指令里的1就是數(shù)量,后面的{display:{Name:"Test"}}意思就是石劍的NBT,也就是擁有自定義名字為“Test”的石劍。所以,當大家按下按鈕后,如果背包里沒有叫Test的石劍,那就是指令無效,不會給出輸出。有的話就會情空掉一個石劍,然后給出輸出。如果是要單純物品探測的話,那請自行把數(shù)量改成0,然后后面用比較器進行輸出。/clear比較基礎我就不多深入講解了。
之后就是/testfor指令了。1.8又更新了點NBT,讓/testfor更強大了。用testfor的好處就是可以自定義物品欄等等,還可以探測玩家已經(jīng)選中的物品欄。指令:
/testfor @p {Inventory:[{Slot:0b,id:minecraft:stone_sword,Damage:0s,Count:1b,tag:{display:{Name:"Test"}}}]}
大家看見,這條指令還是探測剛才的一個叫“Test”的石劍。不過這次更加高級。NBT講解:
Inventory:探測玩家倉庫背包。/testfor用的,如果要探測玩家背包一定要加入這個NBT。
Slot:玩家物品的槽位。這行可選可不選。帖子下面會詳細講解槽位,單位是b。(數(shù)字后面一定要打b,比如:1b,0b等等)
id:探測目標物品的id。本人這里打的是minecraft:stone_sword,也就是石劍的ID。大家自行修改。
Damage:數(shù)據(jù)。這行默認為0,數(shù)據(jù)用來分辨多個相同物品。比如:多彩色的羊毛。單位是s,一定要加。
Count:數(shù)量。單位是b,一定要加入。這個好像只對可疊加物品起效,比如有5個疊加的羊毛,就可以探測得到。5把石劍的話,如果不是疊加在一起,那就無發(fā)探測,導致輸出失敗。
tag:這個我就不多說了,基礎的NBT鏈接NBT。這個很多指令都可以用:summon,setblock等等。后面括號里的就是另外的NBT,控制石劍本身,而不和/testfor搞混。
(本教程不會加入探測玩家選中槽位教程。上次已經(jīng)發(fā)過一個了(SelectedItemSlot),有興趣的點擊這里查看)
之后來說下背包槽位。大家知道,當打開背包后有很多很多槽位可以放物品。而/testfor探測背包有一項是可以探測玩家放入物品的槽位的。這個最大的用處就是可以探測玩家穿著什么裝備什么。槽位的控制圖:
大家看見,0就是玩家選中的第一個槽位。之后100就是鞋子,101就是褲子,到103就是頭盔。合成物品的是80,81,82和83。其他就不多說了,大家可以自己研究。玩家選中的槽位就是0-8。
Slot講解。大家看見指令里的是0b,也就是玩家第一個手拿的物品。(詳情看玩家背包槽位分布圖)。所以,Slot后面填寫的就是0b-8b,這個探測不一定要是玩家選中了這個槽位,而是只要這個槽位里有達到要求的物品就可以了。配合SelectedItemSlot的話可以達到更好的效果。