RPGツクールXP/VX用のRGSS素材です。
一部英語版対応です。
(A few materials can be used for English RPG MAKER XP/VX.)
競合率はルファーの独断と偏見なのでたまにハズレます。
#==============================================================================
# ■ セーブデータ圧縮
#------------------------------------------------------------------------------
# セーブデータの読み書きを、圧縮しながら行うようにします。
# (C) ルファー
# https://tkoolerlufar.pages.dev/
#==============================================================================
=begin
=対応RGSS
3
=他の素材との競合の可能性
!.. おそらくありませんが、上のほうに置くと競合しにくくなるかもしれません。
連絡してくだされば対応します。
=注意
この素材を導入すると、以前のセーブデータは読み込めなくなってしまいます。
ご注意ください。
=更新履歴
2011/12/17 「ゲームデータの圧縮」時、デバッグ時のセーブデータが含まれる
可能性があった(未検証)ため、セーブデータのファイル名を変更
2011/12/15 公開
=再定義しているメソッド
DataManager.save_file_exists?
DataManager.make_filename
DataManager.save_game_without_rescue
DataManager.load_game_without_rescue
DataManager.load_header_without_rescue
=新規定義している定数
DataManager::Lufar_FILENAME_FORMAT
=end
#----------------------------------------------------------------------------
# ◆ DataManager モジュール
#----------------------------------------------------------------------------
module DataManager
#--------------------------------------------------------------------------
# ● 定数
#--------------------------------------------------------------------------
Lufar_FILENAME_FORMAT = "Save%s.rvdata2" # ファイル名の書式
#--------------------------------------------------------------------------
# ● セーブファイルの存在判定
#--------------------------------------------------------------------------
def self.save_file_exists?
!Dir.glob(sprintf(Lufar_FILENAME_FORMAT, "*")).empty?
end
#--------------------------------------------------------------------------
# ● ファイル名の作成
# index : ファイルインデックス
#--------------------------------------------------------------------------
def self.make_filename(index)
sprintf(Lufar_FILENAME_FORMAT, sprintf("%02d", index + 1))
end
#--------------------------------------------------------------------------
# ● セーブの実行(例外処理なし)
#--------------------------------------------------------------------------
def self.save_game_without_rescue(index)
Zlib::GzipWriter.open(make_filename(index)) do |file|
$game_system.on_before_save
Marshal.dump(make_save_header, file)
Marshal.dump(make_save_contents, file)
@last_savefile_index = index
end
return true
end
#--------------------------------------------------------------------------
# ● ロードの実行(例外処理なし)
#--------------------------------------------------------------------------
def self.load_game_without_rescue(index)
Zlib::GzipReader.open(make_filename(index)) do |file|
Marshal.load(file)
extract_save_contents(Marshal.load(file))
reload_map_if_updated
@last_savefile_index = index
end
return true
end
#--------------------------------------------------------------------------
# ● セーブヘッダのロード(例外処理なし)
#--------------------------------------------------------------------------
def self.load_header_without_rescue(index)
Zlib::GzipReader.open(make_filename(index)) do |file|
return Marshal.load(file)
end
return nil
end
end
戻る