=begin ◆ 特殊データの書き込み・読み込み・評価 最終更新:2008/02/12 【使い方】 イベントコマンドの「スクリプト」及び 「条件分岐」のスクリプトで次のように記述します。 @書き込み (イベントコマンド「スクリプト」) ------------------------------------ write_special_data(filename, object) ------------------------------------ filename : ファイル名 object : 書き込むオブジェクト A評価 (「条件分岐」スクリプト) ----------------------------------- eval_special_data(filename, object) ----------------------------------- filename : ファイル名 object : 評価するオブジェクト 【イベント作成例】 @書き込み ----------------------------------------------------------- ◆文章の表示 : クリアデータを作成します。 ◆スクリプト : write_special_data("game_clear", "hogehoge") ----------------------------------------------------------- → hogehoge という文字列を game_clear.rxdata に書き込みます。 A評価 --------------------------------------------------------------------- ◆条件分岐 : スクリプト : eval_special_data("game_clear", "hogehoge") ◆文章の表示 : おっけーです。 : それ以外の場合 ◆文章の表示 : だめです。 : 分岐終了 --------------------------------------------------------------------- → game_clear.rxdata に hogehoge という文字列が書き込まれているかを判定します。 hogehoge と書き込まれていた場合は文章「おっけーです。」を表示。 hogehoge と書き込まれていない場合や game_clear.rxdata が存在しない場合は 文章「だめです。」を表示。 →ゲームのクリア判定などにどうぞ。 前作をクリアしていると次回作で特殊なイベントが発生するなど… 文字列の他にも… ◆スクリプト : write_special_data("switch10", $game_switches[10]) → ID 10 のスイッチの ON/OFF 状態を switch10.rxdata に書き込む。 ◆スクリプト : write_special_data("variable5", $game_variables[5]) → ID 5 の変数の値を variable5.rxdata に書き込む。 などなど… ※ read_special_data(filename) で 書き込まれたオブジェクトそのものを読み込むことも可能です。 =end #============================================================================== # ■ Interpreter #============================================================================== class Interpreter # 拡張子設定 EXTENSION = ".rxdata" #-------------------------------------------------------------------------- # ● 特殊データの書き込み # filename : ファイル名 # object : 書き込むオブジェクト #-------------------------------------------------------------------------- def write_special_data(filename, object) file = File.open(filename + EXTENSION, "wb") Marshal.dump(object, file) file.close end #-------------------------------------------------------------------------- # ● 特殊データの読み込み # filename : ファイル名 #-------------------------------------------------------------------------- def read_special_data(filename) if FileTest.exist?(filename + EXTENSION) file = File.open(filename + EXTENSION, "r") object = Marshal.load(file) file.close return object end end #-------------------------------------------------------------------------- # ● 特殊データの評価 # filename : ファイル名 # object : 評価するオブジェクト #-------------------------------------------------------------------------- def eval_special_data(filename, object) if FileTest.exist?(filename + EXTENSION) return object == read_special_data(filename) else return false end end end