マルチサーバーはConoHaVPSがおすすめ!クリックで解説ページへ!

【コマンド】対象を複数指定するにはlimitを使う【マイクラ】

【コマンド】対象を複数指定するにはlimitを使う【マイクラ】

この記事では、Minecraft Java Edition(バージョン1.18.1)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

コマンドの対象として複数のプレイヤーを指定したいプレイヤー
「コマンドの対象に3人のプレイヤーを指定したいけど、@aだとプレイヤー全員だし、@pだと1人しか対象にできない……。どうやって好きな人数を指定すればいいの? ランダムに選んだり、特定のプレイヤーだけから複数人指定したりもしたいな」

こんな疑問を解決します!

本記事の内容
  • 対象を複数指定するにはlimitを使う
  • tagを使って、さらに詳しく条件を指定する

こんにちは! マインクラフターのなつめ(@natsume_717b)です。

なつめ

マイクラ歴は5年程で、最近は脱出マップを配布・制作しています!
配布マップ・ダウンロードページ

この記事ではコマンドの対象を複数人指定する方法について解説しています。

単純に複数人を指定する方法から、対象となるプレイヤーをランダムに選ぶなどといった選別方法について。
また、tagを利用して複数の対象を指定する方法についても紹介しています。

この記事の内容を理解すると、出来ることがかなり広がるのでよりコマンドが楽しくなりますよ。

さっそく見ていきましょう!



対象を複数指定するにはlimitを使う

コマンドの対象としてプレイヤーを複数人指定したい場合には、limitを使います。
このlimitはターゲットセレクターで使用するものです。

実際に例を挙げてみると、以下のように使うことができます。

/give @p[limit=3] minecraft:diamond 1

giveコマンドについて知りたいという方は、【マイクラ】アイテム付与はgiveコマンド【どんなアイテムも可】をどうぞ。
今回は対象の複数指定ということで、giveコマンドに関する説明は省かせていただきます。

ターゲットセレクターの1つである@pの後ろに[limit=3]が付いています。

これはコマンドの対象を3人にするという意味合いがありますので、「コマンドの実行場所から最も近くにいるプレイヤー3人に対して、ダイヤモンドを付与する」コマンドとなっています。

通常、@pは最も近くにいるプレイヤー1人を対象とするので、@pを使いながらも複数人にアイテムを付与できることを考えると、少し違和感を抱いてしまいますね。

また、もともとすべてのプレイヤーを対象とする@aやすべてのエンティティを対象とする@eに対してlimitを指定した場合、その数までしか対象になりません。

@pではその対象となる数を増やせましたが、@aや@eではその数を制限できるということになります。

このようにターゲットセレクターにlimitを組み合わせることで、コマンドの対象を複数選択することが可能です。
なので、コマンドの対象に複数の人数を指定したいときは、limitを使いましょう。

ランダムに複数人指定したい場合

ランダムに複数人のプレイヤーをコマンドの対象にしたい場合は、@pではなく@rを使えばOKです。
@rにlimitを書き加えれば「ランダムなプレイヤー〇人」をコマンドの対象とすることができます。

なので、先ほど例に挙げたコマンドを@pではなく@rで指定すると

/give @r[limit=3] minecraft:diamond 1

となり、ランダムなプレイヤー3人に対してダイヤモンドを1つ付与することが可能になります。

sortで選別方法を変更

@pでは「近くにいるプレイヤー」を優先しましたが、sortを使うことで対象となるプレイヤーの選別方法を変更することができます。

例えば、@aに対してlimitを2で指定。
さらに選別方法としてsortには、furthestを指示します。

こうすると全プレイヤーの中から、コマンドの実行場所から最も遠い2人のプレイヤーを対象にすることができます。

/give @a[limit=2,sort=furthest] minecraft:diamond 1

sortにはfurthestを含め4種類あります。
基本的には既存のターゲットセレクターで代用できますが、時折必要になるので覚えておくといいかもしれません。

sort意味(同様の動作をするターゲットセレクター)
nearest近くにいる順(@pと同様)
furthest遠くにいる順
randomランダムに選定(@rと同様)
arbitrary指定したターゲットセレクターに準ずる

tagを使って、さらに詳しく条件を指定する

ここまでlimitを付与して人数の指定をしてきました。
ですが、そもそも対象にしたいプレイヤーと対象にしたくないプレイヤーがいる場合もあるはず。

そういった場合には、tagを使うと便利です。

tagに関する詳しいことは【実例付き】タグは対象の判別に役立ちます!【Java版・コマンド】を参考にしてもらうとして、今この場ではtagを各プレイヤーが持っているかどうかで対象になるかどうかを仕分けられるということだけ理解しておけばOK。

例えば、iceというtagを持っているプレイヤーと持っていないプレイヤーがいたとしましょう。

この時、iceのtagを持っているプレイヤーの中からランダムに2人だけにダイヤモンドを付与したいという場合は、以下のようなコマンドになります。

/give @r[tag=ice,limit=2] minecraft:diamond 1

これでiceのtagを持っていないプレイヤーが対象になることはありません。

tagはコマンドで付与することや剥奪することが可能なので、やりたいことにあわせてtagを操作すれば大抵のことはできますよ。

まとめ

というわけで、今回のまとめです。

今回使ったコマンドはこちら。

今回使ったコマンド
  • 近くにいるプレイヤー3人にダイヤモンドを1つ付与するコマンド
/give @p[limit=3] minecraft:diamond 1
  • ランダムなプレイヤー3人にダイヤモンドを1つ付与するコマンド
/give @r[limit=3] minecraft:diamond 1
  • 全プレイヤーの中でもコマンドの実行場所から最も遠い場所にいる2人に対して、ダイヤモンドを1つ付与するコマンド
/give @a[limit=2,sort=furthest] minecraft:diamond 1
  • iceというtagを持っているプレイヤーだけを対象に、ランダムな2人にダイヤモンドを1つ付与するコマンド
/give @r[tag=ice,limit=2] minecraft:diamond 1
ポイント
  • コマンドの対象となるプレイヤーを複数人数にしたい場合には、limitを使います。
  • limitに加えて、sortやtagを組み合わせることでより詳しく対象となるプレイヤーを指定することができます。

この記事は以上になります。