この記事では、Minecraft Java Edition(バージョン1.20.3)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- コマンドの結果を戻り値として代入できる
ver.1.20.3にアップデートしたことで、returnコマンドにさらなる機能が追加されました。
実際に試してみたのがこちら。
さっそく1.20.3で追加されたreturn runを使ってみました!
— 夏メ│Natsume (@natsume_717b) December 6, 2023
returnしつつコマンドを実行できるので、便利です
以下、解説になります
まずmcfunctionを用意
つまりfunctionコマンドを実行できる状態にします
今回は
execute as @a[tag=ABC] if entity @s store result score @a Test_Count run… pic.twitter.com/dGfWRsRMoG
具体的には、「return run ○○」という形で、returnコマンドを実行しながら別のコマンドを実行できるようになりました。
ただコマンドを実行できるだけでなく、その実行したコマンドの結果を戻り値として扱えます。
これがとにかく便利なので、この記事でマスターしてしまいましょう。
returnコマンドの基本は以下の記事で解説しています!
それでは見ていきます。
コマンドの結果を戻り値として代入できる
ver.1.20.3から「return run ○○」という形で、returnコマンドを実行できるようになりました。
この○○の部分は各種コマンドがそれぞれの構文に則って記述されます。
実際に例を出してみると以下のような感じです。
/execute store result score @a Test_Count run return run xp query @s levels
通常のreturnコマンド同様storeが指示されており、末尾にはxpコマンドが記述されています。
一見複雑なことをしているように見えますが、今までのreturnコマンド同様に戻り値を扱っていることは変わりません。
storeで指示したものに対して、戻り値を代入します。
どのような値が代入されるのかは、次の項目で見ていきましょう。
代入される値について
代入される戻り値の値というのは、return runによって実行されたコマンドの実行結果(もしくは成功回数)になります。
先ほど紹介した例では、”store result score @a Test_Count”とあります。
これは「全てのプレイヤーのTest_Countというスコアボードに戻り値を代入する」という指示です。
なので、上記のコマンドの”xp query @s levels”の場合、コマンドの実行者のレベルを取得しつつ、その値を戻り値として全てのプレイヤーのTest_Countというスコアボードに代入するということになります。
10レベルだったら10、15レベルだったら15が代入されるわけですね。
上記のコマンドではresultを指示しているので、実行結果が戻り値となります。
当然successを指示すれば成功回数を戻り値として扱いますので、必要に応じて使い分ければOKです。
各コマンドの戻り値については以下の記事でまとめています。
ぜひ参考にしてください。
このアップデートによるメリットは、数字を直接指定する必要がなくなったことです。
今までは固定の数字しか入れられなかったのに対し、コマンドの実行結果(成功回数)によって値が変わるという、かなり自由度が高くなる変更でした。
scoreboardコマンドの計算で得た答えを戻り値として扱ったりなど、色々と役立つこと間違いなしです。
まとめ
というわけで、今回のまとめです。
- return runによって、実行したコマンドの実行結果や成功回数を戻り値として扱うことができるようになった。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!