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

アバター
mikka
記事: 23
登録日時: 2021年2月22日(月) 20:48

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

投稿記事by mikka » 2021年5月03日(月) 00:23

スキルでの上昇値はそのままで、敵から攻撃を受けて手に入るTPの量を
調節する方法ってありますか?

追記:↓現在 ケケーさんが該当に当たるプラグインを公開なさっています。
https://twitter.com/kekee_wave/status/1 ... 4963456000
最後に編集したユーザー mikka on 2021年5月10日(月) 01:18 [ 編集 4 回目 ]

主にEffekseerで素材の作成やRTP画像の改変を主にしています。
まだ、改変や簡単な物しか作ることが出来ません。
Twitter→https://twitter.com/mikiD24596677
名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

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

投稿記事by 名無し蛙 » 2021年5月03日(月) 09:18

どうもこんにちは
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上昇量の設定
アバター
mikka
記事: 23
登録日時: 2021年2月22日(月) 20:48

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

投稿記事by mikka » 2021年5月03日(月) 11:36

名無し蛙 さんが書きました:どうもこんにちは
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上昇量の設定

なるほど!
なんとかプラグインを作ることが出来ました。
詳細な説明までして下さって有難うございます。
主にEffekseerで素材の作成やRTP画像の改変を主にしています。
まだ、改変や簡単な物しか作ることが出来ません。
Twitter→https://twitter.com/mikiD24596677

“MZ:質問” へ戻る