|
Fantasist
|
 |
« on: February 24, 2008, 12:02:29 PM » |
|
Temp Save Authors: Fantasist Version: 2.1 Type: Save Feature Key Term: Title / Save / Load / GameOver Add-on
IntroductionWith this script, the 'Save' option in the menu will do a quick save and take you to the title screen. The next time you load, the quick save is loaded instead of letting the player choose from the save files. Once the quick save file is loaded, it is deleted. Features- Imitates the quick save feature found in many games
- Saving from menu will quick save and take you to the title screen instead of opening the save scene (and leaves the normal saving only for save points in the game)
- Works with almost any related script including CMSes, exotic save systems and even encryption systems
Screenshotsn/a DemoOn demand. ScriptPlace this script anywhere above "Main" and below "Scene_Load". #============================================================================== # ** Temp Save #------------------------------------------------------------------------------ # by Fantasist # Version: 2.1 # Date: 05-July-2009 #------------------------------------------------------------------------------ # Version History: # # 1.0 - First version for the default title and file scenes # 1.1 - Improved coding # 2.0 - Complete overhaul, greatly increased compatibility # 2.1 - Removed obselete option, added prompt disable and fixed some bugs #------------------------------------------------------------------------------ # Description: # # With this script, the 'Save' option in the menu will do a quick save and # take you to the title screen. The next time you load, the quick save is # loaded instead of letting the playwer choose from the save files. Once the # quick save file is loaded, it is deleted. #------------------------------------------------------------------------------ # Compatibility: # # From version 2.0, it should be compatible with almost anything, including # exotic save systems, save scenes and even encryption systems. # # For scripters: There is nothing like absolute compatibility, so this still # has it's limitations: # - The quick save procedure is only activated when Scene_Save is called # from Scene_Menu. You can change that by tinkering with # "@temp_save_active" in "Scene_Save" -> "initialize". # - This script assumes that you're using the Scene_File class for the # saving and loading. #============================================================================== # Instructions: # # - Place this script anywhere above "Main" and below "Scene_Load". # - In Scene_Title, find the following lines or similar: # # @continue_enabled = false # for i in 0..3 # if FileTest.exist?("Save#{i+1}.rxdata") # @continue_enabled = true # end # end # # Now add the following line right after the above code: # # if FileTest.exist?(Scene_File::TEMP_SAVE_NAME) # @continue_enabled = true # end #------------------------------------------------------------------------------ # Configuration: # # Scroll down a bit and you'll see the configuration. # # TEMP_SAVE_NAME: The name (and path if needed) for the temp save file. # TEMP_LOAD_TEXT: The message to be displayed when a temp save is loaded. # TEMP_SAVE_TEXT: The message to be displayed when asking for temp save # confirmation. # DISABLE_PROMPT: If this is set to true, the prompt and confirmation windows # will be disabled. (Please check Issues!) #------------------------------------------------------------------------------ # Issues: # # If DISABLE_PROMPT is activated, while loading or saving a quick-save, # there will be 2 sounds of button press instead of 1. Actually, it is the # sound of button press and the sound of saving and loading. Fixing this # means losing a lot of compatibility (since v2.0), so I have no intention # of doing that unless I get an idea which retains compatibility. #------------------------------------------------------------------------------ # Credits and Thanks: # # Fantasist, for making this script # dmoose for requesting this script # Hadeki for requesting the improvements #------------------------------------------------------------------------------ # Notes: # # If you have any problems, suggestions or comments, you can find me at: # # - forum.chaos-project.com # - www.quantumcore.forumotion.com # # Enjoy ^_^ #==============================================================================
#============================================================================== # ** Scene_Load #==============================================================================
class Scene_File #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # CONFIG START #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: TEMP_SAVE_NAME = 'Data/ScriptCache.rxdata' DISABLE_PROMPT = false TEMP_LOAD_TEXT = 'Quick load complete. Press Enter to continue.' TEMP_SAVE_TEXT = 'Do you want to quick save?' #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # CONFIG END #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: alias temp_save_main_hack main def main if $scene.is_a?(Scene_Load) if FileTest.exist?(TEMP_SAVE_NAME) main_quickload else temp_save_main_hack end elsif $scene.is_a?(Scene_Save) if @temp_save_active main_quicksave else temp_save_main_hack end end end def main_quickload unless DISABLE_PROMPT @prompt_window = Window_Prompt.new(TEMP_LOAD_TEXT) Graphics.transition loop do Graphics.update Input.update break if Input.trigger?(Input::C) end Graphics.freeze @prompt_window.dispose end load_quicksave_data # Load Data # Load Map $game_system.bgm_play($game_system.playing_bgm) $game_system.bgs_play($game_system.playing_bgs) $game_map.update $scene = Scene_Map.new end def load_quicksave_data $game_temp = Game_Temp.new unless $game_temp $game_system.se_play($data_system.load_se) file = File.open(TEMP_SAVE_NAME, 'rb') read_save_data(file) file.close File.delete(TEMP_SAVE_NAME) end def main_quicksave if DISABLE_PROMPT on_decision(TEMP_SAVE_NAME) $scene = Scene_Title.new else @prompt_window = Window_Prompt.new(TEMP_SAVE_TEXT, 1) Graphics.transition loop do Graphics.update Input.update update_quicksave break if $scene != self end Graphics.freeze @prompt_window.dispose end end def update_quicksave @prompt_window.update if Input.trigger?(Input::C) if @prompt_window.index == 0 on_decision(TEMP_SAVE_NAME) $scene = Scene_Title.new else on_cancel end elsif Input.trigger?(Input::B) on_cancel end end end
#============================================================================== # ** Scene_Save #==============================================================================
class Scene_Save alias temp_save_detect_menu initialize def initialize @temp_save_active = $scene.is_a?(Scene_Menu) temp_save_detect_menu end end
#============================================================================== # ** Window_Prompt #==============================================================================
class Window_Prompt < Window_Base attr_reader :index def initialize(txt, mode=0, index=0) @txt, @mode = txt, mode width = text_width(txt) + 32 width = 300 if width < 300 height = 64 + mode * 64 super(320 - width/2, 240 - height/2, width, height) self.contents = Bitmap.new(self.width - 32, self.height - 32) refresh @index = @mode > 0 ? index : -1 end def text_width(text) b = Bitmap.new(1, 1) w = b.text_size(text).width b.dispose return w end def reset(txt, mode=0, index=0) @txt = txt unless txt == nil @mode = mode @index = @mode > 0 ? index : -1 self.contents.dispose width = text_width(txt) + 32 width = 300 if width < 300 self.width, self.height = width, 64 + mode * 64 self.x, self.y = 320 - self.width/2, 240 - self.height/2 self.contents = Bitmap.new(self.width - 32, self.height - 32) refresh update_cursor_rect end def refresh self.contents.clear self.contents.draw_text(0, 0, self.width - 32, 32, @txt, 1) return unless @mode > 0 self.contents.draw_text(self.width/2 - 16 - 34, 32, 68, 32, 'Yes', 1) self.contents.draw_text(self.width/2 - 16 - 34, 64, 68, 32, 'No', 1) end def index=(index) @index = index update_cursor_rect end def update_cursor_rect if @index < 0 self.cursor_rect.empty return end cursor_width = self.contents.text_size(' Yes ').width x = (self.width - cursor_width)/2 - 16 y = 32 + @index * 32 self.cursor_rect.set(x, y, cursor_width, 32) end def update super return unless @mode > 0 if self.active && @index >= 0 if Input.repeat?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index = (@index + 1) % 2 elsif Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index = (@index + 3) % 2 end end update_cursor_rect end end
InstructionsIn Scene_Title, find the following lines or similar: @continue_enabled = false for i in 0..3 if FileTest.exist?("Save#{i+1}.rxdata") @continue_enabled = true end end
Now add the following lines right after the above code: if FileTest.exist?(Scene_File::TEMP_SAVE_NAME) @continue_enabled = true end
ConfigurationTEMP_SAVE_NAME: The name (and path if needed) for the temp save file. TEMP_LOAD_TEXT: The message to be displayed when a temp save is loaded. TEMP_SAVE_TEXT: The message to be displayed when asking for temp save confirmation. DISABLE_PROMPT: If this is set to true, the prompt and confirmation windows will be disabled. (Please check Issues!) Compatibility From version 2.0, it should be compatible with almost anything, including exotic save systems, save scenes and even encryption systems. For scripters: There is nothing like absolute compatibility, so this still has it's limitations: - The quick save procedure is only activated when Scene_Save is calledfrom Scene_Menu. You can change that by tinkering with "@temp_save_active" in "Scene_Save" -> "initialize".
- This script assumes that you're using the Scene_File class for the saving and loading.
Issues If DISABLE_PROMPT is activated, while loading or saving a quick-save, there will be 2 sounds of button press instead of 1. Actually, it is the sound of button press and the sound of saving and loading. Fixing this means losing a lot of compatibility (since v2.0), so I have no intention of doing that unless I get an idea which retains compatibility. Credits and Thanks- Fantasist, for making this script
- dmoose for requesting this script
- Hadeki for requesting the improvements
Author's NotesIf you have any problems, suggestions or comments, you can find me at: - http://forum.chaos-project.com - http://quantumcore.forumotion.comEnjoy ^_^
|
|
|
|
« Last Edit: July 05, 2009, 08:28:12 PM by Fantasist »
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Nortos
Has earned a custom title
Astral Trancist
   
