#============================================================================== # □ 戦闘不能時ステート解除設定 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20111215 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["戦闘不能時ステート解除設定"] = true if $rgsslab["戦闘不能時ステート解除設定"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Down_State_Remove_Setting #-------------------------------------------------------------------------- # ○ ステート維持の文字列設定 # ステート維持の文字列を指定します。 # # データベースのステートにあるメモ欄にて # SAVE_STATES_NOTEで設定した文字列(前後に[]を付けて下さい)を # 記述すると、そのステートは戦闘不能になっても # クリアされずにステートを維持するようになります。 # # 設定例 # SAVE_STATES_NOTEが"ステート維持"の場合 # データベースでのステートのメモ欄に # [ステート維持] # と書きます。 #-------------------------------------------------------------------------- SAVE_STATES_NOTE = "ステート維持" end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Down_State_Remove_Setting [module] #============================================================================== module RGSSLAB::Down_State_Remove_Setting #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "戦闘不能時ステート解除設定" VERSION = 1 RELEASE = 20111215 end #============================================================================== # ■ Game_BattlerBase [class] #============================================================================== class Game_BattlerBase #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_107 = RGSSLAB::Down_State_Remove_Setting #-------------------------------------------------------------------------- # ● ステート情報をクリア [再定義] #-------------------------------------------------------------------------- def clear_states return clear_states_revive_process if $rgsslab["自動蘇生ステート"] return clear_states_normal_process end #-------------------------------------------------------------------------- # ○ ステート情報をクリア(通常) #-------------------------------------------------------------------------- def clear_states_normal_process save_state_ids = [] save_state_turns = {} save_state_steps = {} unless @states.class == NilClass for state_id in @states if $data_states[state_id].note[/\[#{RGSSLAB_107::SAVE_STATES_NOTE}\]/] save_state_ids.push(state_id) save_state_turns[state_id] = @state_turns[state_id] save_state_steps[state_id] = @state_steps[state_id] end end end @states = [] @state_turns = {} @state_steps = {} for state_id in save_state_ids @states.push(state_id) @state_turns[state_id] = save_state_turns[state_id] @state_steps[state_id] = save_state_steps[state_id] end return end #-------------------------------------------------------------------------- # ○ ステート情報をクリア(自動蘇生ステートと併用の場合) #-------------------------------------------------------------------------- def clear_states_revive_process copy_revive_id = nil for revive_id in RGSSLAB_016::SET.keys break if @states.class == NilClass if @states.include?(revive_id) copy_revive_id = revive_id break end end save_state_ids = [] save_state_turns = {} save_state_steps = {} unless @states.class == NilClass for state_id in @states if $data_states[state_id].note[/\[#{RGSSLAB_107::SAVE_STATES_NOTE}\]/] && state_id != copy_revive_id save_state_ids.push(state_id) save_state_turns[state_id] = @state_turns[state_id] save_state_steps[state_id] = @state_steps[state_id] end end end @states = [] @state_turns = {} @state_steps = {} for state_id in save_state_ids @states.push(state_id) @state_turns[state_id] = save_state_turns[state_id] @state_steps[state_id] = save_state_steps[state_id] end @states.push(copy_revive_id) if copy_revive_id != nil return end end end