更新日:
1. ガラスのバトル場を作る
/fill ~5 ~-1 ~-6 ~17 ~4 ~6 minecraft:glass hollow
自分の東側に、中が空洞のガラスの箱を作ります。hollow は外側だけをブロックにする指定です。外から安全に見られます。fillのくわしい使い方は fillコマンドを安全に使う方法 にまとめています。
2. 戦わせるMobを出す
/summon minecraft:zombie ~8 ~ ~ {PersistenceRequired:1b,Tags:["red"]}
/summon minecraft:skeleton ~14 ~ ~ {PersistenceRequired:1b,Tags:["blue"]}
赤チーム(red)と青チーム(blue)のタグを付けて出します。PersistenceRequired:1b で、離れても消えなくなります。スケルトンは昼の日光で燃えるので、/time set night にしておきます。
3. 戦いを始める
/damage @e[tag=red,limit=1] 1 minecraft:mob_attack by @e[tag=blue,limit=1]
/damage @e[tag=blue,limit=1] 1 minecraft:mob_attack by @e[tag=red,limit=1]
1行目は「ゾンビがスケルトンに攻撃された」ことにして、ゾンビにスケルトンを狙わせます。2行目で逆も同じようにすると、両方が相手に向かっていきます。ダメージは1(ハート半分)だけです。damageコマンドのしくみは damageコマンドの使い方 を見てください。
4. 何体もまとめて戦わせる(チーム戦)
execute as @e[tag=red] at @s run damage @s 1 minecraft:mob_attack by @e[tag=blue,limit=1,sort=nearest]
execute as @e[tag=blue] at @s run damage @s 1 minecraft:mob_attack by @e[tag=red,limit=1,sort=nearest]
赤チームのMob1体ずつに、いちばん近い青チームのMobを敵として覚えさせます。2のsummonを何回か実行して数を増やしてから使います。
5. 勝ったチームを表示する
execute unless entity @e[tag=red] if entity @e[tag=blue] run title @a title {"text":"青チームの勝ち!","color":"blue"}
execute unless entity @e[tag=blue] if entity @e[tag=red] run title @a title {"text":"赤チームの勝ち!","color":"red"}
相手チームが1体も残っていないときに勝ちを表示します。反復ブロックで動かすと表示が出続けるので、決着がついたらコマンドブロックを止めます。
6. もともと戦うMobの組み合わせ
コマンドで怒らせなくても、出すだけで戦い始める組み合わせもあります。
- アイアンゴーレムとゾンビ:アイアンゴーレムは近くの敵対Mobを自分から攻撃します(ゴーレムを召喚するコマンド)。
- オオカミとスケルトン:オオカミはスケルトンを自分から襲います。
- ウーパールーパーとドラウンド:水の中で、ウーパールーパーがドラウンドを攻撃します。
うまくいかないときの確認ポイント
- Mobが戦わない:damageは1回だけ「狙う相手」を決めます。相手を見失ったら、3をもう一度実行します。
- Mobがすぐ消える:難易度がピースフルだと敵対Mobは消えます。
- 統合版で使いたい:
/damage @e[tag=red,c=1] 1 entity_attack entity @e[tag=blue,c=1]と書きます。Mobによっては反撃しないことがあります。
よくある質問
同じ種類のMobどうしでも戦いますか?
ゾンビどうしのように同じ種類だと、仲間を助けに来て思ったように戦わないことがあります。ちがう種類で試すのがおすすめです。
ボスと戦わせられますか?
ウィザーはまわりのMobを自分から攻撃するので、出すだけで多くのMobと戦います。ワールドが壊れるので、テスト用ワールドで試します。
戦いを止めるには?
/kill @e[tag=red] と /kill @e[tag=blue] で、タグの付いたMobをまとめて消します。