Level: 19
Offline
Gender: 
Posts: 1303
Celestial Bomb my Digital Ass
|
 |
« Reply #1 on: February 24, 2008, 12:03:52 PM » |
|
good job I saw this on your forum a request by Dmoose it's a nice script 
|
|
|
|
|
Logged
|
|
|
|
|
|
Fantasist
|
 |
« Reply #2 on: February 24, 2008, 12:49:37 PM » |
|
ty Nortos  I have an idea, I'll mod the Scene_File to handle quick-load (pressing continue will open the loading screen, but you'll be shown a dialog where you chose to quickload or not. If not, you're returned to the title screen. Technically the same effect, youre forced to use the quicksave file, but it's more compatible. Hm... I'll do it sometime, it prevents conflicts with other scripts which mod Scene_Title's def main.
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Nortos
Has earned a custom title
Astral Trancist
   
Level: 19
Offline
Gender: 
Posts: 1303
Celestial Bomb my Digital Ass
|
 |
« Reply #3 on: February 24, 2008, 01:06:17 PM » |
|
sounds good I'm looking forward to it atm I'm making a HUD for my game of gold playtime location ect and it appears for 5 or so seconds every time you come back to scene_map say after a menu or battle or if an input is pressed
|
|
|
|
« Last Edit: February 24, 2008, 01:06:49 PM by Nortos »
|
Logged
|
|
|
|
|
|
Fantasist
|
 |
