"Re-Designing" The Save System

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
I suspect that this isn't as terribly difficult as my mind thinks it is...   :headshake:

I'm trying to modify the "Save" system in the following ways:

-Change all instances of "Save" to "Bookmarks".

-Adjust the Save/Load tile to print the Scene # and Scene Name (Switch Driven, should be easy to derive) in place of the three other character slots.  Add a "Books Read" counter that reads from the "Books Read" variable above the "Time" number.

Without adding an additional "engine", are there any simple code alterations I could use to accomplish this?
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
30,009
Reaction score
7,019
First Language
German
Primarily Uses
RMMV
You'll need a script to do this

I've moved this thread to Script Request. Please be sure to post your threads in the correct forum next time. Thank you.
 

Chiakscare

Resident Tifaholic
Veteran
Joined
Jul 24, 2014
Messages
489
Reaction score
148
First Language
English
Primarily Uses
You may wish to request this as a Script to get the specifics you want and anything other modification to suit your desire.

Although, when you say 'not adding additional engines', do you mean no scripts to add in and just writing into the engine's Save system?
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
I was really trying to use the pure naked VX Ace program as an engine for a "Visual Novel".  It's funny that the save system is going to be what makes me add an engine.   :guffaw:

Thanks for the responses guys.  I appreciate it.   :)

Edit:  When I say "adding an engine", I mean like Luna or Yanfly, or any of the other excessively overpowered scripts for menu alteration I simply don't need with a project like this.
 
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
A mockup would be good.


What is the "books read" variable?
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
There are 38 "readable" text books in the first section, that really do nothing but tell the back story of the society involved.  Each time you read a book for the first time, it will add 1 to a variable called "Books Read".  It really isn't meant to do anything other than track how many of the books you have read on the current playthrough, but none of them are "required" to advance in the story.
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
So you just want us to let you specify which variable to use, and it will show whatever number is in there? Simple enough.


But still, a mockup of how you would want the screen to look would be really helpful.
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
I will have one for you guys within an hour.   :rock-left:
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses


The top one is how it looks now.

The bottom one is how I would like it to look.

Change File to Bookmark; Move Timestamp underneath it.  Have a "Books Read" ticker under that.  Show the chapter, which will always be a static value.  I will only make one "issue" at a time, if I try to make it like a comic book.  The Scene can be derived from switches or even implanted variables.  Any other ideas you may have are welcome, as I'm pretty much just spitballing here.   :rock-left:
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
Tell us what switches/variables you're using for things. This will have to be saved separately in the save file header, as if you have 3 games in progress, you won't want all slots in the save/load window to show a switch or variable, as they would be the values for the CURRENT game and not the SAVED game.


