Adding Extras with choices to menu

Discussion in 'RGSS3 Script Requests' started by Torqus, Aug 29, 2015.

  1. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    Hello.


    I have a question about the menu, I'm using YEA Menu Engine, I already know how to add commands and make them call a Scene, ex: add Controls and that calls Scene_Controls, which shows a picture with key bindings info.


    What I don't know how to do is a command that opens more commands to choose.


    I want to create Extras, and when toggled, it shows 3 more commands: Music, Creatures, Collectibles. I already have the scenes, made by Mog, but that's irrelevant.


    Does anyone know and can tell me or point me in the right direction to make this?

    [​IMG]

    This is also an option, if the first one is too complicated:

    [​IMG]

    And lastly, the option I like the less:

    [​IMG]

    (Ignore icons, Sick photoshop skillz)


    Forgot to mention, I know I can make it as a Common Event showing choices and then run it from the menu, but that's the last option.
     
    Last edited by a moderator: Aug 29, 2015
    #1
  2. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    That's something what I was thinking to do some time ago.

    It seems kinda easy (it shouldn't take too much lines), but I'm not 100% sure how to do that.

    Well, anyway if I'll manage to do anything, I'll let you know, if not - oh [​IMG], I'm sure somebody will help you (us). =P
     
    #2
  3. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    Yeah, a script that does this would be sick.
    I forgot to mention that Ace Status Menu has something similar to what I'm trying to do, but it's not the same, as it uses windows, not scenes.
    As you can see I took your script for the menu info, it's really useful, that section was the only reason I tried using custom menus, and then I found that.
    Anyways I think I'll stick with a Common Event or creating 3 menu commands if there's no solution to this.
     
    #3
  4. Rikifive

    Rikifive Bringer of Happiness Veteran

    Messages:
    1,442
    Likes Received:
    676
    Location:
    Poland
    First Language:
    Polish
    Primarily Uses:
    Other
    I was thinking about making something, you did on the first screenshot. Upon selecting a command it opens a new selectable window next to, where there are more commands. Well.. It's easy to say, but I'm not sure how to approach it. - I'm not sure how to open a window upon selecting a command and dispose it, when pressing 'back'... I have some things on mind, but it can end up just being a total failure... I'll take a look on default scripts and see if there will be some useful info.

    Nothing worse than 'game crash' can't happen. xD
     
    Last edited by a moderator: Aug 29, 2015
    #4
  5. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    179
    Location:
    La La Land
    First Language:
    Meowish
    The reason it's done by window is because how of scene works.

    There can be only 1 scene showing at any one time, but windows, you can have lots of it.

    So if you call a new scene with a tiny window and choices, all you see is the snapshot background from scene_map

    and a tiny window with choice.

    If you don't mind that, copy a new copy of Scene_End and modify from there. 

    It is a scene that will bring up a small window with choices in it. The one you see when you try to quit the game. Title/Return/Quit

    Rename class Scene_End to class Scene_YouDecide.

    Reading from above i assume you already know how to add commands and call scenes.

    And Scene_End is probably the easiest scene around for a beginner to tinker with. ;)

    Even if you don't know how to setup a command (choice), the existing example in Scene_End should get you going fine. ;)
     
    #5
  6. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    Wow yes you're right! I'm going to do that right now!

    The reason I wanted this was because I have a script that shows backgrounds in different menu scenes, and now I might be able to add a background to the extra selection scene.

    Thanks!
     
    #6
  7. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    It's working but it's not done yet. I can't go back and I can't change the texts of each option from the default ones (Exit, To Title, Cancel)
     
    This is the new Scene_Extras

    #==============================================================================# ** Scene_End#------------------------------------------------------------------------------# This class performs game over screen processing.#==============================================================================class Scene_Extras < Scene_MenuBase #-------------------------------------------------------------------------- # * Start Processing #-------------------------------------------------------------------------- def start super create_command_window end #-------------------------------------------------------------------------- # * Pre-Termination Processing #-------------------------------------------------------------------------- def pre_terminate super close_command_window end #-------------------------------------------------------------------------- # * Create Background #-------------------------------------------------------------------------- def create_background super @background_sprite.tone.set(0, 0, 0, 128) end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window @command_window = Window_GameEnd.new @command_window.set_handler:)pictures, method:)command_pictures)) @command_window.set_handler:)music, method:)command_music)) @command_window.set_handler:)creatures, method:)command_creatures)) end #-------------------------------------------------------------------------- # * Close Command Window #-------------------------------------------------------------------------- def close_command_window @command_window.close update until @command_window.close? end #-------------------------------------------------------------------------- # * [Go to Title] Command #-------------------------------------------------------------------------- def command_creatures SceneManager.call(Monster_Book) end #-------------------------------------------------------------------------- # * [Go to Title] Command #-------------------------------------------------------------------------- def command_music SceneManager.call(Scene_Music_Box) end #-------------------------------------------------------------------------- # * [Go to Title] Command #-------------------------------------------------------------------------- def command_pictures SceneManager.call(Scene_Picture_Gallery) endend
    And this is Window_EXTRAS
    Code:
    #==============================================================================# ** Window_GameEnd#------------------------------------------------------------------------------#  This window is for selecting Go to Title/Shut Down on the game over screen.#==============================================================================class Window_GameEnd < Window_Command  #--------------------------------------------------------------------------  # * Object Initialization  #--------------------------------------------------------------------------  def initialize    super(0, 0)    update_placement    self.openness = 0    open  end  #--------------------------------------------------------------------------  # * Get Window Width  #--------------------------------------------------------------------------  def window_width    return 160  end  #--------------------------------------------------------------------------  # * Update Window Position  #--------------------------------------------------------------------------  def update_placement    self.x = (Graphics.width - width) / 2    self.y = (Graphics.height - height) / 2  end  #--------------------------------------------------------------------------  # * Create Command List  #--------------------------------------------------------------------------  def make_command_list    add_command(Vocab::to_title, :creatures)    add_command(Vocab::shutdown, :music)    add_command(Vocab::cancel,   :pictures)  endend
    In the first one... how can I do to make the Back key (X... escape) to actually go back (close the scene and go back to the menu) without adding a "Cancel" option?Solved: Had to add this to the scene in Create Command Window
        @command_window.set_handler:)cancel,   method:)return_scene))

    Last problem... In the last one, what do I have to write to replace the "Vocab::"? I think "Vocab::shutdown" and the others are the texts you can change in Database > Tems.
     
    Last edited by a moderator: Sep 5, 2015
    #7
  8. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    179
    Location:
    La La Land
    First Language:
    Meowish
    Vocab is listed in the module on the top of the script lists. The very 1st one indeed. ;)

    or you can just use a string of your own. Replace Vocab::NAME with "String name"

    Edit:

    Just took a look at your script, and am glad you have fun with it :D

    Since you have made a new Window Extras and not using the old Window End,

    you should point it to window extra on line 33.

    eg. @command_window = Window_Extra.new

    Remember to rename class Window_GameEnd to class Window_Extra too

    or you will be overwriting the old one even when you did copy a new set of it. :p

    And to have each command closes the window after you made a choice.

    add this line above the lines you use to call a scene:  close_command_window

    In addition:

    SceneManager.return will return you to previous scene.

    SceneManager.goto(Scene_Name) will goto a new scene. If i remember correctly,

    this one properly dispose off all the old scenes before transition, so return will only return you to the Scene_Map.

    Correct me if i am wrong. :p

    SceneManager.call(Scene_Name) call a new scene while keeping the old scenes data, so return should work.

    SceneManager.exit  exits the whole game.
     
    Last edited by a moderator: Sep 5, 2015
    #8
  9. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    Thank you so much! You are the kind of person who makes me want to surf the forum to help others xD

    I can't even describe how much improvement this is for my project.

    Also, just in case anyone comes here trying to find a solution, I was also able to center the text of the choices with this small addition in the Window_Extras

    Code:
      def alignment    return 1  end
     
    Last edited by a moderator: Sep 5, 2015
    #9
  10. MeowFace

    MeowFace Meow Veteran

    Messages:
    1,034
    Likes Received:
    179
    Location:
    La La Land
    First Language:
    Meowish
    Cheers!  :guffaw:

    Glad to help and congratulations on your progress!
     
    #10
  11. Megablackdragon31

    Megablackdragon31 Veteran Veteran

    Messages:
    215
    Likes Received:
    35
    Location:
    Argentina
    First Language:
    Spanish
    If you dont want to use the Menu Engine you could look for a script that lets you add new command using common events (Theo has one) and for the chooses you can use a script a script called scene interpreter that lets you run commands in the menu. Excuse me for my bad english.
     
    #11
  12. Torqus

    Torqus Veteran Veteran

    Messages:
    169
    Likes Received:
    26
    First Language:
    English
    Thanks for the reply but I already solved this, in the best possible way, making a new scene and window, without having to add any script.

    Also Common Events wheren't an option, I already had that working before I made this thread, I didn't want to use them because common events close the menu and look like choices.
     
    #12

Share This Page