« Reply #4 on: February 24, 2008, 01:39:58 PM » |
|
when will be the net update btw? Just chuck in another few scenes, update your scripting work, and if there's lot of updates in features, and if you don't want to call it a second demo, call it a tech demo 
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
|
Punn
|
 |
« Reply #5 on: February 24, 2008, 02:18:37 PM » |
|
Oh!! Can you adjust Stormtronic CMS? Just remove the Save scene with the Temp save scene instead.. xD
|
|
|
|
|
Logged
|
|
|
|
|
Sally
Sallygirl :P
Remexos Team Member
Astral Trancist
   
Level: 11
Offline
Gender: 
Posts: 1281
|
 |
« Reply #6 on: February 24, 2008, 06:25:40 PM » |
|
i don't understand what it dose...
|
|
|
|
|
Logged
|
|
|
|
|
|
Punn
|
 |
« Reply #7 on: February 24, 2008, 08:35:33 PM » |
|
i don't understand what it dose...
Read there... Temp Save Version: 1.1 Type: Save Feature IntroductionWith this script, the 'Save' option in the menu will do a quick save and take you to the title screen, which will have a 'Quick Save' (or any word you like) option instead of 'Continue'. On loading a quick save, the quick save file is deleted after loading the game. Features- Imitates the quick save feature found in many games
- Saving from menu will quick save and take you to the title screen instead of opening the save scene (and leaves the actual saving only for save points in the game)
- The 'Continue' option in the game becomes 'Quick Load' (or any text you want) when you're taken to the title screen after a quick save
If you play games like Breath Of Fire, if your choose to save from the menu, it will make a temp file,once its load, its gone.
|
|
|
|
|
Logged
|
|
|
|
|
Nortos
Has earned a custom title
Astral Trancist
   
