Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
Sign in to follow this  
Punk

Force Save before something

Recommended Posts

Requested by Neb/Alcaeus/Akakios from Kamainsworld forums.

 

Create a new script, call it Scene_ForceSave2 and paste this script in there.

When saving, you cannot cancel out. You must save.

 

(This script is a edited version of Scene_Save)

 

#==============================================================================
# ** Scene_ForceSave2
#------------------------------------------------------------------------------
#  This class performs save screen processing and there's no cancelling out.
#==============================================================================
class Scene_ForceSave2 < Scene_File
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
super("Which file would you like to save to?")
 end
 #--------------------------------------------------------------------------
 # * Decision Processing
 #--------------------------------------------------------------------------
 def on_decision(filename)
# Play save SE
$game_system.se_play($data_system.save_se)
# Write save data
file = File.open(filename, "wb")
write_save_data(file)
file.close
# If called from event
if $game_temp.save_calling
  # Clear save call flag
  $game_temp.save_calling = false
  # Switch to map screen
  $scene = Scene_Map.new
  return
end
# Switch to map screen
$scene = Scene_Map.new
 end
 #--------------------------------------------------------------------------
 # * Cancel Processing
 #--------------------------------------------------------------------------
 def on_cancel
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# If called from event
if $game_temp.save_calling
  # Clear save call flag
  $game_temp.save_calling = false
  # Will not go to menu. It will redirect to this scene until the player has saved.
  $scene = Scene_ForceSave2.new
  return
end
# Will not go to menu.
$scene = Scene_ForceSave2.new
 end
 #--------------------------------------------------------------------------
 # * Write Save Data
 #	 file : write file object (opened)
 #--------------------------------------------------------------------------
 def write_save_data(file)
# Make character data for drawing save file
characters = []
for i in 0...$game_party.actors.size
  actor = $game_party.actors[i]
  characters.push([actor.character_name, actor.character_hue])
end
# Write character data for drawing save file
Marshal.dump(characters, file)
# Wrire frame count for measuring play time
Marshal.dump(Graphics.frame_count, file)
# Increase save count by 1
$game_system.save_count += 1
# Save magic number
# (A random value will be written each time saving with editor)
$game_system.magic_number = $data_system.magic_number
# Write each type of game object
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
 end
end

Now when doing an event, use the call script event command and call this.

$scene = Scene_ForceSave2

 

Then after that command, PLEASE use the wait frames command before anything else after using the call script command to call this script.

Share this post


Link to post
Share on other sites

awesome...not sure WHY you would want to FORCE the player to save (it should be the player's choice) but, still cool.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...