この度コマンド、アドオン製作にきっと役立つアドオン(以降DPCと表記)
Dynamic Processing Command
日本語訳:動的処理コマンド
をリリース致しました
この記事はDPCの説明書となります
まず構文
/scriptevent dpc:dpc (代入先):(型):(代入するもの),(代入先):(型):(代入するもの)……… dpcrun (動かしたいコマンド)
では一つ一つ部分毎に解説いたします
/scriptevent dpc:dpc
これはコマンドを使うために必須の合図です。scripteventというマイクラに標準搭載されているコマンドを活用して本アドオンは作られています
(代入先):(型):(代入するもの)
本アドオンのアイデンティティとも言える重要な部分です
- 代入先
ここにdpcrun以降で代入する対象となる文字列を設定します。文字列に制限はない(はず)ですが、部分一致で置き換え処理を行っているため普遍的すぎたり短すぎたりする文字列を使うと意味のわからない所に代入されてしまう可能性がありますので、「%〇〇」のように記号を付けたり、「TooMuchLongText」のように長く絶対被らないものにしたりすることを推奨します。
- 型
textとscoreの二つがあります。textの時は(代入するもの)で指定した文字列を代入し
scoreの時は(代入するもの)で指定したスコアボードから指定したプレイヤーのスコアを取得しそれを代入します
- 代入するもの
textの時は任意の文字列を記述します。記述した内容が代入されます
scoreの時は(スコアボードに登録されているプレイヤー名 ダミープレイヤーも可です):(スコアボード名) の構文に従って参照先を記述します。
dpcrun (実行したいコマンド)
executeで言うところのrunに該当します。代入定義部分とコマンド部分を分けます
実例をみたほうが理解がしやすいと思いますのでいくつかご紹介します
1. /scriptevent dpc:dpc %like:text:cat,%好き:text:ネコ dpcrun say I like %like!私は%好きが好きです!この例ではテキストの代入の簡単な例を記しました。I like cat!私はネコが好きです!を発言するだけのコマンドです。このように代入を使っていきます
2. /scriptevent dpc:dpc %a1:score:tanaka:point,¥a2:score:yamada:point dpcrun say tanaka:%a1.yamada:¥a2.この例ではスコアの代入の簡単な例を記しました。それぞれのプレイヤーの点数を取得して表示します。pointというスコアボードにtanakaとyamadaの値がそれぞれ1,0で登録されているとした場合、実行すると
tanaka:1.yamada:0と表示されるはずです
3. /scriptevent dpc:dpc Score:score:sizimi:point,Text:text:sizimi dpcrun say Text's point is Scoreこの例は代入定義のtextとscore を同時に行っています。pointというスコアボードにsizimiの値が999で登録されているとした場合、実行すると
sizimi's point is 999と表示されるはずです。
おせっかいかもしれませんが、textの定義とscoreの定義は下の 4. で示す入れ子構造を活用して分けておくとわかりやすくなるのでおすすめです
4. /scriptevent dpc:dpc €1:text:c dpcrun scriptevent dpc:dpc €2:text:€1a dpcrun scriptevent dpc:dpc €3:text:€2t dpcrun say €3この例ではDPCの入れ子構造を記しました。前述の通りdpcrunはexecuteのrunと役割が同じであるため、当然scriptevent dpc:dpcを実行するコマンドとして設定できます。また代入先や代入するものとしても設定できます。実行するとcatと表示されるはずです
また以下に 3. の入れ子構造活用バージョンを示します
5. /scriptevent dpc:dpc Text:text:sizimi dpcrun scriptevent dpc:dpc Score:score:Text:point dpcrun say Text's point is ScoreここまででDPCのほとんど記すことができたと思います。
最後の例は非常に重要な注意点が含まれますので、ご確認ください
6. /scriptevent dpc:dpc AT:text:@,Amount:score:@s:amount dpcrun damage ATe Amountこれは実行者のamountというスコアボードに登録された値だけ全エンティティにダメージを与えるコマンドです。恐らくATeとしたことに違和感を感じたと思います。これはマイクラのコマンドの仕様(だと私は思っています)として、セレクターは最初に処理されてしまうため、仮にATeではなく@eと書いた場合最終的に
damage ウシ,ゾンビ,ゾンビ,スライム 5のように構文エラーが発生し実行されなくなってしまうのです。
しかしATeにすると最終的に
damage @e 5のようにエラーの無いコマンドとして処理され無事実行されます。
このようにセレクターと代入を使ってコマンドを実話したい場合は、1番最後の段階でセレクターとなるように調整しなければなりません。
ここまでお読みいただきありがとうございました。お疲れ様でした。感想やご要望・ご質問などございましたら、ぜひコメントをお書きください。
最後にDPCを使ってコマンド、アドオン製作をして、公開する予定の方にお願いがあります。
DPCをご自身のアドオンのファイルに組み込みたい(そのアドオン一つの導入で完結するようにしたい)という場合は、例外なく絶対に私コマンダー光に連絡と許可の取得をお願いします。
自分のアドオンのファイルには組み込まず別々のアドオンのままでよい(アドオン利用者にDPCとそのアドオンの二つを導入してもらう形)という方は連絡は必須ではありませんがしていただけますと幸いです
またDPCを活用したコマンド・アドオンのファイル自体を公開はしないが動画や画像といったご自身以外は使えない形で公開するという場合も、連絡は必須ではありませんが、していただけますと嬉しく思います
DPC関係の連絡先とするメアド:
siyadera@neko2.net
DPC制作にあたって、りおと様にご協力いただきました。この場をお借りして感謝申し上げます
またDPCはchatGPTを活用して作成しましたことを記します
追記
下のzipファイルにはアドオン本体と、マニュアルとしてこの記事の下書きであるMarkdownファイルを入れています。



コメント