We can't give you other ideas - it's your game - you know what you want it to look like ;)
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
Both of my project use switches to "cut" events.  But I think it would make more sense to bind them to Variables 1 through 12(or higher, but I likely won't ever go past 12 "scenes" in an issue), and have it use the name of the Variable itself to derive the Scene.  I very rarely use variables in this format.  I think I have a total of four in the entire prologue that can be moved to the second page or even the end of the first 20.

Switches would be more complicated, as every switch is named, but most events are driven by switch triggers, and could be confusing to derive.

These are the current variables that I use:

1-OtherStair - Used three times for when you enter a room from a second space, that leads into a conditional branch with one movement change all three times.

2-ManDown - Used to change an event graphic during a visual sequence.

3-ManDown2 - Used for the same purpose in a later event

20-TextBoxRows - Used for Yanfly's Message System, even though I never expand rows past 4.

All of these can be moved and eventing adjusted accordingly, to bind a scene name to a variable and it's name directly.  I would prefer this method, as I can just add a variable command at the end of each scene.

These are my switches:



These could also be renamed, but changing any of these at this point would be major work aside from renaming them.  While "in order", the switch driven nature of the story makes altering anything but the names of these switches something I simply don't wish to do.
 
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
I don't understand. Why are you using several variables for the same thing? If it's to track how far you are through the game, use ONE variable and change it as you go. Then the script only needs to show ONE variable and not do a heap of tests to determine which one to show, when they're always going to contain the same values.
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
I don't have a great deal of understanding with how variables can truly work, and to be honest, I use them like switches half of the time.

I was thinking of was to easily derive the scene names, which do not currently appear anywhere in the project.
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
Because you can only be in one scene at a time, use a variable. Either set the variable to the scene name (by Control Variables and put the name in the Script option), or just increment it by one for each new scene and have the actual names in the script. Variables are there so you DON'T have to use heaps of switches when there can only be one "current" value.
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
Ahh, well that would be super easy to do from my end.  It could be then bound to any variable slot...

If I had to pick one, I would say go with #20.  If it could be a modifiable number, like the way Yanfly's Message System gives you the choice of which variable to pull Text Box Rows and Row Width from, that would make it more accessable to everyone.

Each of my scenes is very easy to access, and adding a "stacking variable" in each scene would be easy easy.   :D
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
Is that the RTP save file window, or do you already have a script that modifies it?
 

optimum45

Veteran
Veteran
Joined
Mar 31, 2015
Messages
537
Reaction score
65
First Language
English
Primarily Uses
The only alteration I've made is to the "Window" file, or windowskin.  The font is also changed from a command in the Main tab, and there is an "Extra_Y" command in my save window to make it taller.
 

Goldstorm

ᕕ( ͡° ͜ʖ ͡°)ᕗ
Veteran
Joined
Jul 21, 2013
Messages
320
Reaction score
186
First Language
English
Primarily Uses
Tell me what you think so far?



Did this in a clean file, so results may vary. If you want we can chat more about what you really need in a PM.
 
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
39,130
Reaction score
12,404
First Language
English
Primarily Uses
RMMV
No need to take it to PM. Discussion of script requirements is what this forum is all about. It also allows others to see what you're doing and (potentially) offer input or learn from you.
 

Goldstorm

ᕕ( ͡° ͜ʖ ͡°)ᕗ
Veteran
Joined
Jul 21, 2013
Messages
320
Reaction score
186
First Language
English
Primarily Uses
Sounds good, Shaz.

Here's what I got so far:

############################################# Created By Goldstorm  08/12/2015 0100 EDT##############################################Call the Vocab Modulemodule Vocab # Save/Load Screen SaveMessage = "Write to book?" LoadMessage = "Read which book?" File = "Bookmark" Books = "Books Read:"end#Call the DataManager Modulemodule DataManager #Add another header def self.make_save_header header = {} header[:characters] = $game_party.characters_for_savefile header[:playtime_s] = $game_system.playtime_s header[:savenum] = $game_variables[1] header[:currentmap] = $game_map.display_name header end #Save Game +1 def self.save_game(index) $game_variables[1] +=1 #Uses Variable 1 begin save_game_without_rescue(index) rescue delete_save_file(index) false end endendclass Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # * OVERWRITE Refresh #-------------------------------------------------------------------------- def refresh contents.clear change_color(normal_color) name = Vocab::File + " #{@file_index + 1}" draw_text(4, 0, 200, line_height, name) @name_width = text_size(name).width draw_party_characters(152, 58) draw_playtime(0, contents.height - line_height, contents.width - 4, 2) book = Vocab::Books draw_text(4, 40, 200, line_height, book) draw_savenums(0, contents.height - line_height, contents.width - 4, 2) draw_gamemap(0, contents.height, contents.width - 4, 2) end #-------------------------------------------------------------------------- # * OVERWRITE Draw Play Time #-------------------------------------------------------------------------- def draw_playtime(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(-430, 20, width, line_height, header[:playtime_s], 2) end #-------------------------------------------------------------------------- # * Draw Save Number #-------------------------------------------------------------------------- def draw_savenums(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(-378, 40, width, line_height, header[:savenum], 2) end #-------------------------------------------------------------------------- # * Draw Game Map #-------------------------------------------------------------------------- def draw_gamemap(x, y, width, align) header = DataManager.load_header(@file_index) return unless header draw_text(0, 0, width, line_height, header[:currentmap], 2) endendWhich should give you this (made some slight changes to my map from my previous image, forgive my incorrect Star Wars episodes):

Vocab change was pretty straight forward, just changed the strings and added Books so I can draw the text "Books Read" just like "Bookmarks."

For the counter, I have it increment Variable 1 every time you save. However, I believe this does mean that you won't be able to use Variable 1 for other things besides a save counter (this can be changed to any variable). I copied the "Draw Play Time" function and made that into a "Draw Save Number" function (I had to add a new save header to draw this properly). Then finagled the X & Y coordinates to get them roughly where I wanted them. Lastly, I copied the "Draw Play Time" function again and created the "Draw Game Map" function (had to create another header for the game map). It's honestly pretty rough right now, and i plan on cleaning it up a bit more when I have more time tomorrow (later today now since it's 1 AM here. Time flew)! If you have any suggestions on improvements or features, let me know guys and gals. I'm still fairly new to this so any feedback is appreciated. :)
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

The final version of our game is already available both in English and Spanish! ^___^
Can't believe this day has finally come... T_T
Im so happy that Dead By Daylight is getting a Silent Hill chapter! Cant wait to play as pyramid head
I'm glad I found those fishies by @whtdragon so I had a proper base to start pixeling the first enemies in the game.
Such cuties... yeah.
Yesterday, for my youngest sibling's birthday, we watched one of his favorite movies.
Ponyo is such a beautiful, but certainly strange, movie.
I just have to say that I prefer the majority of Studio Ghibli's works to those of Disney.
*sees work place in incoming call history* .... =www= hisssssSSSSSssss.

Forum statistics

Threads
97,812
Messages
947,118
Members
129,024
Latest member
buulibuu
Top