この記事では、Minecraft Java Edition(バージョン1.20.2)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- functionコマンドのwithでも変数(引数)を扱える
functionコマンドでは呼び出す関数を指示した後に、withと書き込むことが可能です。
その場合、引数となる情報を書き込む必要が生じますが、functionコマンドで関数を呼び出すだけでは出来ないことも、出来るようになります。
ちょっと理解深まったのでメモしつつ共有$tp @a $(x) $(y) $(z)
— 夏メ│Natsume (@natsume_717b) November 19, 2023
このコマンドをfunctionで実行する
その際
/function ntm_test:macro with storage minecraft:ntm
と実行。
上記のように記述することで、minecraft:ntmというstorageからx,y,zを参照するようになる…
変数(引数)を扱う方法は今回紹介するものだけではないので、過去に解説した記事も活用することをおすすめします。
それでは、さっそく見ていきましょう!
functionコマンドのwithでも変数(引数)を扱える
functionコマンドを使用する際、呼び出す関数を指定した後にwithを指示することができます。
withの後ろには、エンティティやstorageなどを指示します。
このように記述することで、変数(引数)を使用することが可能です。
実際の例を挙げてみると、以下のように打ち込んで実行します。
/function ntm_test:macro with storage minecraft:ntm
上記の場合は、minecraft:ntmというストレージを参照しつつ、ntm_test:macroという関数を実行します。
それぞれの中身は以下の通りです。
ntm_test:macro(mcfunction)の中身
$tp @a $(x) $(y) $(z)
minecraft:ntm(storage)の中身
{x"165.26701859979747d,y:58.0d,z:251.08493963884675d}
つまり、minecraft:ntmというstorageで保存しておいた値を参照して、tpコマンドを実行します。
1つずつ丁寧に見ていけば、難しくないですね。
xとzの値が細かすぎるのが気になる場合は、storageへ保存する際にexecuteコマンドのalignで整数に整える方法をおすすめします。
storageへの保存は以下のコマンドで行いました。
/data modify storage ntm x set from entity @s Pos[0]
/data modify storage ntm y set from entity @s Pos[1]
/data modify storage ntm z set from entity @s Pos[2]
これでfunctionコマンドでwithを用いた場合について、理解できたかと思います。
繰り返しになりますが、以下の記事でもfunctionコマンドで変数(引数)を扱っているので、あわせてどうぞ。
まとめ
というわけで、今回のまとめです。
- functionコマンドでwithを用いることで、エンティティやstorageなどから変数(引数)を指示できる。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!