#============================================================================== # ■ RGSS3 属性有効度とステート耐性化の相互読み替え Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 指定IDの属性有効度を指定IDのステート有効度に変えたり # 指定IDのステート有効度を指定IDの属性有効度に変える機能を追加します。 # 本来は属性有効度とステート有効度両方に同じ機能を付ければ済みますが # 図鑑等の機能で自由に特徴が見られる場合、ごちゃごちゃとしてしまう為 # それの対策を行いたい人や、エディタ上の設定を # 簡潔化したい方向けのスクリプトです。 #============================================================================== # その他基本仕様 #============================================================================== # 属性有効度をステート有効度に読み替えた際 # そのステートが特徴「ステート無効」の対象となっている場合、0と判定されます。 #------------------------------------------------------------------------------ # ステート有効度を属性有効度に読み替えた際 # 元のステートが特徴「ステート無効」の対象となっている場合 # 先にステート無効判定で処理される為、読み替え発生以前に処理が行われず # ステート付与そのものが行われません。 #------------------------------------------------------------------------------ # 属性ID12の計算をステートID6で行い # ステートID6の計算を属性ID12で行う、等と設定してしまった場合でも # 循環参照にはならず、最初の読み替えのみ行われます。 #============================================================================== module ERSR #空のハッシュを2つ用意。 ES = {} SE = {} #以下に設定。 #例. #ES[12] = 5 #属性ID12の属性有効度計算はステートID5の有効度で行う。 #ES[13] = 6 #属性ID13の属性有効度計算はステートID6の有効度で行う。 #例. #ES[21] = 7 #ステートID21の属性有効度計算は属性ID7の有効度で行う。 #ES[22] = 8 #ステートID22の属性有効度計算は属性ID8の有効度で行う。 ES[12] = 5 ES[13] = 6 SE[21] = 7 SE[22] = 8 end class Game_BattlerBase #-------------------------------------------------------------------------- # 属性有効度の取得 #-------------------------------------------------------------------------- alias element_rate_state_rate element_rate def element_rate(element_id) a = ERSR::ES[element_id] @ecr_break_flag = @ecr_break_flag ? nil : true b = a && @ecr_break_flag ? (state_resist?(a) ? 0 : state_rate(a)) : element_rate_state_rate(element_id) @ecr_break_flag = nil b end #-------------------------------------------------------------------------- # ステート有効度の取得 #-------------------------------------------------------------------------- alias state_rate_element_rate state_rate def state_rate(state_id) a = ERSR::SE[state_id] @ecr_break_flag = @ecr_break_flag ? nil : true b = a && @ecr_break_flag ? element_rate(a) : state_rate_element_rate(state_id) @ecr_break_flag = nil b end end