=begin RGSS3    ★ ゲーム内共有変数 ★ 設定箇所で指定したスイッチと変数をゲーム全体で共有します。 ● 仕様 ●========================================================== スクリプト導入後にセーブするとゲームフォルダ内に新しく "PublicData" というrvdata2ファイルが自動的に作成されます。 -------------------------------------------------------------------- 共有データセーブのタイミングは、通常のセーブ時 共有データロードのタイミングは、通常のロード時&ゲーム立ち上げ時です。 ==================================================================== ● イベントについて ●============================================== イベントコマンドのスクリプトに、 write_public_data と記述すると、任意のタイミングで共有データのセーブを行うことができます。 エンディング時などにどうぞ。 ==================================================================== ver1.00 Last Update : 2011/12/17 12/17 : RGSS2からの移植 ろかん   http://kaisou-ryouiki.sakura.ne.jp/ =end module PUBLIC_DATA #---------------------------------------------------------------------------- # ● 設定箇所ここから #---------------------------------------------------------------------------- # 共有するスイッチ番号 (例 : SWITCH = [3, 7, 12]) SWITCH = [] # 共有する変数番号 (例 : VARIABLE = [1, 6]) VARIABLE = [] # 通常のセーブと同時に共有データのセーブも行うかどうか(true/ false) S_AUTOSAVE = true #---------------------------------------------------------------------------- # ● 設定箇所ここまで #---------------------------------------------------------------------------- end $rsi ||= {} $rsi["ゲーム内共有変数"] = true $public = [{}, {}] #============================================================================== # ■ PUBLIC_DATA #------------------------------------------------------------------------------ #  共有データの書き込み、読み込みを実行するモジュール #============================================================================== module PUBLIC_DATA # 共有データファイル名 FILE_NAME = "PublicData.rvdata2" #-------------------------------------------------------------------------- # ● 共有データの書き込み #-------------------------------------------------------------------------- def self.write_public_data SWITCH.each{|i| $public[0][i] = $game_switches[i]} VARIABLE.each{|i| $public[1][i] = $game_variables[i]} save_data($public, FILE_NAME) end #-------------------------------------------------------------------------- # ● 共有データの読み込み #-------------------------------------------------------------------------- def self.read_public_data if File.exist?(FILE_NAME) $public = load_data(FILE_NAME) $public[0].each_pair{|key, value| $game_switches[key] = value if SWITCH.include?(key) } $public[1].each_pair{|key, value| $game_variables[key] = value if VARIABLE.include?(key) } end end end class << DataManager #-------------------------------------------------------------------------- # ● 各種ゲームオブジェクトの作成 #-------------------------------------------------------------------------- alias public_data_create_game_objects create_game_objects def create_game_objects public_data_create_game_objects PUBLIC_DATA.read_public_data end #-------------------------------------------------------------------------- # ● セーブの実行 #-------------------------------------------------------------------------- alias public_data_save_game save_game def save_game(index) if public_data_save_game(index) PUBLIC_DATA.write_public_data true else false end end #-------------------------------------------------------------------------- # ● ロードの実行 #-------------------------------------------------------------------------- alias public_data_load_game load_game def load_game(index) if public_data_load_game(index) PUBLIC_DATA.read_public_data true else false end end end class Game_Interpreter #-------------------------------------------------------------------------- # ● 共有データの保存 #-------------------------------------------------------------------------- def write_public_data PUBLIC_DATA.write_public_data end end