Level: 19
Offline
Gender: 
Posts: 1303
Celestial Bomb my Digital Ass
|
 |
« Reply #8 on: February 25, 2008, 12:03:50 AM » |
|
yeah Mums would be easy to mod storms cms with this
|
|
|
|
|
Logged
|
|
|
|
|
|
Calintz
|
 |
« Reply #9 on: February 25, 2008, 02:22:58 AM » |
|
This is nice... I've always thought that quick-saves were a good feature to have in your games...
|
|
|
|
|
Logged
|
Calintz: A Pixels Worst Nightmare
|
|
|
|
|
Fantasist
|
 |
« Reply #10 on: February 25, 2008, 04:22:22 PM » |
|
If you play games like Breath Of Fire, if your choose to save from the menu, it will make a temp file,once its load, its gone. Right you are, and not to forget, it basically forces you to use the quick save instead of the save files. @mum: Mod coming up in my next post.
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
|
fugibo
|
 |
« Reply #11 on: February 27, 2008, 04:00:44 AM » |
|
How about you just have the game save a backup of all the game data into the RAM, rather than saving? It'll be 10x faster and non-abusable (you know my history with save files...)
|
|
|
|
|
Logged
|
|
|
|
|
|
Fantasist
|
 |
« Reply #12 on: February 27, 2008, 03:38:10 PM » |
|
RAM as in Random Access Memory? That's way beyond my level! hm, or do you just mean to use, say, a global to dump all data instead of a marshal file? Like this?: $temp_save_data = [$game_system, $game_party, $game_screen.....] But that would get erased when the user exits the program, I want the file to stay for when the user reopens the project later. @mum: I just realized STCMS is one of the only (probably the only) CMS where I need to mod a part of my script for everything to work right. Here's what you need to do: 1) Search for 'class Scene_Menu', scroll down for 'when 6' and find this line: @scene = Scene_CMSSave.new 2) comment that line and add 'quick_save', it should look like this: quick_save #@scene = Scene_CMSSave.new (commenting only for backup reasons, not necessary) 3) Make a new slot and paste the following (or paste this below everything in the temp save script instead of making a new slot): class Scene_Menu def quick_save file = File.open(Quick_Save, 'wb') characters = [] $game_party.actors.each {|actor| characters.push([actor.character_name, actor.character_hue]) } Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) $game_system.save_count += 1 if Change_Save_Count $game_system.magic_number = $data_system.magic_number 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) file.close @scene = Scene_Title.new end end
Now, arrange the scripts in this order: - Temp Save - Temp Save fix for STCMS (if you put the above code in a new slot) - STCMS It will work. @Bliz: Does STCMS have a recognizable global (like $stcms)? I didn't find one...
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Blizzard
Where am I?
Administrator
Has over 9000 posts
 
Level: 394
Offline
Gender: 
Posts: 11280
OMG! Is that Dolce & Gabbana?!
|
 |
« Reply #13 on: February 27, 2008, 03:56:23 PM » |
|
# for compatibility $stormtronics_cms = 5.2
|
|
|
|
|
Logged
|
I have retired from RMXP! Please do not send me PMs or e-Mails asking for support!Ahhh, what an awful dream. Ones and zeroes everywhere... and I thought I saw a two. It was just a dream, Bender. There's no such thing as two.
|
|
|
|
|
Fantasist
|
 |
