Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[A++][REQ] New Load/Save & Name Input Screens

Since I don't do this very often, I apologise in advance for any confusion this request may bring upon its readers. If you happen to notice something that could be elabourated on, don't hesitate to respond to this thread.

Introduction

Due to my limited knowledge in RGSS (still trying to learn), I'm having a bit of trouble creating the script(s) needed in order to fill this request. So this is where you come in. I also realise that most of the time requests in this section go ignored due to the lack of interest or the overall complexity of the request. Hopefully this will not be the case. *glares at Seph*.

This script request will be broken up into three different sections, starting off with modifying Scene_Title to execute in the appropriate order when command_new_game is initialised. The second and third sections will focus on creating/modifying a new Scene_Save, Scene_Load and Scene_Name script.

Scene_Title Execution

Last night I was attempting to modify Scene_Title to execute in a specific order without initialising $scene = Scene_Map.new. That order is as follows:
  • Player selects "New Game"
  • Scene_Save loads and the player selects one of the free slots to write the new data to.
  • Scene_Name loads and the player chooses his/her name.
  • Auto save the data that has just been recorded to the selected slot.
  • Scene_Load initialises and the player can select the slot they chose at Scene_Save.
  • After the player chooses his/her desired name and Scene_Load appears with the new data, the player can select that slot and begin the game.
http://img263.imageshack.us/img263/165/screenshot4ih8.png[/IMG]
http://img144.imageshack.us/img144/1340/screenshot1ol6.png[/IMG]
http://img444.imageshack.us/img444/6047/screenshot2jt8.png[/IMG]
http://img263.imageshack.us/img263/5660/screenshot3nq5.png[/IMG]
Hopefully this process shouldn't be too incredibly difficult for those of you interested in taking this request. Just remember that I only want Scene_Save to visibly execute once. The second time it is initialised (after Scene_Name) it should save the data automatically.

New Save/Load Script

Alright, on top of all of that rubbish I would also like to request a new Save/Load and Actor Naming script that would integrate with the above command_new_game process. Let's just start with the Save/Load script first.

The following images are essentially Tales of Phantasia screens modified to fit the design I had in mind. They are actual mock-ups so you don't have to worry about all of that MS Paint layout crap you commonly see with custom menu systems.

http://img248.imageshack.us/img248/6880/loadscreenaf6.png[/IMG]
  • These scripts do not use the default cursor pulse. I would rather have a hand cursor point to the specific windows and selectable options.
  • The previous Save/Load screen only has three save slots (not four).
  • Each save slot is controlled by the three play time windows just below the "Load Game" window. The player should be able to press the left & right arrow keys to toggle between save/load slots.
  • In each save slot, there are four character windows displaying the player's party. Each player can only have maximum of four characters in a save/load slot.
Individual Windows

The individual windows of the Save/Load screen represent the characters that are inside of the player's party (just like the default system). For the sake of symmetry, if there is only one, two or three characters inside of the party, all four windows should still be present (they just won't contain any character data).
  • The three windows above the party windows should represent the total play time of that particular save/load slot.
  • Each character window should have the following information:
  • The actor's name (in white text).
  • The actor's level (in yellow text).
  • The actor's HP (in yellow text).
  • The actor's Exp (in yellow text).
  • How much Exp is needed until the next level (in yellow text).
  • The actual sprite of the actor (preferably animated).
When the player selects his/her save/load slot, a confirmation window should pop up like so:

http://img254.imageshack.us/img254/976/loadconfirmationscreennt9.png[/IMG]
Needless to say, both Scene_Save and Scene_Load should look like this and have the same properties.

New Name Input Screen

