更新日:
1. 床を作る
/fill 0 70 0 30 70 30 white_wool
白い羊毛の床を作ります。床の下を何段か重ねると、落ちても次の段で続けられます。いちばん下には水を張っておきます。
2. 踏んだブロックを赤くする(くり返し)
/execute as @a[gamemode=adventure] at @s if block ~ ~-1 ~ white_wool run setblock ~ ~-1 ~ red_wool
くり返しコマンドブロック(常時実行)に入れます。踏んだ白い羊毛が赤い羊毛に変わり、「もうすぐ消える」目印になります。
3. 時間差で赤いブロックを消す(くり返し)
/scoreboard objectives add timer dummy
/scoreboard players add #run timer 1
/execute if score #run timer matches 10.. run fill 0 70 0 30 70 30 air replace red_wool
/execute if score #run timer matches 10.. run scoreboard players set #run timer 0
1行目は最初に一度だけ実行します。残りの3行は、くり返しとチェーンのコマンドブロックに並べます。10回(約0.5秒)ごとに、赤くなった羊毛をまとめて消します。数字を大きくすると、消えるまでの時間が長くなります。
4. 落ちた人の脱落と勝者
/execute as @a[gamemode=adventure,x=0,y=50,z=0,dx=30,dy=10,dz=30] run gamemode spectator @s
/execute store result score #run alive if entity @a[gamemode=adventure]
/execute if score #run alive matches 1 run tellraw @a [{"selector":"@a[gamemode=adventure]"},{"text":" の勝ち!","color":"gold"}]
床より下(Y=50〜60)に落ちた人をスペクテイターにして、残りが1人になったら勝者を表示します。alive は1行目の timer と同じように scoreboard objectives add alive dummy で作っておきます。
5. 床を戻す
/fill 0 70 0 30 70 30 white_wool replace air
消えたところを白い羊毛で埋め直します。次の試合の前に実行します。
6. ゲームの始め方
/fill 0 70 0 30 70 30 white_wool replace red_wool
/gamemode adventure @a
/tp @a 15 71 15
/scoreboard players set #run timer 0
赤いまま残った羊毛を白に戻し、全員をアドベンチャーモードにして床の真ん中に集めます。2〜4のコマンドは gamemode=adventure の人だけを対象にしているので、アドベンチャーモードにするのを忘れると、踏んでも床が消えません。スタートの合図は カウントダウンのコマンド を使うと盛り上がります。
7. 走り続けないと落ちる床にする
/execute as @a[gamemode=adventure] at @s if block ~ ~-1 ~ red_wool run effect give @s minecraft:slowness 1 0 true
赤くなったブロックに立ち止まると、少しだけ遅くなります。止まっているとそのまま床が消えて落ちるので、走り続けるゲームらしさが強くなります。むずかしすぎるときは、この行は使わなくてもかまいません。
うまくいかないときの確認ポイント
- すぐに消えてしまう:3の数字(10)を20や30に増やします。
- ジャンプしていると消えない:空中にいる間は足元が空気なので変わりません。着地したときに変わります。
- 脱落の判定が床にかかる:4の y と dy が床(Y=70)より下になっているか確認します。
よくある質問
名前にあるTNTは使わないのですか?
もともとはTNTの上に砂を置いた床を使うゲームですが、羊毛とコマンドなら爆発させずに安全に作れます。
床を何段にもできますか?
1と3と5のY座標を変えたコマンドを段の数だけ用意します。
統合版でも作れますか?
2と5は統合版でも同じ書き方で使えます。タイマーや脱落の判定は、統合版の書き方に合わせて作り直します。