一般來說,要偵測Minecraft裡的按鈕訊號,都會需要紅石。但其實可以用指令偵測!馬上就來看看怎麼做吧!
適用版本: 1.17.1
【教學】
1. 首先第一步,使用F3確認按鈕的位置 (x,y,z),位置在畫面右側的Targeted Block
註: 如果按F3沒有顯示這些資訊,你可能開到簡易除錯了,使用下面這個指令關閉。
/gamerule reducedDebugInfo false
2. 再來,放一個重複指令方塊,在內貼上以下指令:
execute if block <X> <Y> <Z> oak_button[powered=true] run setblock <X> <Y> <Z> redstone_block
✪ 第一個<X> <Y> <Z>改成按鈕的座標
✪ oak_button改成按鈕的材質: stone_button或oak_button
✪ setblock <X> <Y> <Z> redstone_block這個等等會解釋,先留著
並且改成永遠啟動
完成如下圖:
3. 正常情況下,這個execute指令的原理是「只要按鈕是正在觸發中」都會一直重複做後面的run指令。而我們知道遊戲中的按鈕被按之後會有一段時間都是凹下去的(觸發中),所以不能直接在run後接我們要的指令(會被重複執行),需要另闢他路。
因此,我們可以用紅石方塊來觸發另一串指令。
流程大致如下:
4. 設置我們的指令執行器,如下,其中的中繼器都是拉滿
我們在按下按鈕後,就是要觸發這個指令方塊串。
還記得一開始那串指令後面的setblock <X> <Y> <Z> redstone_block嗎?將座標改成圖片中紅叉叉的那個位置
讓紅石方塊能激活這串指令方塊。
接著填上指令吧!
第一個方塊就是你需要執行的指令囉~隨意填上吧
第二個,我們需要重製那個紅石方塊(以便能無限循環執行),直接將紅石方塊setblock成air即可~
解釋一下為何中間需要一串中繼器,因為在按紐「觸發中」時,會一直填上那個紅石方塊,所以我們不能馬上將其移除。需要等到按鈕凸起來時才能移除喔~
這樣就完成了~有任何問題可以留言喔~
By 餅乾