乗るだけチーム分け装置

コマンドがよく分からない方のための、ゼロからPvPマップを自作する講座の第二回です。
前回の「チームのキル数を合計する方法」に続き、今回は「乗るだけでチーム分けできる装置」の作り方を解説します。PvPをするなら欠かせないチーム分け。色のついた羊毛に乗るだけでチームに参加できる装置を作ってみましょう。作っていくうちにscoreboardコマンドのチーム機能とexecuteコマンドを学べます。

スポンサーリンク
お待ち! この記事は最後の更新から1年以上経過している古い記事だ。新しいバージョンに合わせて装置を作り直してスクショを取り直して解説を書き直す面倒臭さが君には分かるかい? 分からないなら読まないほうがいいぜ。

「乗るだけでチーム分けできる装置」の概要と使い方

羊毛に乗るだけでチーム分け

ゼロからPvPを自作する講座 #1では、4チームに分かれて合計キル数を競い合う装置を作りました。「チームに参加するにはコマンドを入力」とか書きましたが、いちいちコマンドを入力するのは面倒ですよね。そこで今回は、色のついた羊毛に乗るだけでチームに参加できる装置を作ってみましょう。

羊毛に乗ると帽子と名前の色が変わる

この4色の羊毛は、それぞれチームの色を表していて、上に乗るだけでその色のチームに参加できます。同時に頭上に表示されるプレイヤー名(Tabキーでも確認可能)に色がつき色付きの帽子も与えられます。


まずはチームと色を設定して羊毛を置こう

チーム分け用の羊毛を置こう

今回は、「赤」「緑」「黄」「青」の4チームに加え、灰色の「OPチーム」も作ります。これらのチームのうち、赤緑黄青は前回作成したのですが、今回からPvPの運営を楽にするために「OPチーム」が出てきます。

対戦用の5つの「チーム」を作成するコマンド(チャット欄で実行)
/scoreboard teams add Red
/scoreboard teams add Blue
/scoreboard teams add Yellow
/scoreboard teams add Green
/scoreboard teams add OP ←New!!

「Red」「Blue」「Yellow」「Green」「OP」の5種類のチームを作成します。

それぞれのチームの「色」を設定するコマンド
/scoreboard teams option Red color dark_red
/scoreboard teams option Blue color dark_blue
/scoreboard teams option Yellow color yellow
/scoreboard teams option Green color green
/scoreboard teams option OP color dark_gray ←New!!

▲ここで各チームに色を設定すれば、所属しているプレイヤーの名前がその色に染まります。

※「New!!」が付いているのは今回から加わったコマンドです。


チーム分けする回路とコマンドの解説

高速fillクロックの作り方

やはりこの装置も、お決まりのfillクロックを動かさないといけないんです。以下のコマンドを入力して、真ん中に赤石ブロックを挟めばクロックが起動します。
ちなみにコマンドブロックは/give @p command_blockで入手します。

「A」に入力するコマンド/fill ~ ~-1 ~ ~5 ~-1 ~ redstone_block
「B」に入力するコマンド/fill ~ ~1 ~ ~5 ~1 ~ stone

チーム分けするコマンド

さあ、コマンドを入力していきましょう。まずはレッドストーンブロックの上に5つのコマンドブロックを設置し、以下の表のコマンドをコピペしてください。

「1」に入力するコマンド
/execute @a[<装置の中心x>,<装置の中心y>,<装置の中心z>,<装置の半径>] ~ ~ ~ detect ~ ~-1 ~ minecraft:wool 14 scoreboard teams join Red @p
チーム分け装置の範囲内にある、赤い羊毛の上に立っている人を赤チームに参加させます。
装置の中心と半径
<装置の中心x>」などの座標は、図のように4つの羊毛が置いてある真ん中の座標を指定してください。例えばx100,y64,z-500で装置の半径が5ブロックの場合「@a[100,64,-500,5]」と書きます。「装置の半径」は、実際の半径より大きめの数値を指定してください。参加漏れが生じます。
他のチームの羊毛も範囲に入っていますが、羊毛の色を条件にしているので大丈夫です。 
「2」に入力するコマンド
/execute @a[<装置の中心x>,<装置の中心y>,<装置の中心z>,<装置の半径>] ~ ~ ~ detect ~ ~-1 ~ minecraft:wool 5 scoreboard teams join Green @p
「1」と同じ範囲内の、黄緑の羊毛に乗っているプレイヤーを緑チームに参加させます。
「3」に入力するコマンド
/execute @a[<装置の中心x>,<装置の中心y>,<装置の中心z>,<装置の半径>] ~ ~ ~ detect ~ ~-1 ~ minecraft:wool 4 scoreboard teams join Yellow @p
「1」と同じ範囲の、黄色い羊毛に乗っているプレイヤーを黄チームに参加させます。
「4」に入力するコマンド
/execute @a[<装置の中心x>,<装置の中心y>,<装置の中心z>,<装置の半径>] ~ ~ ~ detect ~ ~-1 ~ minecraft:wool 11 scoreboard teams join Blue @p
「1」と同じ範囲の、青い羊毛に乗っているプレイヤーを青チームに参加させます。
「5」に入力するコマンド
/execute @a[<OP参加ゾーンの中心x>,<OP参加ゾーンの中心y>,<OP参加ゾーンの中心z>,<OP参加ゾーンの半径>] ~ ~ ~ detect ~ ~-1 ~ minecraft:wool 7 scoreboard teams join OP @p
OP参加ゾーンの中心と半径
OPチーム、つまり管理人チームに参加するゾーンは他のチームとは分けていますので、独自に中心と半径を指定します灰色の羊毛に乗っているプレイヤーをOPチームに参加させます。
チャットログが埋め尽くされるなら

