この記事では、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コマンドの対象をタグなどで絞り込めば、そのタグを持っている人数だけをカウントすることもできるので、意外と簡単に扱えます。
あとは、このスコアボードの値を基にコマンドを実行していけば、人数によるギミックなどを組んでいけますね。
PVPゲームなどの場合、ゲームオーバーになったプレイヤーが出るごとに値を1減らせば、0になった時に、生き残っているプレイヤーがいなくなったという認識ができます。
スコアボードは四則演算もできるので、ぜひ以下の記事を参考にしてください。
デメリットとしては、メッセージが表示されたプレイヤーだけをカウントするので、メッセージを表示させた際にいなかったプレイヤーに対しては再度カウントしなおす必要があります。
ともかくプレイヤーの人数を数えたい場合にはstore resultを利用してスコアボードに人数をメモしておけばOKです。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
- カウントした人数を保存しておくためのスコアボードを作成するコマンド
/scoreboard objectives add players dummy "人数"
- 1行の空のメッセージを表示するコマンド
(同時に、メッセージが表示されたプレイヤーの人数だけplayersというスコアボードに値として上書きする)
/execute store result score @a players run tellraw @a ""
- store resultを利用して、スコアボードに人数をメモしておきます!
この記事は以上になります。