a-story-about-stolen-lover/Scripts/_.10.rb
2024-02-03 15:51:02 -06:00

127 lines
No EOL
4.7 KiB
Ruby
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=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 = [27]
# 共有する変数番号 (例 : VARIABLE = [1, 6])
VARIABLE = [48,111]
# 通常のセーブと同時に共有データのセーブも行うかどうか(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