ページ 11

解決)ダメージの分散度の仕様を改良したい

Posted: 2021年4月16日(金) 00:24
by こめかみ
ダメージの分散度とステータス値を関連させる方法または、プラグインはありますでしょうか?
同一スキルにて、例えば"きようさ"といったステータスを関連させ、きようさが低いうちはダメージのバラつき(分散度)が大きく、きようさが上がればバラつき(分散度)が減少する。という計算を行いたいです。
質問が二つになるのですが、上記と関連して分散度が下限値にのみ作用する方法もあればご教授頂きたいです。

Re: ダメージの分散度の仕様を改良したい

Posted: 2021年4月16日(金) 11:21
by WTR
Game_Actionの applyVariance() というメソッドが分散度の計算をしています。

”きようさ” をどう定義していてどうやって参照するのか
”きようさ” と分散度をどういう関数にしたいのかわからないので具体的に書けないのですが

コード: 全て選択

Game_Action.prototype.applyVariance = function(damage, variance) {
    var amp = Math.floor(Math.max(Math.abs(damage) * variance / 100, 0));
    var v = Math.randomInt(amp + 1) + Math.randomInt(amp + 1) - amp;
    return damage >= 0 ? damage + v : damage - v;
};

もとの処理はコレだけです。
引数で与えられる variance が分散度なのでコレに”きようさ”連動の演算を追加すればよさそうです。
下限値にのみ適用するというのも演算途中で0リミットすれば出来そうです。

Re: ダメージの分散度の仕様を改良したい

Posted: 2021年4月17日(土) 03:20
by こめかみ
>WTR様
ご回答ありがとうございます!情報不足で申し訳ありません。
例えば『AGI=きようさ(最大値255)』と仮定して、ダメージ100・分散度が40%のスキルの場合
きようさ 1 分散度40% ダメージ 60~100
きようさ255 分散度0% ダメージ 100~100
上記のような計算を行いたく質問させて頂きました。

※以下のように書き換えたところ、現状では想定通りになりました!

コード: 全て選択

Game_Action.prototype.applyVariance = function(damage, variance) {
    var agi = this.subject().agi;
    var amp = Math.floor(Math.max(Math.abs(damage) * variance / 100 * (1 - agi / 255), 0));
    var v = Math.abs(Math.randomInt(amp + 1) + Math.randomInt(amp + 1) - amp);
    return damage >= 0 ? damage - v : damage - v;
};