ページ 11

【解決】ダメージを受けて得るTPを調節したい

Posted: 2021年5月03日(月) 00:23
by mikka
スキルでの上昇値はそのままで、敵から攻撃を受けて手に入るTPの量を
調節する方法ってありますか?

追記:↓現在 ケケーさんが該当に当たるプラグインを公開なさっています。
https://twitter.com/kekee_wave/status/1 ... 4963456000

Re: ダメージを受けて得るTPを調節したい

Posted: 2021年5月03日(月) 09:18
by 名無し蛙
どうもこんにちは
TPの被ダメージ時取得量はこの部分で処理していますね

コード: 全て選択

// ダメージを受けた時のTPチャージ処理
Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
    const value = Math.floor(50 * damageRate * this.tcr);
    this.gainSilentTp(value);
};

// アクター・エネミーがダメージを受けた時の処理
Game_Battler.prototype.onDamage = function(value) {
    this.removeStatesByDamage();
    this.chargeTpByDamage(value / this.mhp);
};
要約すれば最大HPの10%ダメージを受けたらtpが5上昇します。
2%未満だと上昇量は0。
スキル使用時にも影響するtcr(TpChargeRate)を触らず、となると50の方を弄るのが適切ですね。
いっそconst value = Math.floor(50 * damageRate * this.tcr);の計算式を全く別の物にすり替えても良いんですけど。

コード: 全て選択

/*:ja @target MZ */
(function () {
    'use strict'
    Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
        const value = Math.floor(50 * damageRate * this.tcr);
        this.gainSilentTp(value);
    };
})();
これがGame_Battler.prototype.chargeTpByDamageの処理を差し替える
最小のプラグインになるので後は適当に該当処理を弄ってください。
Math.floor...()内の小数点切り捨て
50...被ダメージチャージ係数
damegeRate...onDamage処理から引き渡されたダメージ/最大HP比率
this.tcr...特徴で設定可能なTPチャージ率(デフォルト値は1.0)
this.gainSilentTp...TP上昇量の設定

Re: ダメージを受けて得るTPを調節したい

Posted: 2021年5月03日(月) 11:36
by mikka
名無し蛙 さんが書きました:どうもこんにちは
TPの被ダメージ時取得量はこの部分で処理していますね

コード: 全て選択

// ダメージを受けた時のTPチャージ処理
Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
    const value = Math.floor(50 * damageRate * this.tcr);
    this.gainSilentTp(value);
};

// アクター・エネミーがダメージを受けた時の処理
Game_Battler.prototype.onDamage = function(value) {
    this.removeStatesByDamage();
    this.chargeTpByDamage(value / this.mhp);
};
要約すれば最大HPの10%ダメージを受けたらtpが5上昇します。
2%未満だと上昇量は0。
スキル使用時にも影響するtcr(TpChargeRate)を触らず、となると50の方を弄るのが適切ですね。
いっそconst value = Math.floor(50 * damageRate * this.tcr);の計算式を全く別の物にすり替えても良いんですけど。

コード: 全て選択

/*:ja @target MZ */
(function () {
    'use strict'
    Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
        const value = Math.floor(50 * damageRate * this.tcr);
        this.gainSilentTp(value);
    };
})();
これがGame_Battler.prototype.chargeTpByDamageの処理を差し替える
最小のプラグインになるので後は適当に該当処理を弄ってください。
Math.floor...()内の小数点切り捨て
50...被ダメージチャージ係数
damegeRate...onDamage処理から引き渡されたダメージ/最大HP比率
this.tcr...特徴で設定可能なTPチャージ率(デフォルト値は1.0)
this.gainSilentTp...TP上昇量の設定
なるほど!
なんとかプラグインを作ることが出来ました。
詳細な説明までして下さって有難うございます。