#============================================================================== # ■ RGSS3 アクター/パーティ保存/復帰 Ver1.03 by 星潟 #------------------------------------------------------------------------------ # アクターやパーティの状態を保存し、保存した状態に巻き戻します。 #------------------------------------------------------------------------------ # ★設定例(全てイベントコマンドのスクリプトで行います) #------------------------------------------------------------------------------ # party_preserve_gold # # 所持金を保存します。 #------------------------------------------------------------------------------ # party_preserve_actors # # 現在のメンバーを保存します。 #------------------------------------------------------------------------------ # party_preserve_item # # 現在のアイテムを保存します。 #------------------------------------------------------------------------------ # party_preserve_weapon # # 現在の武器を保存します。 #------------------------------------------------------------------------------ # party_preserve_armor # # 現在の防具を保存します。 #------------------------------------------------------------------------------ # actor_preserve(1) # # 現在のID1のアクターのEXP・能力強化・スキル・装備を保存します。 #------------------------------------------------------------------------------ # party_preserve_all_item # # 現在のアイテム・武器・防具を保存します。 #------------------------------------------------------------------------------ # all_actor_preserve # # 現在の全アクターのEXP・能力強化・スキル・装備を保存します。 #------------------------------------------------------------------------------ # party_reverse_gold # # 所持金を保存時の状態に戻します。 # 保存されていない場合は初期化されます。 #------------------------------------------------------------------------------ # party_reverse_actors # # 現在のメンバーを保存時の状態に戻します。 # 保存されていない場合はメンバーが存在しない状態になります。 #------------------------------------------------------------------------------ # party_reverse_item # # 現在のアイテムを保存時の状態に戻します。 # 保存されていない場合は初期化されます。 #------------------------------------------------------------------------------ # party_reverse_weapon # # 現在の武器を保存時の状態に戻します。 # 保存されていない場合は初期化されます。 #------------------------------------------------------------------------------ # party_reverse_armor # # 現在の防具を保存時の状態に戻します。 # 保存されていない場合は初期化されます。 #------------------------------------------------------------------------------ # actor_reverse(1) # # 現在のID1のアクターのEXP・能力強化・スキル・装備を保存時の状態に戻します。 # 保存されていないアクターには無効です。 #------------------------------------------------------------------------------ # party_reverse_all_item # # 現在のアイテム・武器・防具を保存時の状態に戻します。 # 保存されていない場合は初期化されます。 #------------------------------------------------------------------------------ # all_actor_reverse # # 現在の全アクターのEXP・能力強化・スキル・装備を保存時の状態に戻します。 # 保存されていないアクターには無効です。 #------------------------------------------------------------------------------ # Ver1.01 アクターを保存時の状態に戻すコマンドの説明文を修正しました。 # (スクリプト部分の変更は行っていません) # Ver1.02 EXPが正常に戻らない不具合を修正しました。 # Ver1.03 メンバー復元時、マップ上のパーティ表示が変更されるように修正しました。 #============================================================================== module PRESERVE_CONDITION #名前がないキャラクターも保存を行うか? #trueで行う falseで行わない ACTOR_NAME_EMPTY = false end class Game_Interpreter #-------------------------------------------------------------------------- # 所持金保存 #-------------------------------------------------------------------------- def party_preserve_gold $game_party.party_preserve_gold end #-------------------------------------------------------------------------- # 現在のメンバー保存 #-------------------------------------------------------------------------- def party_preserve_actors $game_party.party_preserve_actors end #-------------------------------------------------------------------------- # 現在のアイテム保存 #-------------------------------------------------------------------------- def party_preserve_item $game_party.party_preserve_item end #-------------------------------------------------------------------------- # 現在の武器保存 #-------------------------------------------------------------------------- def party_preserve_weapon $game_party.party_preserve_weapon end #-------------------------------------------------------------------------- # 現在の防具保存 #-------------------------------------------------------------------------- def party_preserve_armor $game_party.party_preserve_armor end #-------------------------------------------------------------------------- # 現在のアクター保存 #-------------------------------------------------------------------------- def actor_preserve(actor_id) $game_actors[actor_id].actor_preserve end #-------------------------------------------------------------------------- # 現在のアイテム・武器・防具保存 #-------------------------------------------------------------------------- def party_preserve_all_item party_preserve_item party_preserve_weapon party_preserve_armor end #-------------------------------------------------------------------------- # 現在の全アクター保存 #-------------------------------------------------------------------------- def all_actor_preserve $data_actors.each {|actor| next unless actor $game_actors[actor.id].actor_preserve} end #-------------------------------------------------------------------------- # 所持金復帰 #-------------------------------------------------------------------------- def party_reverse_gold $game_party.party_reverse_gold end #-------------------------------------------------------------------------- # メンバー復帰 #-------------------------------------------------------------------------- def party_reverse_actors $game_party.party_reverse_actors $game_player.refresh $game_map.need_refresh = true end #-------------------------------------------------------------------------- # アイテム復帰 #-------------------------------------------------------------------------- def party_reverse_item $game_party.party_reverse_item $game_map.need_refresh = true end #-------------------------------------------------------------------------- # 武器復帰 #-------------------------------------------------------------------------- def party_reverse_weapon $game_party.party_reverse_weapon $game_map.need_refresh = true end #-------------------------------------------------------------------------- # 防具復帰 #-------------------------------------------------------------------------- def party_reverse_armor $game_party.party_reverse_armor $game_map.need_refresh = true end #-------------------------------------------------------------------------- # アクター復帰 #-------------------------------------------------------------------------- def actor_reverse(actor_id) $game_actors[actor_id].actor_reverse $game_player.refresh $game_map.need_refresh = true end #-------------------------------------------------------------------------- # アイテム・武器・防具復帰 #-------------------------------------------------------------------------- def party_reverse_all_item party_reverse_item party_reverse_weapon party_reverse_armor end #-------------------------------------------------------------------------- # 全アクター復帰 #-------------------------------------------------------------------------- def all_actor_reverse $data_actors.each {|actor| next unless actor $game_actors[actor.id].actor_reverse} end end class Game_Party < Game_Unit #-------------------------------------------------------------------------- # 所持金保存 #-------------------------------------------------------------------------- def party_preserve_gold party_preserve_gold_data(@gold) end #-------------------------------------------------------------------------- # 現在のメンバー保存 #-------------------------------------------------------------------------- def party_preserve_actors party_preserve_actors_data(@actors) end #-------------------------------------------------------------------------- # 現在のアイテム保存 #-------------------------------------------------------------------------- def party_preserve_item party_preserve_item_data(@items) end #-------------------------------------------------------------------------- # 現在の武器保存 #-------------------------------------------------------------------------- def party_preserve_weapon party_preserve_weapon_data(@weapons) end #-------------------------------------------------------------------------- # 現在の防具保存 #-------------------------------------------------------------------------- def party_preserve_armor party_preserve_armor_data(@armors) end #-------------------------------------------------------------------------- # 所持金復帰 #-------------------------------------------------------------------------- def party_reverse_gold @gold = party_preserve_gold_data end #-------------------------------------------------------------------------- # アクター復帰 #-------------------------------------------------------------------------- def party_reverse_actors @actors = party_preserve_actors_data.clone end #-------------------------------------------------------------------------- # アイテム復帰 #-------------------------------------------------------------------------- def party_reverse_item @items = party_preserve_item_data.clone end #-------------------------------------------------------------------------- # 武器復帰 #-------------------------------------------------------------------------- def party_reverse_weapon @weapons = party_preserve_weapon_data.clone end #-------------------------------------------------------------------------- # 防具復帰 #-------------------------------------------------------------------------- def party_reverse_armor @armors = party_preserve_armor_data.clone end #-------------------------------------------------------------------------- # 所持金データ #-------------------------------------------------------------------------- def party_preserve_gold_data(data = nil) @party_preserve_gold_data = 0 if @party_preserve_gold_data == nil @party_preserve_gold_data = data if data != nil @party_preserve_gold_data end #-------------------------------------------------------------------------- # メンバーデータ #-------------------------------------------------------------------------- def party_preserve_actors_data(data = nil) @party_preserve_actors_data = [] if @party_preserve_actors_data == nil @party_preserve_actors_data = data.clone if data != nil @party_preserve_actors_data end #-------------------------------------------------------------------------- # アイテムデータ #-------------------------------------------------------------------------- def party_preserve_item_data(data = nil) @party_preserve_item_data = {} if @party_preserve_item_data == nil @party_preserve_item_data = data.clone if data != nil @party_preserve_item_data end #-------------------------------------------------------------------------- # 武器データ #-------------------------------------------------------------------------- def party_preserve_weapon_data(data = nil) @party_preserve_weapon_data = {} if @party_preserve_weapon_data == nil @party_preserve_weapon_data = data.clone if data != nil @party_preserve_weapon_data end #-------------------------------------------------------------------------- # 防具データ #-------------------------------------------------------------------------- def party_preserve_armor_data(data = nil) @party_preserve_armor_data = {} if @party_preserve_armor_data == nil @party_preserve_armor_data = data.clone if data != nil @party_preserve_armor_data end end class Game_Actor #-------------------------------------------------------------------------- # アクター保存 #-------------------------------------------------------------------------- def actor_preserve return if !PRESERVE_CONDITION::ACTOR_NAME_EMPTY && $data_actors[id].name.empty? @actor_preserve_data = {:exp => {}, :param_plus => [0] * 8,:skills => [],:equips => []} @actor_preserve_data[:exp] = @exp.clone @actor_preserve_data[:param_plus] = @param_plus.clone @actor_preserve_data[:skills] = @skills.clone @equips.each {|i| @actor_preserve_data[:equips].push(i.clone)} end #-------------------------------------------------------------------------- # アクター復帰 #-------------------------------------------------------------------------- def actor_reverse return if @actor_preserve_data == nil @exp = @actor_preserve_data[:exp].clone @param_plus = @actor_preserve_data[:param_plus].clone @skills = @actor_preserve_data[:skills].clone @equips.each_index {|i| @equips[i] = @actor_preserve_data[:equips][i].clone} change_exp(exp, false) end end