更新日:
1. チームとスコアを作る(最初に一度だけ)
/team add red "赤チーム"
/team modify red color red
/team modify red friendlyFire false
/team add blue "青チーム"
/team modify blue color blue
/team modify blue friendlyFire false
/scoreboard objectives add kills playerKillCount "キル数"
/scoreboard objectives setdisplay sidebar kills
/gamerule keep_inventory true
friendlyFire false で、同じチームの仲間を攻撃してもダメージが入らなくなります。playerKillCount はプレイヤーを倒した数を自動で数えるスコアです。keep_inventoryで、倒されても装備を落とさないようにします(Java版1.21.10以前と統合版は keepInventory)。
2. チームに分ける
/team join red Steve Alex
/team join blue Sam Kai
名前を並べて書くと、まとめてチームに入れられます。チームの使い方は teamコマンドの使い方 にまとめています。
3. 復活地点を決める
/spawnpoint @a[team=red] 100 64 0
/spawnpoint @a[team=blue] -100 64 0
チームごとに陣地の座標を入れます。倒されると自分のチームの陣地に戻ります。spawnpointコマンドの使い方 もあわせて見てください。
4. 装備を配る
/clear @a[team=!]
/item replace entity @a[team=!] armor.chest with minecraft:iron_chestplate
/item replace entity @a[team=!] armor.legs with minecraft:iron_leggings
/give @a[team=!] minecraft:iron_sword
/give @a[team=!] minecraft:bow
/give @a[team=!] minecraft:arrow 32
/give @a[team=!] minecraft:cooked_beef 16
@a[team=!] は「どこかのチームに入っている全員」です。全員に同じ装備を配ると公平になります。強い装備にしたいときは 武器をgiveするコマンド や 最強の防具を出すコマンド を参考にします。
5. スタート
/scoreboard players reset @a kills
/gamemode survival @a[team=!]
/tp @a[team=red] 100 64 0
/tp @a[team=blue] -100 64 0
/title @a title {"text":"スタート!","color":"gold"}
キル数を0に戻してから、それぞれの陣地へテレポートします。
6. 勝ちを決める
反復コマンドブロック(常時実行)に、次のコマンドを入れます。
/execute if entity @a[team=red,scores={kills=5..}] run title @a title {"text":"赤チームの勝ち!","color":"red"}
赤チームの誰かが5キルしたら表示します。青チームの分も同じように作ります。表示が出続けるときは、勝ちが決まったあとに反復コマンドブロックを止めます。チーム全体の合計で決めたいときは、scoreboard players operation でチームの合計を計算します(スコアボードでミニゲームを作る)。
うまくいかないときの確認ポイント
- 味方にダメージが入る:
friendlyFire falseを両方のチームに設定したか確認します。 - キル数が増えない:倒したのがプレイヤーか確認します。Mobを倒しても増えません。
- 復活地点がずれる:ベッドで寝ると上書きされます。対戦中はベッドを使わないようにします。
- 勝ちの表示が出ない:反復コマンドブロックが「常時実行」になっているか確認します。
よくある質問
統合版でもできますか?
統合版には /team がないため、この方法はJava版向けです。統合版ではタグとスコアボードを使って、チーム分けを代わりにします。
矢が味方に当たるとどうなりますか?
friendlyFire false の設定では、味方の矢でもダメージは入りません。
倒されたら装備を配り直したいです。
keepInventoryをオフにして、deathCountのスコアで倒されたことを判定し、復活したら装備を配るコマンドを動かします。