この記事では、Minecraft Java Edition(バージョン1.19.3)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
コマンドでプレイヤー検知したいマインクラフター
「プレイヤーが近くにいるかどうかをコマンドで検知したいんだけど、どういうコマンドを使えばいいの?」
こんな疑問を解決します!
- if entityでプレイヤーを検知する
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップやミニゲームを制作しています!
→ダウンロードページ
この記事では、特定のプレイヤーがいることを検知する方法について解説していきます。
使うコマンドはexecuteコマンドで、if entityという文字列を使います。
その理由や距離も指定したい場合についてもお話しているので、ぜひ参考にしてくださいね。
それでは、さっそく見ていきましょう!
if entityでプレイヤーを検知する
プレイヤーを検知するには、executeコマンドを使えばOKです。
executeコマンドを使うことで条件を付与してコマンドを実行できるようになるので、○○なプレイヤーがいる時に実行するようにすれば、プレイヤーの存在を検知できているわけですね。
そのために、if entityという文字列を使います。
if entityの後にはターゲットセレクターでどういったプレイヤーがいる時に実行するのかを指定します。
具体的には以下の通り。
/execute if entity @a[tag=test] run give @a diamond 1
上記のコマンドでは、testというタグを持っているプレイヤーがいるならダイヤモンドを全てのプレイヤーに1つ付与するというコマンドです。
@a[tag=test]の部分がどういったプレイヤーがいる時に実行するのかを指示していますね。
今回はgiveコマンドを実行しましたが、実行させるコマンドをtitleコマンドにすれば「近くにプレイヤーがいます」と画面に表示させることが可能です。
この時、distanceで実行場所から何マス以内にプレイヤーがいることを条件に追加しておけば、〇マス以内にプレイヤーがいる時にだけ実行されるようにできます。
また、近くにいるプレイヤーの人数を表示させたい場合はstore resultを使うとよいですね。
実行させるコマンドによりますが、コマンドの対象となったプレイヤーの数をスコアボードに入れることができるので、そのスコアボードの値をtitleコマンドで参照すれば「〇人近くにいます」という表示も可能です。
store resultで得られる値については、【store result/success】コマンドごとによる返り値一覧【マイクラ】で解説しています。
というわけで、プレイヤーの検知にはif entityを使えばOKです。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- testというタグを持っているプレイヤーがいる時に、ダイヤモンドを全てのプレイヤーに1つ付与するコマンド。
/execute if entity @a[tag=test] run give @a diamond 1
- if entityで検知したいプレイヤーがいる時にだけコマンドを実行します。
- distanceなどを使えばより実用的な使い方も可能です。
この記事は以上になります。