This is probably going to be the most difficult out of the rest considering the modifications I want done to it (please don't run away just yet). Read through this section to see if it is even possible (as Trick said, RGSS makes everything possible).

The Name Input Screen will give the player two options just before he/she selects his/her name. It will allow the player to choose what gender they are (male or female). Choosing either or will change the face set graphic to the right of the screen.

http://img252.imageshack.us/img252/3239/initialinputvv8.png[/IMG]
http://img101.imageshack.us/img101/9505/initialinputfemalekt7.png[/IMG]
  • Even though I haven't provided an actual screenshot of the gender selection window, I would like it to be placed directly in the center of the screen which overlaps the Name Input window.
  • Toggling in between "Male" and "Female" should visibly show the change of the sprite and face set graphic.
  • Once the player has selected his/her gender, the window should dispose.
Once again, this screen uses a hand cursor rather than the default pulse. I just think the pulsing cursor would look really bad with these types of screens.

http://img72.imageshack.us/img72/8622/nameinputwt1.png[/IMG]
http://img167.imageshack.us/img167/986/confirmationscreenuo1.png[/IMG]
  • The little grey boxes you see in the name window are letter boxes. The actual letters will go inside of these boxes.
  • There is a maximum of six letters per name and a minimum of one. If the player tries to continue without entering a name, his/her computer will suddenly blow up. No, actually, it won't allow them to continue until at least one letter has been entered.
  • The random option in the OK/Random window generates a random name. This can be anything really...just random letters/numbers/characters ranging from 1 to 6 letter boxes.
I think the rest of the system is pretty self explanatory in regards to the screenshots.

Here are the graphics for the Name Input screen (seeing as you would probably need them).

http://img404.imageshack.us/img404/5811/letterboxyq3.png[/IMG]
http://img404.imageshack.us/img404/1246/malezw6.png[/IMG]
http://img441.imageshack.us/img441/9964/femalecb6.png[/IMG]
The actual sprite graphics can be anything out of the default RTP. I am just going to need a way to change them with the release/beta of the script.

Conclusion

Once again, I thank you for taking the time to read this request. If there is any point that may need more detail, or you are confused as to what I am asking, feel free to speak up.

~Ciao
 
I am pinning this. This is the most perfect request I have ever seen. ^_^

Well, I will add it to the How To Make A Script Request Thread. :p

If no one else will take it, I will. It's nothing to complicated.


I was inspired. Here's the first part for you. Let me know if there are any errors.

Code:
class Scene_Title
  alias seph_maestrotitle_scnsv_cng command_new_game
  def command_new_game
    seph_maestrotitle_scnsv_cng
    $maestro_title_phase = true
    $scene = Scene_Save.new
  end
end

class Scene_Save
  alias seph_maestrotitle_scnsv_init initialize
  alias seph_maestrotitle_scnsc_oc   on_cancel
  alias seph_maestrotitle_scnsc_od   on_decision
  def initialize
    if $maestro_title_phase
      super('Please Select File to Begin')
      return
    end
    seph_maestrotitle_scnsv_init
  end
  def on_cancel
    if $maestro_title_phase
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Title.new
      return
    end
    seph_maestrotitle_scnsc_oc
  end
  def on_decision(filename)
    seph_maestrotitle_scnsc_od(filename)
    if $maestro_title_phase
      $game_temp.name_actor_id = 1
      $game_temp.name_max_char = 8      
      $scene = Scene_Name.new
    end
  end
end

class Scene_Name
  alias seph_maestrotitle_scnn_main main
  def main
    seph_maestrotitle_scnn_main
    if $maestro_title_phase
      dummy = Scene_Save.new
      dummy.on_decision(dummy.make_filename($game_temp.last_file_index))
      $scene = Scene_Load.new
    end
  end
end

class Scene_Load
  alias seph_maestrotitle_scnld_oc on_cancel
  alias seph_maestrotitle_scnld_od on_decision
  def on_cancel
    if $maestro_title_phase
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Name.new
      return
    end
    seph_maestrotitle_scnld_oc
  end
  def on_decision(filename)
    seph_maestrotitle_scnld_od(filename)
    $maestro_title_phase = false
  end
end
 
Hehe. I only did the first part so far. If no one finishes this in a week, I will pick it up. If everyone did this...

I mean, even the first part could have been explained as simple as

Press New Game -> Open Save & Pick Slot -> Open Here Name -> AutoSave -> Load Slot

Buts Wings make a page report on that just to ensure there was no confusion. This is how you ask for help for anything. Excellent product specification.
 
Thank you guys for the nice comments on the request. I just don't know what the big deal is...have you seen my other requests? They are just as long and detailed. :p

Anyways. Seph, I found an error while bug searching.

http://img299.imageshack.us/img299/6953/errorfe9.png[/IMG]

This error appears at the load screen (after the name input), when you try to cancel out of loading a game slot.

Here is the Object Initialization snippet from Window_NameEdit

Code:
 def initialize(actor, max_char)
    super(0, 0, 640, 128)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    @name = actor.name
    @max_char = max_char
    # Fit name within maximum number of characters
    name_array = @name.split(//)[0...@max_char]
    @name = ""
    for i in 0...name_array.size
      @name += name_array[i]
    end
    @default_name = @name
    @index = name_array.size
    refresh
    update_cursor_rect
  end
and here is line 22 of that snippet:

Code:
    @name = actor.name
 
Oops. I forgot to mention:

$game_temp.name_actor_id = 1
$game_temp.name_max_char = 8

Change the 1 to the actor id and 8 to whatever you want th max characters to be.


EDIT: You even ask for help correctly. Oh if there were more like you... ^_^
 
Code:
$game_temp.name_actor_id = 1
...would allow Aluxes's name to change by default once Scene_Name executed. The same instance would apply if the 1 was changed to a 3 or 4 (only just for those alternate actor IDs).

Code:
$game_temp.name_max_char = 8
...only defines the number of characters allowed in that party member's name.

Unfortunately, the above isn't the reason why I'm getting the error while attempting to cancel out of the load screen.

Once I select "New Game" from the title menu, it brings me to Scene_Save. After I save on a slot, it brings me to Scene_Name. Once I enter the actor's name and press OK, it brings me to Scene_Load. This is where I'm having the problem when trying to cancel out.

In sequence screenshots:

http://img153.imageshack.us/img153/3258/screenshot1yv5.png[/IMG]
http://img256.imageshack.us/img256/6059/screenshot2mb8.png[/IMG]
http://img153.imageshack.us/img153/7852/screenshot3li8.png[/IMG]
http://img262.imageshack.us/img262/5120/screenshot4xe5.png[/IMG]
http://img262.imageshack.us/img262/4383/screenshot5uw0.png[/IMG]
 
I get ya. Let me look. I didn't test all the canceling, so I am guessing it basically deletes the $game_temp flags and turns them to nil.

EDIT :
Silly me forgetting that they always re-create the $game_temp object when opening the load scene (why, I am not sure).

Add this above the $scene = Scene_Name.new in the on_cancel method in Scene_Load.
Code:
      $game_temp.name_actor_id = 1
      $game_temp.name_max_char = 8

Just put your variables there as well.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top