#==============================================================================
# 「セーブスロット固定」(ACE) Ver.1.0
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# スクリプトの改変は自由に行って頂いて構いませんが
# その場合も元のスクリプトの作成者として名前を載せて下さい。
# また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#
# ゲーム開始時にセーブスロットを選択します。
# 以降、セーブ画面では選択したスロットへの上書きセーブしか行えません。
# またセーブスロット数の変更とオートセーブを実装します。
#
# 使い方は、イベントコマンドのスクリプトで以下を入力します。
#
# n7_auto_save オートセーブを行います。
# n7_manual_save セーブスロットを選択するセーブを行います。
#
#==============================================================================
# ◇初期設定
module Nana
module Fixed_Save_Slot
#セーブスロットの数を指定します。
Max = 4
#通常セーブ時のメッセージを指定します。
SaveMessage = "セーブしますか?"
end
end
# ↑ここまで
#==============================================================================
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● オートセーブ
#--------------------------------------------------------------------------
def n7_auto_save
unless DataManager.save_game($game_system.save_slot)
p "オートセーブに失敗しました。"
end
end
#--------------------------------------------------------------------------
# ● 手動セーブ
#--------------------------------------------------------------------------
def n7_manual_save
SceneManager.call(Scene_Starting_Save)
Fiber.yield
end
end
#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
# システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存
# します。このクラスのインスタンスは $game_system で参照されます。
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :save_slot # セーブスロット
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias n7_fss_initialize initialize
def initialize
n7_fss_initialize
@save_slot = 0
end
end
#==============================================================================
# ■ DataManager
#------------------------------------------------------------------------------
# データベースとゲームオブジェクトを管理するモジュールです。ゲームで使用する
# ほぼ全てのグローバル変数はこのモジュールで初期化されます。
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# ● セーブファイルの最大数
#--------------------------------------------------------------------------
def self.savefile_max
return Nana::Fixed_Save_Slot::Max
end
end
#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
# セーブ画面の処理を行うクラスです。
#==============================================================================
class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# ● ヘルプウィンドウのテキストを取得
#--------------------------------------------------------------------------
def help_window_text
Nana::Fixed_Save_Slot::SaveMessage
end
#--------------------------------------------------------------------------
# ● 最初に選択状態にするファイルインデックスを取得
#--------------------------------------------------------------------------
def first_savefile_index
$game_system.save_slot
end
#--------------------------------------------------------------------------
# ● カーソルの更新
#--------------------------------------------------------------------------
def update_cursor
end
end
#==============================================================================
# ■ Scene_Starting_Save
#------------------------------------------------------------------------------
# ゲーム開始時に行うセーブ画面の処理を行うクラスです。
#==============================================================================
class Scene_Starting_Save < Scene_File
#--------------------------------------------------------------------------
# ● ヘルプウィンドウのテキストを取得
#--------------------------------------------------------------------------
def help_window_text
Vocab::SaveMessage
end
#--------------------------------------------------------------------------
# ● 最初に選択状態にするファイルインデックスを取得
#--------------------------------------------------------------------------
def first_savefile_index
DataManager.last_savefile_index
end
#--------------------------------------------------------------------------
# ● セーブファイルの決定
#--------------------------------------------------------------------------
def on_savefile_ok
super
if DataManager.save_game(@index)
on_save_success
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# ● セーブ成功時の処理
#--------------------------------------------------------------------------
def on_save_success
$game_system.save_slot = @index
Sound.play_save
return_scene
end
#--------------------------------------------------------------------------
# ● セーブファイル[キャンセル]
#--------------------------------------------------------------------------
def on_savefile_cancel
Sound.play_cancel
SceneManager.goto(Scene_Title)
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# タイトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● コマンド[ニューゲーム]
#--------------------------------------------------------------------------
alias n7_fss_command_new_game command_new_game
def command_new_game
n7_fss_command_new_game
SceneManager.call(Scene_Starting_Save)
end
end