如何應用TESTFOR指令輸出的結果?
運用testfor指令檢測玩家物品欄中是否有一定的物品
/testfor @p {Inventory
[{Slot:0b,id:minecraft:stick,Damage:0s,Count:1b,tag:{display:{Name:"123"}}}}]}
@p就是最近玩家
Inventory是背包
Slot是指玩家槽位,單位是b,可選可不選
id就是物品的id,不用多說
Damage默認為0,用來檢測如彩色的羊毛,相當于辨別多個相同物體
tag就是一個連接符,用來連接一個NBT與另一個NBT。如這個木棍有“123”這個名字,想同樣檢測到這個名字,或者其他屬性,就用tag連接。如有附魔屬性就了連接ench,有注釋就連接lore等
接著關于testfor的紅石電路,可自行查閱
接著說scoreboard
掌握了testfor的紅石電路后,連接有scoreboard的命令方塊
設置變量:
首先要設置一個變量,就是要給玩家加分要先選定這個變量,接著選定玩家,予以加分
/scoreboard objectives add test dummy
dummy指變量,test就是設置的那個變量,可以改名
/scoreboard objectives add Test1 deathCount
就是給test1這個變量設置一個判據,為deathcount即死亡次數
關于判據的相關信息可自行查閱
加分
好,那么設置完了變量和判據,就該設置玩家加分項了
如
/scoreboard players add @p Test 1
players add指加分
@p指最近的玩家
test指設置的變量,比如剛剛設置了變量test,那就給這個變量的玩家分數予以改變
1就是加一分
如果把players add改成set和remove,則代表設置分數和減去分數
好,接著設置指令以讓玩家知道自己的分數
/scoreboard objectives setdisplay sidebat Test
setdisplay是顯示分數
sidebat是旁邊,也可以設在上面
test是剛剛設置的變量
接著說檢測分數
如果一個玩家的分數到了20分,那他就贏了,該如何設置呢
/tellraw @a[score_Test_min=20] [{"text":"你贏了"}]
就是檢測變量為test的玩家分數到了20,他就贏了。
tellraw是指令,用來在對話框顯示文字
@a是所有玩家
text可以隨意修改,保持格式即可
想要做這個指令,一定要做一個紅石脈沖,那“你贏了”也就會一直顯示
所以要重置一下分數
/scoreboard players set @a[score_Test_min=20] Test 0
就是當有個玩家分數到達20時將分數設為0,即重置。你也可以設置不同的玩家不同的分數,不同的變量不同的分數
然后可以設置一個傳送,tp所有玩家至大廳或任何地方
總結一下,在我的世界做一個地圖是很不容易的。別看那些紅石命令大神做出來的地圖怎么怎么好,一張圖至少幾百個命令方塊,幾千條指令,還要考慮紅石電路,命令變量等等...如果是新手不建議做那些很高能的地圖。做出來了也不一定做好...
(純手打,除指令外沒有任何復制粘貼。如果對你有幫助請采納)