Youtubeチャンネルはこちら!コマンド解説を動画で観れます!

【人数検知のコマンド】スコアボードに人数をメモしておく【マイクラ】

【人数検知のコマンド】スコアボードに人数をメモしておく【マイクラ】

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

コマンドを使って人数を検知したいマインクラフター
「人数を検知するコマンドってないのかな? ゲームに参加している人数とか数えたいんだよね」

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

本記事の内容
  • スコアボードに人数をメモしておく

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

なつめ

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

この記事では、人数を数えるコマンドを紹介していきます。

人数を数えることができるようになると、ミニゲームに参加している人数を把握することなどができるので、ぜひ覚えておくべきです。

store resultというあまり聞かないコマンドを使用しますが、分かりやすく解説するのでぜひ参考にしてくださいね。

それでは、さっそく見ていきましょう!



スコアボードに人数をメモしておく

コマンドで人数を検知したい場合は、少々手間がかかります。
というのも、1つのコマンドで「今サーバーに参加しているプレイヤーは〇人です」ということができないからですね。

ただ、決して人数をカウントすることができないわけではないので、そのやり方を今から解説していきます。

まずはスコアボードを作成します。
このスコアボードに人数を示す値を入れることになるので、3人いれば3という数字が入りますし、8人いれば8という数字が入ることとなります。

/scoreboard objectives add players dummy "人数"

今回はplayersというスコアボードを作成しました。
表示するときは分かりやすいよう「人数」としたので、「人数」を選択すればplayersを指していることになります。

次にexecuteコマンドを使ってある条件を付与しつつ、tellrawコマンドを実行します。

/execute store result score @a players run tellraw @a ""

このコマンドを実行すると、1行の空のメッセージがその時いるプレイヤー全員に表示されます。

今回、実行するコマンドは特に影響の出ないtellrawコマンドにしました。
場合によって他のコマンドでも代用できますが、特別な理由がなければtellrawコマンドがおすすめです。

重要なのがstore result score @a playersの部分です。
store resultがあることで、このコマンドを実行したプレイヤーの数だけplayersというスコアボードに上書きするようにしています。

もう少し詳しく言うと、全てのプレイヤーのplayersというスコアボードに対してstore resultするよと指示しているわけです。

なので、7人にtellrawコマンドが実行されメッセージが表示された場合は、全てのプレイヤーのplayersというスコアボードに7という値を入れることとなります。

tellrawコマンドの対象をタグなどで絞り込めば、そのタグを持っている人数だけをカウントすることもできるので、意外と簡単に扱えます。

あとは、このスコアボードの値を基にコマンドを実行していけば、人数によるギミックなどを組んでいけますね。

ゲームオーバーになったプレイヤーが出るごとに値を1減らせば、0になった時にプレイヤーがいなくなったという認識ができるといった具合です。

スコアボードは四則演算もできるので、ぜひ以下の記事を参考にしてください。

【スコアボードコマンド】operationで四則演算【マイクラ】

デメリットとしては、メッセージが表示されたプレイヤーだけをカウントするので、メッセージを表示させた際にはいなかったプレイヤーなどに対しては再度カウントしなおす必要があります。

とにもかくにも、プレイヤーの人数を数えたい場合にはstore resultを利用してスコアボードに人数をメモしておけばOKです。

まとめ

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

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

今回使ったコマンド
  • カウントした人数を保存しておくためのスコアボードを作成するコマンド
/scoreboard objectives add players dummy "人数"
  • 1行の空のメッセージを表示するコマンド
    (同時に、メッセージが表示されたプレイヤーの人数だけplayersというスコアボードに値として上書きする)
/execute store result score @a players run tellraw @a ""
ポイント
  • store resultを利用して、スコアボードに人数をメモしておきます!

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