#============================================================================== # ■ RGSS3 敏捷性・運効果簡易拡張 Ver1.04 by 星潟 #------------------------------------------------------------------------------ # 敏捷性と運に命中率・回避率・会心率・会心回避率・魔法回避率を # 強化する追加性能を新たに設定します。 # また、運によるステート異常付与成功率設定を変更する機能を持ちます。 #------------------------------------------------------------------------------ # Ver1.01 引数設定を行っていない箇所を修正しました。 # また、全体的な処理の簡略化を行いました。 # # Ver1.02 運のステート付与成功率影響度関連を拡張し # 成功率増幅の上限と下限が設定できるようになりました。 # 例えば、影響度下限が0.1の場合、通常のステート耐性がなければ # 付与率1000%のステート付与であれば # 運の差がどれだけあっても無効化する事ができません。 # # Ver1.03 命中率・回避率・会心率・会心回避率・魔法回避率に対する影響の # 小数点桁数の上限を設定可能にしました。 # とりあえず2にしています。よくわからない場合は弄らないでください。 # # Ver1.04 小数点桁数の上限処理について、処理内容を細分化。 # 運による有効度変化率の取得処理を微調整 #============================================================================== module AL_ENH #============================================================================== #命中率・回避率・会心率・会心回避率・魔法回避率に対し #100分の1単位での影響度の設定を行います。(小数点以下の設定も可能) #なお、数値の部分をnilにすると、影響しなくなります。 #空の配列を準備。(消さないで下さい) ARRAY1 = [] #敏捷性による命中率変動 ARRAY1.push(10) #敏捷性による回避率変動 ARRAY1.push(10) #敏捷性による会心率変動 ARRAY1.push(10) #敏捷性による会心回避率変動 ARRAY1.push(10) #敏捷性による魔法回避率変動 ARRAY1.push(10) #敏捷性依存の値において本来の値である小数点以下の値に換算した際に #小数点何桁までを有効な値として計算するかを指定 ARRAY1Digit = 2 #敏捷性依存の値において小数点以下の桁数に関する処理内容を指定 #0の場合、有効な桁までの値で四捨五入する #1の場合、有効な桁までの値で切り上げる #2の場合、有効な桁までの値で切り捨てる #それ以外の場合、特に設定桁数による処理を行わない ARRAY1Type = 3 #空の配列を準備。(消さないで下さい) ARRAY2 = [] #運による命中率変動 ARRAY2.push(5) #運による回避率変動 ARRAY2.push(5) #運による会心率変動 ARRAY2.push(5) #運による会心回避率変動 ARRAY2.push(5) #運による魔法回避率変動 ARRAY2.push(5) #運依存の値において本来の値である小数点以下の値に換算した際に #小数点何桁までを有効な値として計算するかを指定 ARRAY2Digit = 2 #運依存の値において小数点以下の桁数に関する処理内容を指定 #0の場合、有効な桁までの値で四捨五入する #1の場合、有効な桁までの値で切り上げる #2の場合、有効な桁までの値で切り捨てる #それ以外の場合、特に設定桁数による処理を行わない ARRAY2Type = 3 #============================================================================== #運のステート付与成功率影響度関連 #空の配列を準備。(消さないで下さい) ARRAY3 = [] #運のステート付与/耐性への影響度上限 #10.0の場合、運によるステート付与成功率への影響度は最大10倍までに限定。 ARRAY3.push(10.0) #運のステート付与/耐性への影響度下限 #0.1の場合、運によるステート付与成功率への影響度は最低0.1倍までに限定。 ARRAY3.push(0.1) #運のステート付与/耐性への影響 #0.002の場合、500の差があれば確実に付与できるor無効化可能 ARRAY3.push(0.002) end class Game_BattlerBase #-------------------------------------------------------------------------- # 敏捷性・運による追加能力値の取得 #-------------------------------------------------------------------------- def al_param(type) return 0 if type > 4 or type < 0 ald1 = AL_ENH::ARRAY1[type] ald2 = AL_ENH::ARRAY2[type] data1 = (nzd(ald1) ? agi * ald1 * Rational(1,10000) : 0) case AL_ENH::ARRAY1Type when 0;data1 = data1.round(AL_ENH::ARRAY1Digit) when 1,2; rate = 10 ** AL_ENH::ARRAY1Digit data1 *= rate data1 = AL_ENH::ARRAY1Type == 1 ? data1.ceil : data1.floor data1 *= Rational(1,rate) end data2 = (nzd(ald2) ? luk * ald2 * Rational(1,10000) : 0) case AL_ENH::ARRAY2Type when 0;data2 = data2.round(AL_ENH::ARRAY2Digit) when 1,2; rate = 10 ** AL_ENH::ARRAY2Digit data2 *= rate data2 = AL_ENH::ARRAY2Type == 1 ? data2.ceil : data2.floor data2 *= Rational(1,rate) end (data1 + data2).to_f end #-------------------------------------------------------------------------- # データが0かnilの時はfalseを返し、そうでない場合はtrueを返す。 #-------------------------------------------------------------------------- def nzd(data) data && data != 0 end #-------------------------------------------------------------------------- # 変更後の命中率〜魔法回避率の取得 #-------------------------------------------------------------------------- alias xparam_al_enh xparam def xparam(xparam_id) xparam_al_enh(xparam_id) + al_param(xparam_id) end end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # 運による有効度変化率の取得 #-------------------------------------------------------------------------- def luk_effect_rate(user) array = AL_ENH::ARRAY3 result = 1.0 + (user.luk - luk) * array[2] result = array[1] if array[1] > result result = array[0] if array[0] < result result end end