# # クリティカル率変動ステート(RGSS2) #  (C)2008 TYPE74RX-T # #-------------------------------------------------------------------------- # ★ システムワードの登録:クリティカル率 #-------------------------------------------------------------------------- module RPG class State alias rx_rgss2b21_rx_extract_sys_str_from_note rx_extract_sys_str_from_note def rx_extract_sys_str_from_note rx_get_sys = RX_T.get_system_word_in_note(@note, "クリティカル率", true) unless rx_get_sys == "" @@rx_copy_str += rx_get_sys @note = @note.sub(rx_get_sys, "") @note = @note.sub("\r\n", "") end @rx_sys_str = @@rx_copy_str # メソッドを呼び戻す rx_rgss2b21_rx_extract_sys_str_from_note end end end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● クリティカル率の取得 #-------------------------------------------------------------------------- alias rx_rgss2b21_cri cri def cri rx_result = 0 rx_cri_num = 0 # クリティカル率取得値 # ★ クリティカル率を設定しているステートがあれば、その数値を取得 # 複数設定されている場合は一番クリティカル率が高いステートの数値を採用 for state in states rx_cri_num = RX_T.get_numeric_of_system_word_in_sys_str(state, "クリティカル率") rx_result = rx_cri_num if rx_result < rx_cri_num end # ★ クリティカル率が設定されていれば通常補正を加味したものを返す if rx_result > 0 # アクターのクリティカル頻発フラグがあれば補正 rx_result += 4 if actor.critical_bonus return rx_result end # メソッドを呼び戻す rx_rgss2b21_cri end end #============================================================================== # ■ Game_Enemy #------------------------------------------------------------------------------ #  敵キャラを扱うクラスです。このクラスは Game_Troop クラス ($game_troop) の # 内部で使用されます。 #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● クリティカル率の取得 #-------------------------------------------------------------------------- alias rx_rgss2b21_cri cri def cri rx_result = 0 rx_cri_num = 0 # クリティカル率取得値 # ★ クリティカル率を設定しているステートがあれば、その数値を取得 # 複数設定されている場合は一番クリティカル率が高いステートの数値を採用 for state in states rx_cri_num = RX_T.get_numeric_of_system_word_in_sys_str(state, "クリティカル率") rx_result = rx_cri_num if rx_result < rx_cri_num end # ★ クリティカル率が設定されていればその数値を返す return rx_result if rx_result > 0 # メソッドを呼び戻す rx_rgss2b21_cri end end