Visual Novel Interaction Menu

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by sabao, Apr 13, 2016.

    Tags:
  1. sabao

    sabao Veteran Veteran

    Messages:
    832
    Likes Received:
    298
    Location:
    Tokyo
    First Language:
    Filipino
    Primarily Uses:
    RMVXA
    [​IMG]

    Visual Novel Interaction Menu

    aka sabao learns to code

    by Ryan (Me) & Fiona

    Version 1.01 (4/27/2016)

    Demo: HERE
    Script: HERE
    After years of saying I'd get to it, I've finally gotten off my ass and coded something. YAY ME. I decided on making this because I remember needing it for one of my older projects and realizing there still doesn't appear to be anything like it made for RPG Maker VX Ace. This script creates an interaction menu which creates a list of events present in the map that also triggers said events when selected. This script is ideal for anyone looking to build games like visual novels, text adventures, or if you just can't be assed to map stuff.

    <I've added a 'Move' command as of version 1.01. I still feel there are already plenty of fully functional fast travel menus out (HERE and HERE to name a few) and those are more likely to be more feature-rich than anything I'd care to repeat here. For the sake of having it all ready to go though, I've put it on.>

    Features:

    • Creates a command window that lists specified events present in the map and activates the specified event on select.
    • Events can be classified into three different actions: Move, Talk and Inspect.
    • Easy to use?
    Terms of Use:
    Free to use for commercial and non-commercial projects. Please credit the authors. Also, tell us about your project so we can try it out!

    How to Use:

    • SceneManager.call(Scene_VNMenu) to call the menu.
    • Add the comment vn_area on any event you want listed under the Move action.
    • Add the comment vn_npc on any event you want listed under the Talk action.
    • Add the comment vn_object on any event you want listed under the Inspect action.
    • The script only checks for note tags on the active page of the event, so if you don't want the event to show up on the menu, just make a new page of that event without the note tag.
    Known Bugs Features Bugs:
    • Delisted events still show up on the menu!
      Discovered that if Event A triggered a switch that made Event B go to its second page which is supposed to hide it from the NPC list, Event B will still show up on the menu. My current fix to this is adding a Wait command between Event A triggering the switch and calling the VN Menu. I believe this may be due to the fact that calling the menu suspends activity on the map, preventing Event B from refreshing itself into its non-active state before the menu compiles the event list.
    Stuff Left to Do:
    Advice on how to deal with these would be greatly appreciated!
    • The blurring and darkening of the screen bothers me. Still figuring out how to fix that.
    • I wanted an option on the command window that could call the main menu, but SceneManager.call causes crashing.
    • Darkening/disabling an option if no relevant event is present
    • Make it prettier
     
    Last edited: May 30, 2017
    #1
    Edsephiroth and cabfe like this.
  2. sabao

    sabao Veteran Veteran

    Messages:
    832
    Likes Received:
    298
    Location:
    Tokyo
    First Language:
    Filipino
    Primarily Uses:
    RMVXA
    Tiny update: Made a Move action based on the same behaviors as the other two. Again, there may be better fast travel menu options already out, but this menu having no Move option bothered me a lot so I figured this quick fix would suffice.
     
    #2
  3. Edsephiroth

    Edsephiroth Edsephiroth Member

    Messages:
    17
    Likes Received:
    3
    Location:
    Alagoinhas, Bahia - Brazil
    First Language:
    Portuguese
    Primarily Uses:
    N/A
    I didn't understand what 'inspect' is used for.
     
    #3
  4. sabao

    sabao Veteran Veteran

    Messages:
    832
    Likes Received:
    298
    Location:
    Tokyo
    First Language:
    Filipino
    Primarily Uses:
    RMVXA


    It works the same way as 'Talk' does, but think of it as a different kind of action where you interact with objects instead of talk to people. Say, maybe there's a switch in the room or your player character wants to make a witty quip about the painting on the wall.


    For anyone having trouble figuring out how to work this thing, I made a demo:


    http://www.rycanteras.net/projects/rgss/vnmenu.zip
     
    #4
  5. Edsephiroth

    Edsephiroth Edsephiroth Member

    Messages:
    17
    Likes Received:
    3
    Location:
    Alagoinhas, Bahia - Brazil
    First Language:
    Portuguese
    Primarily Uses:
    N/A
    It's all clear!


    Simple and fantastic!


    Use script call is the best feature because we can use it on many ways.


    Thank you for your effort.
     
    #5
  6. GummyHelix

    GummyHelix Villager Member

    Messages:
    10
    Likes Received:
    3
    First Language:
    English
    Is it possible to prevent the player from hitting escape to leave the menu? But at any rate, I love it! I might use it for a project.
     
    #6
  7. sabao

    sabao Veteran Veteran

    Messages:
    832
    Likes Received:
    298
    Location:
    Tokyo
    First Language:
    Filipino
    Primarily Uses:
    RMVXA


    Hi! Sorry, forum didn't notify me of replies. Here's how to take off the close command!


    Look for this bit in the code:

    Code:
     #--------------------------------------------------------------------------
     # * Create Main Window
     #--------------------------------------------------------------------------
      def create_vnmenu_window
       @command_window = Window_VNMenu.new
       @command_window.set_handler(:do_move,   method(:do_move))
       @command_window.set_handler(:do_talk,   method(:do_talk))
       @command_window.set_handler(:do_inspect,   method(:do_inspect))
       @command_window.set_handler(:do_load,   method(:do_load))
       @command_window.set_handler(:do_save,   method(:do_save))
       @command_window.set_handler(:cancel, method(:do_cancel))
     end
    Delete or comment out the line before end so the menu doesn't perform any actions when escape is pressed. If you just commented the line out, the resulting code should look like this:

    Code:
     #--------------------------------------------------------------------------
     # * Create Main Window
     #--------------------------------------------------------------------------
      def create_vnmenu_window
       @command_window = Window_VNMenu.new
       @command_window.set_handler(:do_move,   method(:do_move))
       @command_window.set_handler(:do_talk,   method(:do_talk))
       @command_window.set_handler(:do_inspect,   method(:do_inspect))
       @command_window.set_handler(:do_load,   method(:do_load))
       @command_window.set_handler(:do_save,   method(:do_save))
      # @command_window.set_handler(:cancel, method(:do_cancel))
     end
    I hope that helps and good luck to you and whatever you're working on! :)
     
    #7
  8. GummyHelix

    GummyHelix Villager Member

    Messages:
    10
    Likes Received:
    3
    First Language:
    English
    @sabao Thank you so much! I'll definitely let you know if I release the project! :D
     
    #8
    sabao likes this.

Share This Page