ページ 22

Re: 作ったプラグイン内でフック処理するとエラーが出てしまう

Posted: 2024年7月24日(水) 12:56
by ムノクラ
Plasma Dark さんが書きました:ある程度コアスクリプトのインターフェースを頭に入れているからさっと出てくるみたいなところはあり、最終的に効率よく探すんだったら経験が物を言うとしか言えないですね……。

今回の例で言うと、行動(Game_Action)について、それがスキルであるかアイテムであるかを判別したいというところから始まるので、その時点で isSkill の名前が思い浮かびます。
後は、 rmmz_objects.js 内をテキスト検索して、 isSkill が実際に存在するか、使えるかを確認するという流れで回答に至っています。

対象について、どんな情報がほしいか、どんな操作を行いたいかからなんとなくそれっぽい英語を作って、コアスクリプト(あるいはスクリプトリファレンス)を検索する感じですね。
コアスクリプトを読んだ経験が多ければ多いほど、それっぽい英語を作るところの精度が上がります。

それっぽい英語が作れない場合は、対象 (今回の場合は Game_Action) についてコードを眺めて探すのもアリですが、これはちょっと時間がかかるので常にできるわけじゃないですね。
やはり、コア等を読み込んだり、調べるしかないのですね。

また、タイトルとはズレてしまいますが、今回のコード変更で概ね完成と考えていましたが、回復系統のスキルがデフォルトと動作が変わってしまいました。


HP(ステート)回復スキルは、
・デフォルト:HPがMAX(ステートなし)だと使用しない。
・プラグイン使用:HPがMAX(ステートなし)でも使用して、MPが減る。

そこで determineItem 中の

this.useItem();



this.onActorOk();

に変更したところ、デフォルト動作になったと思います。
この変更は、妥当なものでしょうか?

Re: 作ったプラグイン内でフック処理するとエラーが出てしまう

Posted: 2024年7月24日(水) 22:19
by Plasma Dark
HP(ステート)回復スキルは、
・デフォルト:HPがMAX(ステートなし)だと使用しない。
・プラグイン使用:HPがMAX(ステートなし)でも使用して、MPが減る。
確かに、canUseでの判定が抜けると効果なしでも使用可能になってしまいますね。

onActorOkではデフォルトにおけるアクターを選択して決定した際の処理が走るので、妥当な修正だと思います。

Re: 作ったプラグイン内でフック処理するとエラーが出てしまう

Posted: 2024年7月25日(木) 05:18
by ムノクラ
Plasma Dark さんが書きました:
HP(ステート)回復スキルは、
・デフォルト:HPがMAX(ステートなし)だと使用しない。
・プラグイン使用:HPがMAX(ステートなし)でも使用して、MPが減る。
確かに、canUseでの判定が抜けると効果なしでも使用可能になってしまいますね。

onActorOkではデフォルトにおけるアクターを選択して決定した際の処理が走るので、妥当な修正だと思います。
回答いただき、ありがとうございます。

こちらはこれにてクローズいたします。