初期状態では武器に複数属性を設定した場合、
一番効果の高い属性が反映されます。
これをスクリプトで、複数属性の有効度の平均値を反映するように変更したいです。
例
攻撃側→武器属性[斬,火]
防御側属性有効度→斬[100%]火[50%]
この場合、(100% + 50%) /2
の平均で75%のダメージ補正が反映されるようになってほしい。
恐らく、スクリプトの変更場所は
Game_Battler 内の
● 属性の最大修正値の取得
def elements_max_rate(elements)
elements.inject([0.0]) {|r, i| r.push(element_rate(i)) }.max
end
この部分を書き換えると良いと思うのですが、計算式が分かりません。
どなたかご教示頂けないでしょうか。
よろしくお願い致します。
【解決済み】Vx Ace 複数属性使用時の属性有効度について
【解決済み】Vx Ace 複数属性使用時の属性有効度について
最後に編集したユーザー pommpommB [ 2019年5月18日(土) 20:36 ], 累計 1 回
Re: Vx Ace 複数属性使用時の属性有効度について
pommpommBさん、こんにちは。
elements_max_rateの計算式をこう書きかえればスキルの属性が通常攻撃の時に
攻撃側のすべての通常攻撃属性に対する有効度の平均になるはずです。
elements_max_rateの計算式をこう書きかえればスキルの属性が通常攻撃の時に
攻撃側のすべての通常攻撃属性に対する有効度の平均になるはずです。
コード: 全て選択
def elements_max_rate(elements)
elements.inject(0.0) {|r, i| r + element_rate(i) } / elements.size
end
Re: Vx Ace 複数属性使用時の属性有効度について
ぽんぽこねるそんさん、こんにちは!
早速のご回答ありがとうございます。
スクリプトエディタの▼ ゲームオブジェクトのGame_Battler 内を書き換えましたが、
変更前と同じように最も有効度の高い属性が反映されてしまいます……。
#--------------------------------------------------------------------------
# ● 属性の最大修正値の取得
# elements : 属性 ID の配列
# 与えられた属性の中で最も有効な修正値を返す
#--------------------------------------------------------------------------
def elements_max_rate(elements)
elements.inject(0.0) {|r, i| r + element_rate(i)} / elements.size
end
スクリプトは上記のように変更しました。
テスト環境は、
攻撃時属性[斬,火]の武器を装備したキャラクターで、
属性有効度 斬[100%] 火[10%]に設定した敵キャラクターを通常攻撃しております。
早速のご回答ありがとうございます。
スクリプトエディタの▼ ゲームオブジェクトのGame_Battler 内を書き換えましたが、
変更前と同じように最も有効度の高い属性が反映されてしまいます……。
#--------------------------------------------------------------------------
# ● 属性の最大修正値の取得
# elements : 属性 ID の配列
# 与えられた属性の中で最も有効な修正値を返す
#--------------------------------------------------------------------------
def elements_max_rate(elements)
elements.inject(0.0) {|r, i| r + element_rate(i)} / elements.size
end
スクリプトは上記のように変更しました。
テスト環境は、
攻撃時属性[斬,火]の武器を装備したキャラクターで、
属性有効度 斬[100%] 火[10%]に設定した敵キャラクターを通常攻撃しております。
Re: Vx Ace 複数属性使用時の属性有効度について
こちらの環境では問題なく平均値を返します。
考えられる原因は
・プロジェクトを保存していない
・通常攻撃の属性が通常攻撃になっていない
・スクリプトが競合している
ぐらいですかね。
以上を確認してみてください。
考えられる原因は
・プロジェクトを保存していない
・通常攻撃の属性が通常攻撃になっていない
・スクリプトが競合している
ぐらいですかね。
以上を確認してみてください。
Re: Vx Ace 複数属性使用時の属性有効度について
再度のご回答ありがとうございます。
原因はプロジェクトを保存していない事でした、すみませんm(_ _;m)
おかげ様で理想通りの変更がされました。
とても助かりました、ありがとうございます!
原因はプロジェクトを保存していない事でした、すみませんm(_ _;m)
おかげ様で理想通りの変更がされました。
とても助かりました、ありがとうございます!