今回は、マイクラ統合版でチーム分けを行うコマンドを紹介します。統合版ですので、スマホやSwitch、windows10版に対応しています
PvPでチーム戦をしたりするときに便利です。
現在統合版にはチームコマンドが存在しないため今回はスコアボードを使用してチーム分けを行います。
今回行うコマンドは、
チームをつけて片方のチームはこっち側にtpや片方のチームにはダイヤの剣を与えるなどができるようになります。
同じチーム同士でのダメージは無効化されません。
tagコマンドでも可能ですが、スコアボードを用いた方が応用がききます。
また、今回はプレイヤーの代わりに防具立てを用います。セレクターが変わるので注意してください。
@e[type=armor_stand] → @a
/scoreboard obejctives setdisplay sidebar team
数字の変化が分かりやすいようにスコアボードを画面のサイドバーに表示させます。
プレイヤーの頭の下に表示させるときは、
/scoreboard obejctives setdisplay belowname team
プレイヤーリストに表示させるときは、
/scoreboard obejctives setdisplay list team
実行すると右端に「チーム」と表示されます。
次にコマンドブロックを入手します。
/give @s command_block
/scoreboard players set @e[type=armor_stand] team 1
(/scoreboard players set @a team 1)
コマンドブロックを置いて、入力します。
これは、すべての防具立て(プレイヤー)のteamの値を1にするコマンドです。
実行するとサイドバーに数値が表示されます。
数字の羅列は防具立ての名前だと思ってください。
プレイヤーが入るとこんな感じです。
/scoreboard players set @r[type=armor_stand,scores={team=1}] team 2
(/scoreboard players set @r[scores={team=1}] team 2)
チーム分けのコマンドになります。
teamの値が1のプレイヤーをランダムで1人、teamの値を2にします。
実行するとこんな感じです。
1人だけteamの値が2になりました。
あとは人数の半分の回数実行すれは、teamの値が1と2でチーム分けが完了しました。
これをPvPなどで用いるときは、セレクターにscores={team=1}など付ければ差別化できます。
例 /tp @e[type=armor_stand,scores={team=1}] ~ ~1 ~
team1のプレイヤーのみtpさせます。
実行するとこんな感じです。
プレイヤーの人数を取得して、自動的にコマンドをプレイヤーの半分の回数実行することも可能です。
少し難しくなります。
左から順番にコマンドブロックを紹介します。
/scoreboard players set @e[type=armor_stand] team 1
すべての防具立てのteamのスコアを1に設定。
/scoreboard players operation プレイヤー数 team += @e[type=armor_stand] team
すべての防具立てのスコアを足して「プレイヤー数」のteamに代入。
operationは演算を行うための要素です
/scoreboard players set 割る数 team 2
半分にチーム分けをするので「割る数」のteamを2に設定
/scoreboard players operation プレイヤー数 team /= 割る数 team
「プレイヤー数」のteam を 「割る数」のteam で割ります。
プレイヤー数が6の場合、「プレイヤー数」のteamの値は3になります。
/setblock 任意の座標 redstone_block
反復コマンドに信号が与えられるように任意の座標にレッドストーンブロックをセットします。
/scoreboard players test プレイヤー数 team 1
「プレイヤー数」のteamの値が1以上の場合検知し、次の条件付きブロックを作動させます。
/scoreboard players set @r[type=armor_stand,scores={team=1}] team 2
検知すると、teamが1の防具立てをランダムで1つ、2に変更します。
/scoreboard players remove プレイヤー数 team 1
「プレイヤー数」のteam から1引きます。
「プレイヤー数」のteamが1以上か検知する
↓
1人チーム分けをする。
↓
「プレイヤー数」のteamから1引く
↓
「プレイヤー数」のteamが1以上か検知する。
このループになります。
「プレイヤー数」のteamは減少していくので、0になった時点でコマンドはストップします。
実行するとこんな感じです。
上手く半分にチーム分けされています。
「プレイヤー数」や「割る数」を削除したい場合は
/scoreboard players reset * team
を実行してください。
コメント
[…] 【PvPチーム分け】マイクラ統合版チーム分けコマンド紹介 【Minecraft統合版】スコアボードを使ったタイマーの作り方 […]
[…] 【コマンド紹介】TNTミサイルの作り方/統合版Minecraft 【PvPチーム分け】マイクラ統合版チーム分けコマンド紹介 […]