ページ 23

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月20日(日) 16:48
by ビービー
トリアコンタンさんさっそくの修正ありがとうございます。
問題のない動作を確認いたしました。

このたびはご助力いただきありがとうございました。

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月20日(日) 18:04
by 剣崎 宗二
遅ればせながらこちらも追加で修正を施しました。
ご指摘いただいた点を「どちらかが全滅した場合、ステートによるスキル発動をその時点で停止する」として修正し、
また「複数のダメージステータスがある状態で実行中に死亡した場合、死亡ユニットに技を繰り出させようとしてエラーになる点」修正いたしました。
BB_TrunEndStateSkill.js
(4.6 KiB) ダウンロード数: 4 回
ご査収お願いいたします。

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月20日(日) 19:03
by ビービー
剣崎宗二さん、修正ありがとうございます。

使用してみたところ問題なく動作していることを確認しました。
ただまだ少ししかいじっていないのでこれからいろいろやってみます。

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月20日(日) 21:07
by ビービー
トリアコンタンさん、剣崎宗二さん

不具合を発見したので報告させていただきます。

まずトリアコンタンさんの作られた方ですが、
同時に二つ以上のステートが付与されている場合ステートIDの若いステートだけがスキルを発動し、それ以外は発動しませんでした。
私の作成しているゲームではダメージを受けるステートが2つ欲しいと考えているので、二つのステートに対応していただけるとありがたいです。

剣崎宗二さんの作られた方は、
データベースで指定した”ステートが解除された時に表示されるメッセージ”がスキル発動前に表示されるので、治ったはずのステートでダメージを受けているように見えてしまいます。
スキル発動後にステート解除のバトルログが表示されるようにすることは可能でしょうか?

両方とも自分で修正できればよかったのですが、力が足りず。
何度も申し訳ないのですが、またご助力いただけると助かります。
よろしくお願いします。

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 02:32
by トリアコンタン
では、もともとフラグだったアクターごとの実行済み情報を
ステートIDを要素に持つ配列にしましょう。
これで同一のアクターが複数のステートスキルを発動できます。

コード: 全て選択

//=============================================================================
// BattleManager
//  ターン終了直前にステートスキルの実行を呼び出します。
//=============================================================================
var _BattleManager_startTurn = BattleManager.startTurn;
BattleManager.startTurn = function() {
    _BattleManager_startTurn.apply(this, arguments);
    this.allBattleMembers().forEach(function(battler) {
        battler.clearExecuteTurnEndSkill();
    });
};

var _BattleManager_endTurn = BattleManager.endTurn;
BattleManager.endTurn = function() {
    this.allBattleMembers().some(function(battler) {
        return battler.applyTurnEndSkill();
    });
    // ステートスキルが実行された場合、本来のターン終了は行わずに終了する。
    if (this.isActionForced()) return;
    _BattleManager_endTurn.apply(this, arguments);
};

//=============================================================================
// Game_Battler
//  ターン終了ステートスキルを実行します。
//=============================================================================
Game_Battler.prototype.clearExecuteTurnEndSkill = function() {
    this._executeTurnEndSkills = [];
};

Game_Battler.prototype.applyTurnEndSkill = function() {
    for (var i = BBSmin; i < BBSmax + 1; i++) {//パラメータで指定したステートの範囲を判定
        if (this.isStateAffected(i) && !this._executeTurnEndSkills.contains(i)) {//判定中にそのステートにかかっているバトラーがいた場合
            var SkillID = $dataStates[i].meta.state_skill;//ステートのメモに書いてあるIDをSkillIDに
            this.forceAction(SkillID, -2);
            BattleManager.forceAction(this);
            this._executeTurnEndSkills.push(i);
            return true;
        }
    }
    return false;
};

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 16:25
by ビービー
トリアコンタンさん、変更ありがとうございました。

今のところ動作は完璧です。
このたびは何度も修正をお願いしてすみませんでした。
本当にありがとうございました。

それとこのプラグイン自体を配布する予定はないのですが、私の制作するゲームはできれば暗号化したくないと思っているので、プラグイン内のヘルプにトリアコンタンさんのお名前を書きたいのですが、了承いただけますか?

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 21:13
by トリアコンタン
こんばんは!
こちらこそ、たびたびお手間をお掛けしました。

ヘルプの記載の件についても、もちろんOKです。
ありがとうございます!

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 22:13
by 剣崎 宗二
すみません。仕事帰りが遅くなってました。

ステート関係の処理を「真の」ターンエンドに移動させて問題点を解決してみました。
ご確認ください。
BB_TrunEndStateSkill.js
(4.96 KiB) ダウンロード数: 33 回

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 22:57
by ビービー
剣崎宗二さん
お仕事お疲れ様です。

さっそく動作確認し完璧な動作を確認しました。
何度もお付き合いいただき本当にありがとうございました。

私のゲームはできれば暗号化したくないと考えているので@author以外にも
こちらのプラグインのヘルプの欄に剣崎宗二さんの名前を書きたいのですが許可していただけますでしょうか?

Re: 自作プラグイン改変依頼(ターン終了時のステート関連のプラグインです)

Posted: 2016年11月21日(月) 23:00
by ビービー
トリアコンタンさん

許可していただきありがとうございます。