lunariafantasia/Scripts/_.4.rb
2024-01-12 03:12:38 -06:00

135 lines
No EOL
5.8 KiB
Ruby

#==============================================================================
# ■ DataManager
#------------------------------------------------------------------------------
#  データベースとゲームオブジェクトを管理するモジュールです。ゲームで使用する
# ほぼ全てのグローバル変数はこのモジュールで初期化されます。
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# ● セーブファイルの存在判定 ※再定義
#--------------------------------------------------------------------------
def self.save_file_exists?
!Dir.glob('Save/Save*.rvdata2').empty?
end
#--------------------------------------------------------------------------
# ● セーブファイルの最大数 ※再定義
#--------------------------------------------------------------------------
def self.savefile_max
return 40
end
#--------------------------------------------------------------------------
# ● ファイル名の作成 ※再定義
# index : ファイルインデックス
#--------------------------------------------------------------------------
def self.make_filename(index)
sprintf("Save/Save%02d.rvdata2", index + 1)
end
#--------------------------------------------------------------------------
# ● セーブの実行 ※再定義
#--------------------------------------------------------------------------
def self.save_game(index)
Dir.mkdir("Save") unless Dir.exist?("Save")
begin
save_game_without_rescue(index)
rescue
delete_save_file(index)
false
end
end
#--------------------------------------------------------------------------
# ● セーブヘッダの作成
#--------------------------------------------------------------------------
def self.make_save_header
header = {}
header[:characters] = $game_party.characters_for_savefile
header[:members] = $game_party.member_for_savefile
header[:playtime_s] = $game_system.playtime_s
header[:game_clear] = $game_variables[27]
header[:save_time] = $game_party.save_day_time
header[:save_map] = $game_map.save_name
header[:liberate] = $game_variables[FAKEREAL::LIBERATE]
header[:draw_flag] = $game_switches[FAKEREAL::LIBERATE_OPACITY]
header[:chapter] = $game_system.now_chapter
header
end
end
#==============================================================================
# ■ Game_Party
#------------------------------------------------------------------------------
#  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ
# スのインスタンスは $game_party で参照されます。
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ○ セーブした日付
#--------------------------------------------------------------------------
def save_day_time
time = Time.now
return "#{time.year}/#{time.mon}/#{time.mday}"
end
#--------------------------------------------------------------------------
# ○ セーブファイル表示用のキャラクター情報
#--------------------------------------------------------------------------
def member_for_savefile
battle_members.collect do |actor|
[actor.face_name, actor.face_index, actor.name, actor.level]
end
end
end
=begin
#==============================================================================
# ■ SceneManager
#------------------------------------------------------------------------------
#  シーン遷移を管理するモジュールです。たとえばメインメニューからアイテム画面
# を呼び出し、また戻るというような階層構造を扱うことができます。
#==============================================================================
module SceneManager
#--------------------------------------------------------------------------
# ● モジュールのインスタンス変数
#--------------------------------------------------------------------------
@save_bitmap = nil # 背景用ビットマップ
end
class << SceneManager
#--------------------------------------------------------------------------
# ● 背景として使うためのスナップショット作成
#--------------------------------------------------------------------------
alias save_snapshot_for_background snapshot_for_background
def snapshot_for_background
save_snapshot_for_background
@save_bitmap.dispose if @save_bitmap
@save_bitmap = Graphics.snap_to_bitmap
end
#--------------------------------------------------------------------------
# ● 背景用ビットマップを取得
#--------------------------------------------------------------------------
def save_bitmap
@save_bitmap
end
end
#==============================================================================
# ■ Scene_MenuBase
#------------------------------------------------------------------------------
#  メニュー画面系の基本処理を行うクラスです。
#==============================================================================
class Scene_MenuBase < Scene_Base
#--------------------------------------------------------------------------
# ● 背景の作成
#--------------------------------------------------------------------------
def create_background
@background_sprite = Sprite.new
@background_sprite.bitmap = SceneManager.save_bitmap
@background_sprite.width
@background_sprite.height
@background_sprite.color.set(16, 16, 16, 128)
end
end
=end