HOME
ツクール
RGSS
テクニック
ゲーム紹介
制作中のゲーム
ダウンロード
掲示板
ブログ
EnDREss DREamERブログ
PCパーツ・ソフト通販(仮)
DIYチューンブログ
リンク
コンティニュー初期化
コンセプト
スクリプトやデータベース変更でテストプレイでいちいちニューゲームがめんどくさい。
挿入位置
▼ 「MAIN」直上で、「装備改造:Scene_Customize」より下。
完成すると
データベース設定変更で途中からのロードデータに適用されるようになる。
一部のゲームオブジェクトの初期化とエディタで削除した実行中イベントの無効化
更新履歴
6/7:個別装備アイテム併用時のデータベース初期化に対応。 ========== 2010年 ============================================================ 11/14: 「職業能力補正」併用時の初期化を修正。 6/6:「通常ロード」で初期化されているのを修正。 6/2:「職業能力補正」に対応。
#============================================================================== # ☆VX RGSS2 「コンティニュー初期化」☆ # EnDlEss DREamER # URL:http://mitsu-evo.6.ql.bz/ # 製作者 mitsu-evo # Last:2010/6/7 # テストプレイでロードでもデータベースやシステム周りの初期化を試みる。 # ▼ 「MAIN」直上で、「装備改造:Scene_Customize」より下。 #============================================================================== $ed_rgss2 = {} if $ed_rgss2 == nil $ed_rgss2["ed_format_continue"] = true # 6/7:個別装備アイテム併用時のデータベース初期化に対応。 # ☆☆初期化項目☆☆ FORMAT_ACTOR = false # 初期化時にアクター能力を含むかどうか =begin ☆☆修正履歴☆☆ 「職業能力補正」に対応。6/2 「通常ロード」で初期化されているのを修正。6/6 「職業能力補正」併用時の初期化を修正。11/15 ☆☆使用方法☆☆ スクリプトを貼り付けて、テストプレイでのみロード時にメニューが表示され 通常ロード」か「初期化してロード」かを選択出来る。 テストプレイでデータベース設定でのBGM変更やアクターの能力調整で ロードデータのアクターへの反映。 セーブイベント等でセーブをしたが、エディタで消してしまい 通常ロードではエラーを出して再開できない時。 その他、何か分からないけどエラーが出た時。 などで対応出来ると思います。 ☆☆注意☆☆ 完全に初期化してロードするものではないので、初期化されないものや エラーをはき出すことがあります。 その場合には諦めて「ニューゲーム」から始めて下さい。 ☆☆機能説明☆☆ データベースを読み込んで、以下のゲームオブジェクト $game_temp $game_message $game_system $game_troop を新規作成して初期化し、以下のメソッドを実行して $game_system.battle_bgm(戦闘BGM) $game_system.battle_end_me(勝利ME) $game_player.make_encounter_count(マップ上のエンカウント歩数再実行) データベース設定にを更新しています。 $game_actors $game_switches $game_variables $game_self_switches $game_party $game_map のゲームオブジェクトは更新せず、コンティニュー時の値を保持します。 これらはスイッチや変数・セルフスイッチにパーティ構成やマップデータ を司っているものなので、初期化されません。 ・セーブ時に実行中のイベントを後にエディタで削除した状態での ロードエラーに対応。 ・アクターの基本ステータスも初期化してからロード時のレベルの能力に 再調整し直します。その際に、アイテムやイベントで増加した能力等も 初期化され、データベース設定での能力に変更されます。 =end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ # バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler end #============================================================================== # ■ Game_Actor #------------------------------------------------------------------------------ # アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors) # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。 #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● レベル設定 #-------------------------------------------------------------------------- def set_level=(value) @level = value end #-------------------------------------------------------------------------- # ● 追加能力値初期化 #-------------------------------------------------------------------------- def format_plus_parameters @maxhp_plus = 0 @maxmp_plus = 0 @atk_plus = 0 @def_plus = 0 @spi_plus = 0 @agi_plus = 0 end end #============================================================================== # ■ Game_Actors #------------------------------------------------------------------------------ # アクターの配列を扱うクラスです。このクラスのインスタンスは $game_actors で # 参照されます。 #============================================================================== class Game_Actors #-------------------------------------------------------------------------- # ● アクター配列の要素数を返す #-------------------------------------------------------------------------- def actor_size return @data.size end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ # イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● イベントの終了 #-------------------------------------------------------------------------- alias ed_format_continue_command_end command_end def command_end if $Format_Load @list = nil # 実行内容リストをクリア if @main and @event_id > 0 # メインのマップイベントの場合 if $game_map.events[@event_id] != nil $game_map.events[@event_id].unlock # イベントのロックを解除 end end else ed_format_continue_command_end end end end #============================================================================== # ■ Scene_File #------------------------------------------------------------------------------ # ファイル画面の処理を行うクラスです。 #============================================================================== class Scene_File < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias ed_format_continue_start start def start ed_format_continue_start create_command_window end #-------------------------------------------------------------------------- # ● コマンドウィンドウの作成 #-------------------------------------------------------------------------- def create_command_window s1 = "通常ロードする" s2 = "初期化してロードする" @command_window = Window_Command.new(160, [s1, s2]) @command_window.index = 0 @command_window.visible = false @command_window.active = false @command_window.x = 544 / 2 - 80 @command_window.y = 416 / 2 - 36 $Format_Load = false end #-------------------------------------------------------------------------- # ● コマンド選択の更新 #-------------------------------------------------------------------------- def update_command_selection if @command_window.active == true if Input.trigger?(Input::B) Sound.play_cancel @command_window.visible = false @command_window.active = false true_active_savefile_windows elsif Input.trigger?(Input::C) Sound.play_load case @command_window.index when 0 # 通常ロードする $Format_Load = false do_load when 1 # 初期化してロードする $Format_Load = true do_load end end end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias ed_format_continue_update update def update @command_window.update if @command_window.active update_command_selection else ed_format_continue_update end end #-------------------------------------------------------------------------- # ● セーブファイルウィンドウの解放 #-------------------------------------------------------------------------- alias ed_format_continue_dispose_item_windows dispose_item_windows def dispose_item_windows ed_format_continue_dispose_item_windows @command_window.dispose # コマンドウィンドウ解放 end #-------------------------------------------------------------------------- # ● セーブファイルウィンドウの非アクティブ #-------------------------------------------------------------------------- def false_active_savefile_windows for window in @savefile_windows window.active = false end end #-------------------------------------------------------------------------- # ● セーブファイルウィンドウのアクティブ #-------------------------------------------------------------------------- def true_active_savefile_windows for window in @savefile_windows window.active = true end end #-------------------------------------------------------------------------- # ● セーブファイルの決定 #-------------------------------------------------------------------------- alias ed_format_continue_determine_savefile determine_savefile def determine_savefile if @saving Sound.play_save do_save else if @savefile_windows[@index].file_exist # テストプレイならウィンドウを出現 if $TEST Sound.play_decision false_active_savefile_windows @command_window.visible = true @command_window.active = true else Sound.play_load do_load end else Sound.play_buzzer return end end $game_temp.last_file_index = @index end #-------------------------------------------------------------------------- # ● セーブデータの読み込み # file : 読み込み用ファイルオブジェクト (オープン済み) #-------------------------------------------------------------------------- alias ed_format_continue_read_save_data read_save_data def read_save_data(file) if $Format_Load == true ed_format_continue_read_save_data(file) create_game_objects else ed_format_continue_read_save_data(file) end end #-------------------------------------------------------------------------- # ● 各種ゲームオブジェクトの作成 #-------------------------------------------------------------------------- def create_game_objects load_database #$game_temp = Game_Temp.new $game_message = Game_Message.new $game_system = Game_System.new $game_system.battle_bgm $game_system.battle_end_me actor_status_format if FORMAT_ACTOR == true $game_party.members $game_troop = Game_Troop.new $game_player.make_encounter_count if $ed_rgss2["ed_weapon_count"] # 個別装備アイテム導入時の武器防具初期化 $game_party.ed_data_weapons_initialize(true) # 個別武器のグローバル変数 $game_party.ed_data_armors_initialize(true) # 個別防具のグローバル変数 $game_party.item_weapons_initialize # 所持武器データの変更反映 $game_party.item_armors_initialize # 所持防具データの変更反映 end end #-------------------------------------------------------------------------- # ● アクター能力の初期化と復帰 #-------------------------------------------------------------------------- def actor_status_format size = $game_actors.actor_size for id in 1...size actor = $game_actors[id] lv = actor.level parameters = $data_actors[id].parameters actor.set_level = 1 actor.format_plus_parameters actor.set_level = lv end end #-------------------------------------------------------------------------- # ● データベースのロード #-------------------------------------------------------------------------- def load_database $data_actors = load_data("Data/Actors.rvdata") $data_classes = load_data("Data/Classes.rvdata") $data_skills = load_data("Data/Skills.rvdata") $data_items = load_data("Data/Items.rvdata") $data_weapons = load_data("Data/Weapons.rvdata") $data_armors = load_data("Data/Armors.rvdata") $data_enemies = load_data("Data/Enemies.rvdata") $data_troops = load_data("Data/Troops.rvdata") $data_states = load_data("Data/States.rvdata") $data_animations = load_data("Data/Animations.rvdata") $data_common_events = load_data("Data/CommonEvents.rvdata") $data_system = load_data("Data/System.rvdata") $data_areas = load_data("Data/Areas.rvdata") end end
Copyright (C)
永遠の夢に向かって
. All Rights Reserved.
テンプレートのpondt
リサーチ