変身するプラグイン

十拳剣

ユーザー
スキルを使用するかプラグインで
HP、MPの割合を取得
装備2を強制変更で空に
変身先に応じて職業を変更、装備を強制変更
画像を変更//これは別のプラグインで
最大HP、MPを割合で掛けた数にHP、MPを変更

コモンイベントだとメニューが閉じて、スキルにスクリプトが付くプラグインではイベントで使えないのと整備性が悪いので
 
はじめまして。
①HP、MPの割合を取得
②装備2を強制変更で空に
③変身先に応じて職業を変更、装備を強制変更
④画像を変更//これは別のプラグインで
⑤最大HP、MPを割合で掛けた数にHP、MPを変更
 変身対象をコピーするようなイメージでしょうか。
 全体像が見えないので細かい所は割愛しますが、①②③⑤は対象のデータが取得できれば実装できますね。④については画像変更用のプラグインの設計次第では処理に利用できないかもしれません。

コモンイベントだとメニューが閉じて、スキルにスクリプトが付くプラグインではイベントで使えないのと整備性が悪いので
 コモンイベントで処理される場合の挙動にお困りということで、使用の想定はメニューのスキル画面と戦闘画面でしょうか。そしてスキルを拡張するタイプのプラグインでは都合が合わないのですね。

 私からできる提案としましては、「戦闘画面ではコモンイベントを利用し、スキル画面ではスキル使用時の挙動を改変する」といったところになります。
 変に処理内容を簡潔にしようとするとかえって複雑になるので、利用したいシーンごとに別々に処理を実装するのが一番早いと思います。特に戦闘画面なら大抵のことはコモンイベントで実装できるでしょうから、コモンイベントでは都合の悪いシーンのみ改変するということでいかがでしょうか。

 例えばスキル画面で対象のアクターを選択した時に専用の挙動にしたい場合はプラグインファイル内に以下のように書き込むとできます。
コード:
    // オーバーライドします。
    Scene_Skill.prototype.onActorOk = function() {
        const skill = this._itemWindow.item();
        if (skill.id === 52) {

            // 実行したい処理。

        } else {
            Scene_ItemBase.prototype.onActorOk.call(this);
        }
    };
 このコードの例ではデータベース52番のスキルをアクターに使用した時、専用の挙動になります。一方、他のスキルは全て従来の挙動です。
 ただし、この実装方法だと④の「画像の変更を別のプラグインで行う」というのが難しい場合がありますので、画像の変更は独自に実装する必要があるかもしれません。まあ、これもデータを取得することで実装できそうですね。

 という感じで以上になります。上記をベースにすると実装の手間はかかりますが、処理の流れは固まっている様子ですのであまり難しくはないと思います。案のひとつということでよろしければお試しください。
 
Back
トップ