ページ 11

プラグインコマンドをスクリプトで

Posted: 2024年11月20日(水) 09:56
by さくさん
こんにちは。質問です。
プラグインコマンドをスクリプトで実行するにはどうすればいいですか?

例えば、ボタンピクチャプラグイン(ButtonPicture.js)の場合。
調べていると、$gameMap._interpreter.pluginCommandやPluginManager.callCommandなどが出てきて、
ボタンピクチャプラグインにはピクチャ番号(pictureId)とコモンイベント(commonEventId)がある、ということまでは分かるのですが、
それをどう使えばいいのか分かりませんでした。

今、プラグインコマンドをイベントコマンドで入れると正常に動くことを確認している状態です。
なので、そこへ代わりにスクリプトで入れても実行できるといいのですが……

スクリプトで実行したい理由は、プラグインの中に書いておいて、それをスクリプトで呼びたいからです。
なので、実際はスクリプトのイベントコマンドではなく、プラグインの中に書くつもりです。
(スクリプトやプラグインは勉強中で、トンチンカンなことを言っていたらすみません)

よければ、ボタンピクチャプラグインを扱う場合の、実際のスクリプトの記述を教えてほしいです。
それを参考にしたいと思います。
よろしくおねがいします。

Re: プラグインコマンドをスクリプトで

Posted: 2024年11月20日(水) 16:28
by さくさん
追記です。

プラグインを用意して、Testという関数を作ってそこにスクリプトを書く。
それをイベントコマンドのスクリプトでTest()を呼んで、何が起こるか確認してみる。スクリプトをちょっと弄ってみてまた確認してみる。
ということを色んなスクリプトでやってみています。

実際、起こることはイベントコマンドと同じなので、そうすることに意味はないかも知れませんが……
英数字を読んで分かりそうなところだけ触って変化を確認する練習で、やっています
なので、分からないなら回りくどいことをせずにコマンドを使えばいいのにということがあるかも知れませんが、
具体的にこれがしたくてプラグイン化をしているというわけではないのです

スクリプトやプラグインのことは、全く初心者ですみませんが、これから少しずつ勉強していきたいと思っています
是非よろしくお願いします

Re: プラグインコマンドをスクリプトで

Posted: 2024年11月21日(木) 17:28
by WTR

コード: 全て選択

const args =  {pictureId: 1, commonEventId: 1};
PluginManager.callCommand(this, "ButtonPicture", "set", args);
こんな感じでしょうか。
args はプラグインに記載されているアノテーションを見て必要な引数を指定します。
callCommand には this, プラグイン名, プラグインコマンド名, args を渡します。

Re: プラグインコマンドをスクリプトで

Posted: 2024年11月21日(木) 17:40
by WTR
ちなみに Game_interpreter の pluginCommand
このメソッドは MV との互換性を意識して残されているようですが
これを実行してもなにも起こりません。
どうしても使いたければ自分で追加実装してね、という思想のようです。