この記事では、Minecraft Java Edition(バージョン1.17.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドを1回だけ起動するようにしたいマインクラフター
「常に実行しているコマンドを1回だけ起動するようにしたい! どういう風にコマンドを組めば、1回だけ起動するようにできるのかな?」
こんな疑問を解決します!
- 1回コマンドが成功した時点で、これ以上動作しないようにする
こんにちは! マインクラフターのナツメ(@natsume_717b)です。
普段は脱出マップを配布・制作しています!
→配布マップ・ダウンロードページ
今回は何度も起動してしまうコマンドを1回だけ起動するようにする方法について解説していきます。
要するに、リピートコマンドブロックの内容を1度実行したら、それ以降は機能しないようにするというわけですね。
例えば、街に入った瞬間に街の名前が表示されるよう組んだコマンドがあったとします。
このコマンドはリピートコマンドブロックで常に実行していますが、ある一定の座標に到達しなければ起動しないようになっています。
一見街に入ればコマンドが実行されて何も問題ないように思えますが、このままでは街に入るたびに街の名前が出てしまいます。
何度も行き来しなければそこまで気になることではありませんが、何度も行き来するというのであれば、正直鬱陶しいですよね。
そこでコマンドの組み方が重要になるというわけですね。
この記事では、常に実行しているコマンドを1回成功した時点で二度と実行されなくなるコマンドの組み方を紹介します。
実際、脱出マップを制作している私も使っている方法なので、かなり使いやすいと思います。
それでは、さっそく見ていきましょう!
1回コマンドが成功した時点で、これ以上動作しないようにする
リピートコマンドブロックを1回動作させた時点で、再度コマンドを実行しないようにするには、コマンドが成功したことを感知してリピートコマンドブロックが機能しないようにします。
コマンドが成功したかどうかはチェーンコマンドブロックで「条件付き」を指定すれば、問題なさそうですね。
「条件付き」は後ろにあるコマンドブロックの内容が成功した場合に、入力されているコマンドを実行します。
問題なのは、リピートコマンドブロックの動作をオンオフの切り替えができるようにすること。
これはリピートコマンドブロックの項目を「動力が必要」にしておくことで解決します。
「動力が必要」にしておくことで、赤石信号を受けている時だけコマンドを実行するようになります。
なので、赤石信号を絶てばそのリピートコマンドブロックは機能しなくなるということ。
上記の内容をまとめると、チェーンコマンドブロックでコマンドの成否を確認し、成功したらリピートコマンドブロックの動力となっている赤石信号源を消せばよいということになります。
というわけで、以下のようにコマンドブロックなどを設置すればOKです。
リピートコマンドブロックには、1度だけ動作させたいコマンドを入力。
チェーンコマンドブロックには、setblockコマンドでレッドストーンブロックを空気ブロックに変更するようにしましょう。
赤石信号を絶てばよいので、必ずしも空気ブロックに置き変える必要はありません。
ただし、コマンドブロックが密集している場合などは他のコマンドや回路の影響を受ける可能性がありますので、空気ブロックにしておくのが安牌だと思います。
チェーンコマンドブロックに書き込むコマンドとしては以下の通り。
/setblock レッドストーンブロックのある座標 minecraft:air
コマンドを1回だけ機能させたいという場合は、上記のやり方で基本的には問題ないと思います。
というわけで、今回はコマンドを1回だけ起動させたい場合のやり方を解説しました。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- リピートコマンドブロックを動作するようにしているレッドストーンブロックを消すコマンド
/setblock レッドストーンブロックのある座標 minecraft:air
- 「動力が必要」とすることで、赤石信号を受けている限り動作するようにできます。
- 「条件付き」にすることで、後ろにあるコマンドブロックのコマンドが成功した場合にコマンドを実行するので、1回コマンドを実行したことを検知できます。
この記事は以上になります。