この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- all_ofで複数の条件を指示できる
- 実際の例
all_ofは、all_ofを指示したうえで複数のpredicateを指示しなければ使えない項目です。
というのも、指示した複数のpredicateの条件を満たしているかで挙動が変わるからになります。
分かりやすく具体例を出して解説するので、ぜひ参考にしてくださいね。
それでは見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
all_ofで複数の条件を指示できる
all_ofを指示する際、複数のpredicateを指示する必要があります。
というのも、all_ofを指示した場合は、指示した複数のpredicateの条件を全て満たした場合に、「真」となります。
例えば、location_checkとentity_scoresを指示した場合には、この両方を同時に満たしていなければなりません。
どれか1つでも条件を満たしていないと「偽」となるため、絶対に満たしていなければならない条件をまとめる際に有効です。
実際の例
では、実際にall_ofを使用する例を見ていきましょう。
predicateですので、例に漏れずデータパックを作成します。
- datapack本体
- data
- sample
- predicates
- test.json
- predicates
- sample
- pack.mcmeta
- data
pack.mcmeta、test.json以外は全てフォルダになります。
また、pack.mcmetaに記述する内容は以下の通り。
{
"pack": {
"pack_format": 26,
"description": ""
}
}
test.jsonは以下のように記述します。
{
"condition": "minecraft:all_of",
"terms": [
{
"condition": "minecraft:location_check",
"predicate": {
"biome": "minecraft:plains"
}
},
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"sample_score": {
"min": 10,
"max": 100
}
}
}
]
}
今回はloaction_checkとentity_scoresを指示してみました。
「平野にいる状態で、なおかつsample_scoreの値が10以上100以下である時」に限り、真となります。
なので、「平野にいない」や「スコアボードの値が101以上ある」などといった場合には、偽となるわけですね。
predicateは様々な項目がありますので、生成サイトを用いて作成することをおすすめします。
生成サイトはこちら!
上述のpredicateを指示して実行するコマンドの一例はこちら。
/execute if predicate sample:test run give @a diamond 1
すべての条件を満たし真となっている場合には、ダイヤモンドが付与されます。
逆を言うと、どれか1つでも条件を満たしていなければ偽となり、ダイヤモンドが付与されません。
このように複数の絶対満たしておかなければならない条件をまとめられるのが、all_ofということです。
まとめ
というわけで、今回のまとめです。
- all_ofは複数のpredicateを指示する必要のある項目。
- 指示した項目の条件を全て満たした場合に「真」となる。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!