Original Source
- Original title: [SOLVED] Disable Manually Saving in Specific Slots
- Original author: Rutsah
- Original date: September 23, 2021
- Source thread: https://forums.rpgmakerweb.com/threads/solved-disable-manually-saving-in-specific-slots.140734/
- Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS3 Scripts (RMVX Ace) > RGSS3 Script Requests
Summary
Hey. My game uses custom scripts to turn the 1st save slot into an Autosave slot, and the 2nd one into a Quick-Save slot. Can anyone make a mini-script that disables manually saving into either of these slots so players don't accidentally lose their progress (but does not inhibit the either the auto or quick-save)? The following are the save-related scripts my game uses: Spoiler: Quick Save System (by Adiktuzmiko and modded by Roninator2) Code:
Archived First Post
The following are the save-related scripts my game uses:
module ADIK
module QUICK
#Is the system enabled?
ENABLED = true
#Save file index to be used by Quick save/load
#Note that by default the first file is index 0
INDEX = 1
#SaveLoad Keybindings
#Default are L and R keys (Q/W at the keyboard by default)
SAVE_KEY = :L
LOAD_KEY = :L
#Set these if you want to use a button "combo" to activate the system
#Example if SAVE_KEY is set as :L and SAVE_KEY_2 is set as :A
#then you need to press both to activate the quick save
SAVE_KEY_2 = nil
LOAD_KEY_2 = :A
#Is the system allowed in battle scene?
#I suggest keeping this as false
ALLOW_AT_BATTLE = false
#Is the system allowed during the Show Text event command?
ALLOW_AT_TEXT = false
end
end
# DO NOT EDIT BELOW THIS LINE
if ADIK::QUICK::ENABLED
class Scene_Quick < Scene_File
attr_accessor :quick_save
attr_accessor :quick_load
def create_help_window
end
def help_window_text
end
#def create_savefile_viewport
#@savefile_viewport = Viewport.new
#@savefile_viewport.rect.y = 0
# @savefile_viewport.rect.height = 0
#end
#def create_savefile_windows
# @savefile_windows = Array.new(item_max) do |i|
# Window_SaveFile.new(savefile_height, i)
#end
# @savefile_windows.each {|window| window.viewport = @savefile_viewport; window.hide }
#end
def init_selection
end
def update
if @quick_save
if DataManager.save_game(ADIK::QUICK::INDEX)
Sound.play_save
else
Sound.play_buzzer
end
@quick_save = false
SceneManager.return
end
if @quick_load
if DataManager.load_game(ADIK::QUICK::INDEX)
Sound.play_load
$game_system.on_after_load
@quick_load = false
SceneManager.goto(Scene_Map)
else
Sound.play_buzzer
@quick_load = false
SceneManager.return
end
end
end
def quicksave
@quick_save = true
end
def quickload
@quick_load = true
end
end
class Scene_Base
def quicksave
SceneManager.call(Scene_Quick)
SceneManager.scene.quicksave
end
def quickload
SceneManager.call(Scene_Quick)
SceneManager.scene.quickload
end
def is_quicksave
if ADIK::QUICK::SAVE_KEY_2 != nil
return (Input.trigger?(ADIK::QUICK::SAVE_KEY) and Input.press?(ADIK::QUICK::SAVE_KEY_2))
else
if ADIK::QUICK::LOAD_KEY_2 != nil
return false if Input.press?(ADIK::QUICK::LOAD_KEY_2)
end
return Input.trigger?(ADIK::QUICK::SAVE_KEY)
end
end
def is_quickload
if ADIK::QUICK::LOAD_KEY_2 != nil
return (Input.trigger?(ADIK::QUICK::LOAD_KEY) and Input.press?(ADIK::QUICK::LOAD_KEY_2))
else
if ADIK::QUICK::SAVE_KEY_2 != nil
return false if Input.press?(ADIK::QUICK::SAVE_KEY_2)
end
return Input.trigger?(ADIK::QUICK::LOAD_KEY)
end
end
def quicksystem
if is_quicksave and not SceneManager.scene_is?(Scene_Save)
if SceneManager.scene_is?(Scene_Battle) then
if ADIK::QUICK::ALLOW_AT_BATTLE
quicksave
end
else
quicksave
end
return
end
if is_quickload and not SceneManager.scene_is?(Scene_Load)
if SceneManager.scene_is?(Scene_Battle) then
if ADIK::QUICK::ALLOW_AT_BATTLE
quickload
end
else
quickload
end
return
end
end
alias update_quicksystem update
def update
update_quicksystem
quicksystem
end
end
class Game_Interpreter
def wait_for_message
while $game_message.busy?
SceneManager.scene.quicksystem
Fiber.yield
end
end
end
end
Autosave by V.M of D.T
module DataManager
def self.save_game_without_rescue(index)
File.open(make_filename(index), "wb") do |file|
$game_system.on_before_save
scene = SceneManager.scene
scene.dispose_lights if scene.is_a?(Scene_Map)
Marshal.dump(make_save_header, file)
Marshal.dump(make_save_contents, file)
scene.setup_lights if scene.is_a?(Scene_Map)
@last_savefile_index = index
end
return true
end
end
class Scene_Map
def dispose_lights; @spriteset.dispose_lights; end
def setup_lights; @spriteset.setup_lights; end
end
Mog's Scene File A
Whoever helps, your names will be added in the game's credits.
Downloads / Referenced Files
Log in, then follow the RPG Maker Developers Group to see these download links.
Log in to downloadLicense / Terms Note
Whoever helps, your names will be added in the game's credits.
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
Topic Summary
Loading summary...