#============================================================================== # ■ RGSS2 変数依存タイトルグラフィック&BGM Ver1.01 by 星潟 #------------------------------------------------------------------------------ # セーブ時、特定変数IDの値を別の専用データに分けてセーブします。 # その変数の値に応じて、タイトル画像及びタイトルBGMを変化させます。 #============================================================================== module VariablesTitle #セーブ時に専用データに保存する変数IDを指定します。 VID = 8 #前より変数の値が低くても専用データを更新するかを設定します。 #(trueで更新する。falseで更新しない) FUP = false #空のハッシュを用意します。(変更不要) Hash = {} #変数の値に応じたタイトルデータを設定します。 #初期状態はHash[0]が参照されます。 #設定していない変数値の場合、エディタ上で設定した物になります。 #例.Hash[0] = ["Title",["Battle1",80,100]] #この場合、変数の値が0の場合の設定となります。 #内容としては、タイトル画像のファイル名がTitle、 #タイトルBGMはBattle1の音量80、ピッチ100となります。 Hash[0] = ["Title",["Battle1",80,100]] Hash[1] = ["TitleA",["Battle2",80,100]] Hash[2] = ["TitleB",["Battle3",80,100]] Hash[3] = ["TitleC",["Battle4",80,100]] #変数データ保存用ファイル名を指定。 Name = "TitleData.rvdata" end class Scene_Title < Scene_Base #-------------------------------------------------------------------------- # タイトルグラフィックの作成 #-------------------------------------------------------------------------- alias create_title_graphic_change_by_v create_title_graphic def create_title_graphic get_title_variables_data create_title_graphic_change_by_v a = VariablesTitle::Hash[$data_system.title_va] @sprite.bitmap = Cache.system(a[0]) if a end #-------------------------------------------------------------------------- # タイトル用変数値設定 #-------------------------------------------------------------------------- def get_title_variables_data n = VariablesTitle::Name begin g = load_data(n) rescue nil;end begin $data_system.title_va = g.title_va rescue g = Game_Variables_Title.new g.title_va = 0 save_data(g, n) $data_system.title_va = 0 end end end class Game_Variables_Title attr_accessor :title_va end class RPG::System attr_accessor :title_va #-------------------------------------------------------------------------- # タイトルBGM #-------------------------------------------------------------------------- alias title_bgm_change_by_v title_bgm unless $! def title_bgm a = title_data_get(1) return title_bgm_change_by_v unless a a = RPG::BGM.new(a[0],a[1],a[2]) end #-------------------------------------------------------------------------- # タイトル関連データ取得 #-------------------------------------------------------------------------- def title_data_get(num) return false unless num a = VariablesTitle::Hash[title_va] a = a[num] if a a end end class Scene_File < Scene_Base #-------------------------------------------------------------------------- # セーブデータの書き込み #-------------------------------------------------------------------------- alias write_save_data_change_by_v write_save_data def write_save_data(file) write_save_data_change_by_v(file) n = VariablesTitle::Name begin g = load_data(n) rescue g = Game_Variables_Title.new end begin g.title_va ||= 0 rescue g = Game_Variables_Title.new g.title_va ||= 0 end g.title_va = $game_variables[VariablesTitle::VID] if VariablesTitle::FUP or g.title_va < $game_variables[VariablesTitle::VID] save_data(g, n) end end