【解決】作成途中のアクター選択を省略するプラグイン 内エラーに対応、リファクタリング

アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

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

投稿記事 by ムノクラ »

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

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

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

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

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


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

そこで determineItem 中の

this.useItem();



this.onActorOk();

に変更したところ、デフォルト動作になったと思います。
この変更は、妥当なものでしょうか?
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
アバター
Plasma Dark
記事: 736
登録日時: 2020年2月08日(土) 02:29
連絡する:

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

投稿記事 by Plasma Dark »

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

onActorOkではデフォルトにおけるアクターを選択して決定した際の処理が走るので、妥当な修正だと思います。
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

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

投稿記事 by ムノクラ »

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

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

こちらはこれにてクローズいたします。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
返信する

“MZ:質問”に戻る