Skip to content

Instantly share code, notes, and snippets.

@rutan
Created Aug 1, 2012
Embed
What would you like to do?
セーブデータ保存場所変更さん for RGSS3
# coding: utf-8
#===============================================================================
# ■ セーブデータ保存場所変更さん for RGSS3
# ※ このスクリプトは「HZM_VXAベーススクリプトさん for RGSS3」が必要です
#-------------------------------------------------------------------------------
# 2012/11/14 Ru/むっくRu
#-------------------------------------------------------------------------------
# セーブデータの保存場所をWindowsのAppDataディレクトリに変更します.
#-------------------------------------------------------------------------------
# 【もうちょっと詳しい解説】
# セーブデータの保存先にWindowsが用意している
# AppDataというフォルダに保存するようにします.
# これにより,Windowsのログインユーザ毎に別の場所にデータが保存されるので,
# 同じPCを複数の人が使っている場合でも,
# セーブデータが別に管理されるようになります.
#
# WindowsのAppDataフォルダは以下の場所です
# [Windows Vista,7 の場合]
# C:\Users\<ユーザ名>\AppData\Roaming
# [Windows XP の場合]
# C:\Documents and Settings\<ユーザ名>\Application Data
#-------------------------------------------------------------------------------
# 【オマケ機能】
# AppDataにセーブを保存したくない場合もあるので,
# (例:他人のPC,ネットカフェでプレイする場合 など)
# その場合は,game.iniの末尾に
=begin
↓ ここから ↓
[SaveDir]
NoAppData=1
↑ ここまで ↑
=end
# 上の2行を追加することで,通常通りの保存先になります.
# 配布するときにReadmeあたりに書いておくといいと思います.
#-------------------------------------------------------------------------------
# 【更新履歴】
# 2012/11/14 保存済みが認識できなかったのを修正
# 2012/08/01 ぶっぱ
#-------------------------------------------------------------------------------
#===============================================================================
# ● 設定項目
#==============================================================================
module HZM_VXA
module SaveDir
# ● 保存するフォルダの名前(半角英数字のみ)
# ※他のアプリケーションと被らないようにしてください
DIR_NAME = "TorigoyaTxt_Sample"
end
end
#===============================================================================
# ↑   ここまで設定   ↑
# ↓ 以下、スクリプト部 ↓
#===============================================================================
raise '「HZM_VXAベーススクリプトさん for RGSS3」が必要です' unless defined?(HZM_VXA::Base)
raise '「HZM_VXAベーススクリプトさん for RGSS3」のバージョンが異なります' unless HZM_VXA::Base.check_version?('2.1.0')
module HZM_VXA
module SaveDir
#---------------------------------------------------------------------------
# ● 保存先の取得
#---------------------------------------------------------------------------
def self.save_dir
dir = use_appdata? ?
"#{HZM_VXA::Base.appdata_path}/#{HZM_VXA::SaveDir::DIR_NAME}" :
save_dir_current
HZM_VXA::Base.mkdir_p(dir)
dir.gsub("\\", '/')
end
#---------------------------------------------------------------------------
# ● 保存先にAppDataを使用するか?
#---------------------------------------------------------------------------
def self.use_appdata?
HZM_VXA::Ini.load("SaveDir", "NoAppData").to_i == 0
end
#---------------------------------------------------------------------------
# ● 保存先:AppDataを使用しない場合
#---------------------------------------------------------------------------
def self.save_dir_current
"./"
end
end
end
module DataManager
#--------------------------------------------------------------------------
# ● セーブファイルの存在判定(再定義)
#--------------------------------------------------------------------------
def self.save_file_exists?
!Dir.glob("#{HZM_VXA::SaveDir.save_dir}/Save*.rvdata2").empty?
end
end
class << DataManager
#--------------------------------------------------------------------------
# ● ファイル名の作成
# index : ファイルインデックス
#--------------------------------------------------------------------------
alias hzm_vxa_saveDir_make_filename make_filename
def make_filename(index)
"#{HZM_VXA::SaveDir.save_dir}/#{hzm_vxa_saveDir_make_filename(index)}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment