Re: 作ったプラグイン内でフック処理するとエラーが出てしまう
Posted: 2024年7月24日(水) 12:56
やはり、コア等を読み込んだり、調べるしかないのですね。Plasma Dark さんが書きました:ある程度コアスクリプトのインターフェースを頭に入れているからさっと出てくるみたいなところはあり、最終的に効率よく探すんだったら経験が物を言うとしか言えないですね……。
今回の例で言うと、行動(Game_Action)について、それがスキルであるかアイテムであるかを判別したいというところから始まるので、その時点で isSkill の名前が思い浮かびます。
後は、 rmmz_objects.js 内をテキスト検索して、 isSkill が実際に存在するか、使えるかを確認するという流れで回答に至っています。
対象について、どんな情報がほしいか、どんな操作を行いたいかからなんとなくそれっぽい英語を作って、コアスクリプト(あるいはスクリプトリファレンス)を検索する感じですね。
コアスクリプトを読んだ経験が多ければ多いほど、それっぽい英語を作るところの精度が上がります。
それっぽい英語が作れない場合は、対象 (今回の場合は Game_Action) についてコードを眺めて探すのもアリですが、これはちょっと時間がかかるので常にできるわけじゃないですね。
また、タイトルとはズレてしまいますが、今回のコード変更で概ね完成と考えていましたが、回復系統のスキルがデフォルトと動作が変わってしまいました。
例
HP(ステート)回復スキルは、
・デフォルト:HPがMAX(ステートなし)だと使用しない。
・プラグイン使用:HPがMAX(ステートなし)でも使用して、MPが減る。
そこで determineItem 中の
this.useItem();
を
this.onActorOk();
に変更したところ、デフォルト動作になったと思います。
この変更は、妥当なものでしょうか?