# # バトルリトライスキル(RGSS2) #  (C)2008 TYPE74RX-T # #-------------------------------------------------------------------------- # ★ システムワードの登録:バトルリトライ #-------------------------------------------------------------------------- module RPG class BaseItem alias rx_rgss2bo24_rx_extract_sys_str_from_note rx_extract_sys_str_from_note unless $@ def rx_extract_sys_str_from_note rx_get_sys = RX_T.get_system_word_in_note(@note, "バトルリトライ") 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_rgss2bo24_rx_extract_sys_str_from_note end end end def deep_copy(obj) Marshal.load(Marshal.dump(obj)) end #============================================================================== # ■ Scene_Base #------------------------------------------------------------------------------ #  ゲーム中のすべてのシーンのスーパークラスです。 #============================================================================== class Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias rx_rgss2bo24_start start def start # ★ シーンが戦闘シーンなら if $scene.kind_of?(Scene_Battle) # 戦闘開始時の状態を一時変数に保存 write_retry_data end # メソッドを呼び戻す rx_rgss2bo24_start end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 失敗の表示 # target : 対象者 (アクター) # obj : スキルまたはアイテム #-------------------------------------------------------------------------- alias rx_rgss2bo24_display_failure display_failure def display_failure(target, obj) # ★ システムワードに「バトルリトライ」が含まれていれば if obj != nil and RX_T.check_system_word_in_sys_str(obj, "バトルリトライ") # 戦闘開始時の状態を一時変数から読み込む read_retry_data $scene = Scene_Battle.new return end # メソッドを呼び戻す rx_rgss2bo24_display_failure(target, obj) end #-------------------------------------------------------------------------- # ★ バトルのリトライ用一時変数の書き込み #-------------------------------------------------------------------------- def write_retry_data # 各種ゲームオブジェクトを書き込む @rx2_retry = [] @rx2_retry[0] = deep_copy($game_switches) @rx2_retry[1] = deep_copy($game_variables) @rx2_retry[2] = deep_copy($game_self_switches) @rx2_retry[3] = deep_copy($game_actors) @rx2_retry[4] = deep_copy($game_party) @rx2_retry[5] = deep_copy($game_troop) end #-------------------------------------------------------------------------- # ★ バトルのリトライ用一時変数の読み込み #-------------------------------------------------------------------------- def read_retry_data # 各種ゲームオブジェクトを読み込む $game_switches = deep_copy(@rx2_retry[0]) $game_variables = deep_copy(@rx2_retry[1]) $game_self_switches = deep_copy(@rx2_retry[2]) $game_actors = deep_copy(@rx2_retry[3]) $game_party = deep_copy(@rx2_retry[4]) $game_troop = deep_copy(@rx2_retry[5]) end end