回路を動かしている時に、チャットログがコマンドブロックのメッセージで埋め尽くされてしまう方は、
/gamerule commandBlockOutput falseを実行してください。


チームの色に応じた帽子を装備させるコマンドの解説

所属チームに応じた色の帽子を自動で装備

チーム分け装置は完成したのですが、このままではTabキーを押したりプレイヤー頭上の名前を見ないとどのチームに所属しているのか分かりにくいですね。それでは、コマンドを使ってチームごとに色付きの帽子、というか革のヘルメットを装備させてみましょう。

帽子を装備させるコマンド

先ほどのクロック回路の下側に、また5つのコマンドブロックを設置して、それぞれ中身を入力します。

「6」に入力するコマンド
/replaceitem entity @a[team=Red] slot.armor.head minecraft:leather_helmet 1 0 {display:{Name:"赤チーム",color:16711680}}
▲replaceitemコマンドを使って、プレイヤーの装備を強制的に変更します。この場合は赤チームのプレイヤーに、赤く染まった革のヘルメットを装備させています。
「7」に入力するコマンド
/replaceitem entity @a[team=Green] slot.armor.head minecraft:leather_helmet 1 0 {display:{Name:"緑チーム",color:47635}}
▲replaceitemコマンドを使って、プレイヤーの装備を強制的に変更します。この場合は緑チームのプレイヤーに、緑色の革のヘルメットを装備させています。
「8」に入力するコマンド
/replaceitem entity @a[team=Yellow] slot.armor.head minecraft:leather_helmet 1 0 {display:{Name:"黄チーム",color:16776960}}
▲replaceitemコマンドを使って、プレイヤーの装備を強制的に変更します。この場合は黄色チームのプレイヤーに、黄色く染まった革のヘルメットを装備させています。
「9」に入力するコマンド
/replaceitem entity @a[team=Blue] slot.armor.head minecraft:leather_helmet 1 0 {display:{Name:"青チーム",color:255}}
▲replaceitemコマンドを使って、プレイヤーの装備を強制的に変更します。この場合は青チームのプレイヤーに、青く染まった革のヘルメットを装備させています。
「10」に入力するコマンド
/replaceitem entity @a[team=OP] slot.armor.head minecraft:leather_helmet 1 0 {display:{Name:"OPチーム",color:10263708}}
▲replaceitemコマンドを使って、プレイヤーの装備を強制的に変更します。この場合はOPチームのプレイヤーに、灰色の革のヘルメットを装備させています。
色付きの帽子

replaceitemコマンドを使えば、プレイヤーやMobの装備を自由に変更できます。今回は、それぞれのチームに合った5色(画像はOPの帽子を撮影するの忘れてました)の革のヘルメットを装備させました。

色付きの防具の入手コマンドを調べられるサイト「Minecraft armor crafting」
色付き防具のコマンドを調べられるサイト
http://minecraft.tools/en/armor.php

色付きヘルメットを入手するコマンドは、
/give @p minecraft:leather_helmet 1 0 {display:{Name:"名前","color":色コード}}
です。上記サイトでは、様々な色の革の防具を入手するためのコマンドが調べられます。



次回もご期待ください

いかがでしたか。PvP作成の基礎を理解して頂けたら幸いです。
「これはどうするの?」などコメント待ってます。


最近書いたコマンド解説記事


スポンサーリンク

毎度毎度ツイート、コメント等ありがとうございます。Twitterではブログの更新状況など色々呟いてます。気軽にフォロー下さい。

スポンサーリンク

コメント

お待ち! この記事は最後の更新から1年以上経過している古い記事だ。新しいバージョンに合わせて装置を作り直してスクショを取り直して解説を書き直す面倒臭さが君には分かるかい?
  • 初心者です太郎

    1~5のコマンドブロックの実行結果のところに
    「エンティティの提供するUUIDが無効な形状です」と出てしまいます(/ω\)
    助けてください(; ・`д・´)

    • 説明不足申し訳ありません。
      1~5のコマンドは常時実行されるため、条件が合った時以外は常にエラーを吐き続けます。これはどうしようもないので無視して下さい。

      • 初心者です太郎

        丁寧に教えてくださりありがとうございました(^^)/
        ナポアンさんのコマンド解説はいつも参考にさせていただいています(#^^#)
        これからも頑張ってください!!

  • コマンド初心者

    7~10でこのコマンドはありませんと出ますどうすればいいですか・・・
    そして/gamerule commandblockoutput falseと打っても表示されたままです。
    どうすればいいですか?

    • gameruleコマンドの書き方が間違っていました…
      正しくは/gamerule commandBlockOutput false です。申し訳ないです

  • もんちっち

    1~5のコマブロを実行しても「[596,5,-504,6]」は有効な数値ではありませんとでて
    チームが変更されませんどうしたらよいですか?

  • game mine

    一番KILL数の多いチームをtitleコマンドで表示する方法を教えてください!!

  • _0306 Night

    1~5のコマンドを実行しても、x.y.zの座標が、有効な数値ではありません。とでて、その色の羊毛に立っても、チームが変更されません。どうしたらいいですか?お願いします

    • 薄氷 雪

      [x=、y=、z=、r=]
      みたいにしたらできるよ!