【解決済み】Vx Ace 複数属性使用時の属性有効度について(乗算の場合)

pommpommB
記事: 8
登録日時: 2019年5月18日(土) 18:20

【解決済み】Vx Ace 複数属性使用時の属性有効度について(乗算の場合)

投稿記事by pommpommB » 2019年5月19日(日) 22:58

こんばんは。
先日は複数属性の平均値をフォーラムにて解決して頂きました、ありがとうございました。
今度は乗算の場合の計算式をご教示頂きたいです。
以下、質問文となります。

初期状態では武器に複数属性を設定した場合、
一番効果の高い属性が反映されます。
これをスクリプトで、複数属性の有効度の乗算を反映するように変更したいです。


攻撃側→武器属性[斬,火]
防御側属性有効度→斬[120%]火[120%]
この場合、1.2 * 1.2 = 1.44
の乗算で1.44倍のダメージ補正が反映されるようになってほしい。

#--------------------------------------------------------------------------
● 属性の最大修正値を取得する場合
def elements_max_rate(elements)
elements.inject([0.0]) {|r, i| r.push(element_rate(i)) }.max
end
#--------------------------------------------------------------------------

#--------------------------------------------------------------------------
● 属性の平均値を取得する場合
def elements_max_rate(elements)
elements.inject(0.0) {|r, i| r + element_rate(i)} / elements.size
end
#--------------------------------------------------------------------------


上記二つのスクリプトを例に、自分でも調べながら色々と弄ってみましたが思い通りになりません。
連日の質問となってしまいすみませんが、よろしくお願い致します。
最後に編集したユーザー pommpommB on 2019年5月20日(月) 00:05 [ 編集 1 回目 ]

ぽんぽこねるそん
記事: 53
登録日時: 2018年10月26日(金) 12:24

Re: Vx Ace 複数属性使用時の属性有効度について(乗算の場合)

投稿記事by ぽんぽこねるそん » 2019年5月19日(日) 23:55

pommpommBさん、こんにちは。
乗算ならこれで求めることができます。

コード: 全て選択

elements.inject(1.0) {|r, i| r * element_rate(i) }
pommpommB
記事: 8
登録日時: 2019年5月18日(土) 18:20

Re: Vx Ace 複数属性使用時の属性有効度について(乗算の場合)

投稿記事by pommpommB » 2019年5月20日(月) 00:05

ぽんぽこねるそんさん、こんにちは。
やりたかった通りにスクリプトが変更できました!
昨日に引き続きご回答いただき、誠にありがとうございました<(_ _*)>

“VX / Ace:質問” へ戻る