在製作地圖時需要一些觸發指令的裝置,讓玩家無需自己去輸入放置指令來觸發。本教學介紹幾種觸發指令的方式。
自訂指令類[]
trigger+scoreboard[]
使用trigger需要將計分板變數交給玩家使用,所以需要重複不斷地給予玩家變更計分板變數的權限。
- 第一步:計分板相關準備
- 建立計分板變數
/scoreboard objectives add <自訂變數名> trigger
。應當指出的是這裏的準則不是dummy而是trigger。 - 放置三個指令方塊,重複型指令方塊指向連鎖式指令方塊1,連鎖式指令方塊1指向連鎖式指令方塊2。
- 在重複型指令方塊中輸入
/scoreboard players enable (@p|@a) <自訂變數名>
,選擇器可以按需選擇。這條指令讓指定玩家能修改某個變數的值。 - 在連鎖式指令方塊1裡打上
/execute if entity @a[scores={<自訂變數名>=<數值>}] run <需要執行的指令>
。 - 最後,在連鎖式指令方塊2裡輸入
/scoreboard players set @a <自訂變數名> 0
。
- 第二步:使用與檢測
- 提示玩家輸入
/trigger <自訂變數名> set <數值>
。 - 輸入完畢後,
<需要执行的命令>
應該會自動執行。
主動互動類[]
clear+空白地圖[]
這種方法的原理是讓玩家打開空白地圖,然後高頻連接清空已繪製地圖的指令方塊,比較器連接並觸發電路,同時在電路中安排返還空白地圖的指令。但是存在局限性,所以一般用於一些小遊戲中。 相關指令:
雪球拋擲+scoreboard[]
- 輸入指令
/scoreboard objectives add <變數名> minecraft.used:minecraft.snowball
,即可統計雪球拋出的次數。 - 透過
/execute as @a[scores={<變數名>=1..}]
觸發電路,然後用scoreboard相關指令復原計分板值。
檢測方塊狀態[]
有些機關,透過檢測方塊狀態觸發指令。
- 檢測控制桿狀態:
/execute if block <x> <y> <z> lever[powered=true]
[僅Java版]或 /testforblock <x> <y> <z> lever <資料值>
[僅基岩版]。 - 在基岩版中,如檢測朝向z軸正向的控制桿,資料值填入11,則當控制桿被拉下,在外觀上看沒有電路,也能觸發機關。
- 檢測展示框的旋轉狀態也可以。詳見物品展示框。
告示牌點擊[]
這裏提供一份模板,使用到了JSON文字。
/setblock ~ ~1 ~ minecraft:oak_sign{Text1:'{"clickEvent":{"action":"run_command","value":"/say 1"},"text":"點擊執行"}',Text2:'{"clickEvent":{"action":"run_command","value":"/say 2"},"text":""}',Text3:'{"clickEvent":{"action":"run_command","value":"/say 3"},"text":""}',Text4:'{"clickEvent":{"action":"run_command","value":"/say 4"},"text":""}'}
注意:
minecraft:oak_sign
是立著的告示牌。要使用牆上的告示牌,請使用minecraft:oak_wall_sign
。- 也可以透過
/data merge block
修改告示牌內容。 - 由於告示牌的文字只有四行,且一個JSON文字中只能執行一條指令,所以一個告示牌最多只能執行4條指令。
被動探測類[]
漏斗低頻+範圍檢測到實體[]
搭建一個朝向連通的漏斗組,並在裏面放入物品,用比較器連通其中一個漏斗,就製作好了漏斗低頻。
在Java版中,使用/execute if entity @a[distance=..<距離>]
。在基岩版中,使用/execute @a[r=<距離>] ~ ~ ~
。檢測附近的玩家,即可實現一些被動觸發的機關。
善用紅石元件[]
陷阱儲物箱,絆線與絆線鈎都是用於機關設計的,善用他們可以省去很多搭建電路的麻煩。
參見[]
|