« Reply #14 on: February 27, 2008, 04:11:56 PM » |
|
Shit, bad Bliz, BAD! I searched, and double checked for $stcms! *goes makes this script compatible with STCMS* Say, how far back does this go? Do I use if $stormtronics_cms or do I use if $stormtronics_cms >= 5.2 EDIT: Wait! Not so fast! When I place this above STCMS, it doesn't work! And when I place it below, it messes up STCMS. That's it. I'll come up with version 2 in an hour. @Bliz: Is it a good idea to mod Scene_Title to show 'Quick Load' instead of continue or do I mod Scene_File instead? Modding Scene_File is more compatible, but what would you prefer? Not technically, but what would you think will be cooler?
|
|
|
|
« Last Edit: February 27, 2008, 04:23:47 PM by Fantasist »
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Blizzard
Where am I?
Administrator
Has over 9000 posts
 
Level: 394
Offline
Gender: 
Posts: 11280
OMG! Is that Dolce & Gabbana?!
|
 |
« Reply #15 on: February 27, 2008, 04:32:14 PM » |
|
Scene_File, then you wouldn't even need to check the compatibility of STCMS.
If you use the first you only check whether STCMS is installed, the second one would make a version requirement as well.
|
|
|
|
|
Logged
|
I have retired from RMXP! Please do not send me PMs or e-Mails asking for support!Ahhh, what an awful dream. Ones and zeroes everywhere... and I thought I saw a two. It was just a dream, Bender. There's no such thing as two.
|
|
|
|
|
Fantasist
|
 |
« Reply #16 on: February 27, 2008, 04:40:42 PM » |
|
Scene_File for v2 then  If you use the first you only check whether STCMS is installed, the second one would make a version requirement as well. I know, I meant to ask if even really old versions have that global, where 'when 6' is 'when <num>', that is to say in older versions, 'Save' is not the 7th file. Cause if I use the first one, I can make it compatible with older versions too. but now that I think about it, I don;t see why one would prefer using an older version of STCMS...
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Blizzard
Where am I?
Administrator
Has over 9000 posts
 
Level: 394
Offline
Gender: 
Posts: 11280
OMG! Is that Dolce & Gabbana?!
|
 |
« Reply #17 on: February 27, 2008, 04:55:31 PM » |
|
I think 5.1 was the first to have that.
|
|
|
|
|
Logged
|
I have retired from RMXP! Please do not send me PMs or e-Mails asking for support!Ahhh, what an awful dream. Ones and zeroes everywhere... and I thought I saw a two. It was just a dream, Bender. There's no such thing as two.
|
|
|
|
|
Fantasist
|
 |
« Reply #18 on: February 27, 2008, 05:01:17 PM » |
|
Cool, I'll go with only recognition and not version recognition.
Hey, KCG uses a module for recognition constants, right? Why don't you adopt that method too?
|
|
|
|
|
Logged
|
I have stopped developing code for RMXP. And as of now, I am no longer going to update or even properly support my scripts. I just might, but don't count on it. So you collectors out there might want to download any of my demos and stuff before Sendspace deletes them from their server. I hate to leave my work unsupported, but I'm just not willing to spend my mental resources on RGSS anymore. So, I welcome the other scripters here to use/adapt my scripts and post their modified versions if they want.Sorry and thank you. 
|
|
|
|
Blizzard
Where am I?
Administrator
Has over 9000 posts
 
Level: 394
Offline
Gender: 
Posts: 11280
OMG! Is that Dolce & Gabbana?!
|
 |
« Reply #19 on: February 27, 2008, 08:32:16 PM » |
|
Because checking whether a module exists or not is a pain.  I put big configs into the BlizzCFG module now, but I always use a global variable for recognition. Simply easier that way.
|
|
|
|
« Last Edit: February 27, 2008, 08:34:43 PM by Blizzard »
|
Logged
|
I have retired from RMXP! Please do not send me PMs or e-Mails asking for support!Ahhh, what an awful dream. Ones and zeroes everywhere... and I thought I saw a two. It was just a dream, Bender. There's no such thing as two.
|
|
|
|