アイデアとしては
- トリアコンタン様の蓄積型ステートプラグインを使用し、
やな様のステート付与解除時コモン特徴で即時ダメージステートを作成する方法
- TPをそのままゲージとして再利用し、
トリアコンタン様のステート自動付与プラグインで即時ダメージステートを作成する方法
が挙げられます。
1.
まず1.の方法ですが、
この方法で即時ダメージを実装できるのは現時点ではアクターのみです。
エネミーへも適用したい場合は方法を考えてみますがとりあえず今は保留で。
蓄積型ステートプラグインはステートをいわゆるフロムの死にゲーなどでみられる
メーター溜まり切るとデバフ発動という形式にできるプラグインです。
デフォルトでは蓄積値は隠しステータス扱いですが、一つのステートだけゲージを設定して
表示させることができます。
‥‥‥ですが、このゲージ表示、色々試したところなぜか画面左上に
ゲージが表示されたり表示位置がアクター毎に指定だったりと融通が利きづらく
個人的にゲージ表示機能はあまりお勧めできません。
もちろん、これらは単に私の設定ミスの可能性もありますけどね。
そして即時ダメージステートは
ステート付与解除時コモン特徴を使用し
アクターメモ欄に
<ステートx付与時コモン:y>と記入してください
xは即時ダメージ用ステート(中身は空でいいです)、yは即時ダメージを実行するコモンイベントのIDです。
コモンイベントの中身は
- ステート付与解除時コモン特徴で指定した変数に+1
HPの増減:対象{上記の変数}:任意の数字
ステートの変更:対象{上記の変数}:即時ダメージ用ステート
としてください。これで完成です。
2.
2.のTPゲージの利用は増加方式ではなく
TP100から始まって0になるとステート付加、
という形になります。(増加方式にすると増加するたびに回復音が鳴ってしまうので)
またCTBやATB系のプラグインを使用した場合を除き、
ダメージの減少が発生するのはターン終了後でステート付与からHP減少まで若干のラグがあります。
まずTPをステート用ゲージに変更する方法ですが、直接rpg_objects.jsを書き換える方法と
何らかのプラグインを用いる方法があります。ここではrpg_objectsをいじる方法を紹介します。
※書き換える前にかならずrpg_objects.jsのバックアップを取っておきましょう
- rpg_objects.jsを開き、
3217行~3226行に移動します。
ctrl+Fで検索画面を開いて「initTp」と入力すれば早いです。
コード: 全て選択
Game_Battler.prototype.initTp = function() {
this.setTp(Math.randomInt(25));
};
Game_Battler.prototype.clearTp = function() {
this.setTp(0);
};
Game_Battler.prototype.chargeTpByDamage = function(damageRate) {
var value = Math.floor(50 * damageRate * this.tcr);
};
この二つあるsetTpの中を両方100に書き換え、
Math.floor(50 * damageRate * this.tcr)を0に置き換えてください。
これは上から順に
・戦闘開始時のTP→100に変更
・たぶん初期TP→100に変更
・ダメージを受けた時のTP増加量→0に変更
といった感じです。
そしてTPを減少させる方法ですが、
以前私が質問した時に名無し鮭様がTPを減少させるスキルを実装するプラグインを
作成してくださったので
これを使用してください。
これでゲージ表示は完成です。
続いて即時ダメージ用ステートですが、
HP再生率を任意の負の値に設定し、ダメージ後すぐTPが戻るよう
TP再生率を+1000%にでもしておきます。
ちなみにHP減少量を絶対値で指定したい場合はHP再生率の代わりに
まっつUP様の
BordSkin.jsを使うとよいでしょう。
そしてTPが0になった瞬間発動するように、
トリアコンタン様の
ステート自動付与プラグインを使用し、
即時ダメージ用ステートにメモタグで
<AS下限TP:0>と記入しましょう。
これで完成です。
とまあ、こんな感じでどうでしょう?