=begin
RGSS3
★ ゲーム内共有変数 ★
設定箇所で指定したスイッチと変数をゲーム全体で共有します。
● 仕様 ●==========================================================
スクリプト導入後にセーブするとゲームフォルダ内に新しく
"PublicData"
というrvdata2ファイルが自動的に作成されます。
--------------------------------------------------------------------
共有データセーブのタイミングは、通常のセーブ時
共有データロードのタイミングは、通常のロード時&ゲーム立ち上げ時です。
====================================================================
● イベントについて ●==============================================
イベントコマンドのスクリプトに、
write_public_data
と記述すると、任意のタイミングで共有データのセーブを行うことができます。
エンディング時などにどうぞ。
====================================================================
ver1.00
Last Update : 2011/12/17
12/17 : RGSS2からの移植
ろかん [url]http://kaisou-ryouiki.sakura.ne.jp/[/url]
=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