更新日:
1. 準備(最初に一度だけ)
/scoreboard objectives add wave dummy "ウェーブ"
/scoreboard objectives add left dummy
/scoreboard objectives setdisplay sidebar wave
/scoreboard players set #game wave 0
wave は今のウェーブ数、left は残っている敵の数を入れるスコアです。
2. 敵をまとめて出す
/execute at @e[type=marker,tag=spawn] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}
会場のまわりに spawn タグの目印(marker)を何体か置いておき、その全部の場所にゾンビを1体ずつ出します。目印は /summon marker ~ ~ ~ {Tags:["spawn"]} で置きます。enemy タグで、このゲームの敵だけを数えられるようにします。
3. 残りの敵を数える(くり返し)
/execute store result score #game left if entity @e[tag=enemy]
くり返しコマンドブロック(常時実行)に入れます。enemy タグの付いた敵の数が、left に入ります。
4. 全滅したら次のウェーブ(くり返し)
/execute if score #game left matches 0 run scoreboard players add #game wave 1
/execute if score #game left matches 0 run title @a title {"text":"次のウェーブ!","color":"red"}
/execute if score #game left matches 0 at @e[type=marker,tag=spawn] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}
3の後ろにチェーンのコマンドブロックで並べます。敵が0になったらウェーブ数を1増やし、また敵を出します。ウェーブが進むほど強くしたいときは、if score #game wave matches 5.. のように条件を足して、防具を着たゾンビやスケルトンを出します。強い敵の作り方は ゾンビのコマンドまとめ を見てください。
5. ゲームオーバーの判定
/execute unless entity @a[gamemode=adventure] run tellraw @a [{"text":"ゲームオーバー! 到達ウェーブ:","color":"red"},{"score":{"name":"#game","objective":"wave"}}]
倒された人をスペクテイターにしておけば、アドベンチャーモードの人がいなくなったときにゲームオーバーにできます。表示したら、コマンドブロックを止めて /kill @e[tag=enemy] で敵を片付けます。
6. ウェーブが進んだら敵を強くする
# 4のチェーンの後ろに足す
execute if score #game left matches 0 if score #game wave matches 5.. at @e[type=marker,tag=spawn] run summon skeleton ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b}
ウェーブ5からは、ゾンビに加えてスケルトンも出るようになります。4の1行目でウェーブ数を先に増やしているので、この行は増えたあとの数で判定されます。5.. を 10.. にした行を足すと、さらに後半で別の敵を足せます。
7. ウェーブ10でボスを出す(Java版1.21.5以降)
execute if score #game left matches 0 if score #game wave matches 10 at @e[type=marker,tag=spawn,limit=1] run summon zombie ~ ~ ~ {Tags:["enemy"],PersistenceRequired:1b,CustomName:"ボス",CustomNameVisible:1b,attributes:[{id:"minecraft:max_health",base:100}],Health:100f}
ウェーブ10のときだけ、体力100の名前付きゾンビを1体出します。limit=1 で、目印が何体あってもボスは1体だけです。名前の書き方は1.21.4以前だと CustomName:'"ボス"' になります。ボスの作り方は ボスモブを作るコマンド にまとめています。
うまくいかないときの確認ポイント
- 最初のウェーブが出ない:始めるときに2を1回実行するか、敵が0の状態で4を動かします。
- 敵がすぐ消える:難易度がピースフルでないか、PersistenceRequired:1b を付けているか確認します。
- 昼にゾンビが燃える:夜にするか、ヘルメットをかぶせます。
よくある質問
ウェーブごとに敵の数を増やせますか?
目印(marker)を増やすか、ウェーブ数の条件ごとに summon の行を足すと、後半ほど多く出せます。
倒した数をスコアにできますか?
scoreboard objectives add kills minecraft.killed:minecraft.zombie のように、倒した数を数えるスコアを使えます。
ボスを出せますか?
ウェーブ10のときだけ出す行を足して、ボスモブを召喚できます。