この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- entity_scoresでスコアボードの値を確認
entity_socresを使うことで、predicateの形式でスコアボードの値を検知することができます。
コマンドで値を検知する方法とはまた違ったメリットがあるので、ぜひ参考にしてくださいね。
それでは、見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
entity_scoresでスコアボードの値を確認
predicateの1種であるentity_scoresを使うことで、スコアボードの値を検知することができます。
スコアボードの値を検知するだけならば、コマンドでも可能です。
しかし、predicateの1項目であるためにany_ofやall_ofといった複数のpredicateを書く必要のある項目で活かすことができます。
これがentity_scoresを使う理由ですね。
もちろん書く手間が減る、管理がしやすくなるなどといったメリットもあります。
さて、そんなentity_scoresは以下のように記述します。
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"sample_score": {
"min": 0,
"max": 100
}
}
}
橙文字のsample_scoreはスコアボードの名称です。
つまり、上記の例ではsample_scoreという名前のスコアボードの値を確認するものになります。
また、検知する値はminとmaxで範囲を指定しています。
上記の場合は0から100といった感じですね。
特定の値だけを検知することも可能で、生成サイトを利用することをおすすめします。
データパックとしての格納位置
entity_scoresはpredicateであるため、jsonファイルに記載します。
そのため、データパックを作成する必要があります。
というわけで、以下がデータパックの構造です。
- datapack本体
- data
- sample
- predicates
- test.json
(このファイルに上述した内容を記載するとします)
- test.json
- predicates
- sample
- pack.mcmeta
- data
pack.mcmeta、test.json以外は全てフォルダになります。
また、pack.mcmetaの中身はこちら。
{
"pack": {
"pack_format": 26,
"description": ""
}
}
実行するコマンド例としては以下の通り。
指示した条件を満たしていれば、ダイヤモンドが1つ付与されるものです。
/execute if predicate sample:test run give @a diamond 1
まとめ
というわけで、今回のまとめです。
- entity_scoresを使用することで、predicateによってスコアボードの値を検知することが可能です。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!