RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
[request] help menu

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 75
RMRK Junior
    Help Menu/Information Menu
    21/08/2010  1:55am GMT



    Summary
    in the menu i need an option to open up a new window, and need new windows created for information about the game, information about controls states and equipment etc..

    Features Desired
    • Scrollable editable menu
    • possibly the ability to add more options for different topics of information.
    • escape should take you back to the previous menu after selecting one of the topics, however the state information should appear on highlighting not selection.
    • the status information must be editable and i must be able to include the pictures that are related to each status.
    *NOTE* avoid using noteboxes please as some states use codes in the notebox, so typing in a description there to appear on the menu wouldn't work right i don't think... i think it would also show the code in the notebox.


    Mockups
    Spoiler for:
    Spoiler for:
    Spoiler for:
    Spoiler for:


    Current Unfinished script - TDS (Zanaziel)
    [/list][/list]
    Code: [Select]
    #==============================================================================
    # ** Scene_Menu
    #------------------------------------------------------------------------------
    #  This class performs the menu screen processing.
    #==============================================================================

    class Scene_Menu < Scene_Base
      #--------------------------------------------------------------------------
      # * Create Command Window
      #--------------------------------------------------------------------------
      def create_command_window
        s1 = Vocab::item
        s2 = Vocab::skill
        s3 = Vocab::equip
        s4 = Vocab::status
        s5 = Vocab::save
        s6 = Vocab::game_end
        @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, "Help"])
        @command_window.index = @menu_index
        if $game_party.members.size == 0          # If number of party members is 0
          @command_window.draw_item(0, false)     # Disable item
          @command_window.draw_item(1, false)     # Disable skill
          @command_window.draw_item(2, false)     # Disable equipment
          @command_window.draw_item(3, false)     # Disable status
        end
        if $game_system.save_disabled             # If save is forbidden
          @command_window.draw_item(4, false)     # Disable save
        end
      end
      #--------------------------------------------------------------------------
      # * Update Command Selection
      #--------------------------------------------------------------------------
      def update_command_selection
        if Input.trigger?(Input::B)
          Sound.play_cancel
          $scene = Scene_Map.new
        elsif Input.trigger?(Input::C)
          if $game_party.members.size == 0 and @command_window.index < 4
            Sound.play_buzzer
            return
          elsif $game_system.save_disabled and @command_window.index == 4
            Sound.play_buzzer
            return
          end
          Sound.play_decision
          case @command_window.index
          when 0      # Item
            $scene = Scene_Item.new
          when 1,2,3  # Skill, equipment, status
            start_actor_selection
          when 4      # Save
            $scene = Scene_File.new(true, false, false)
          when 5      # End Game
            $scene = Scene_End.new
          when 6     # Help
            $scene = Scene_Help.new
          end
        end
      end
    end

    Code: [Select]
    #==============================================================================
    # ** Scene_Help
    #------------------------------------------------------------------------------
    #  This class performs the Help screen processing.
    #==============================================================================

    class Scene_Help < Scene_Base
      #--------------------------------------------------------------------------
      # * Constants
      #--------------------------------------------------------------------------
      # Line limit per page
      PAGE_LINE_LIMIT = 12
      # Help Commands
      HELP_COMMANDS = [
      "Test",
      "Test2", 
      ]
      # Help Information Hash
      HELP_INFORMATION = {
      # Command name => Text information,
      "Test" =>
      ["Help Text here", 
       "TEST
       This is line 1 testing..................   
       This is line 2 testing..................
       This is line 3 testing..................
       This is line 4 testing..................
       This is line 5 testing..................
       This is line 6 testing..................
       This is line 7 testing..................
       This is line 8 testing........................
       This is line 9 testing.....................
       This is line 10 testing....................
       This is line 11 testing....................
       This is line 12 testing....................
       This is line 13 testing....................
       This is line 14 testing....................
       This is line 15 testing....................
       This is line 16 testing....................
       This is line 17 testing....................
       This is line 18 testing....................
       This is line 19 testing....................
       This is line 20 testing....................
       This is line 21 testing....................
       This is line 22 testing....................
       This is line 23 testing....................
       This is line 24 testing....................
       This is line 25 testing....................
       This is line 26 testing....................
       This is line 27 testing....................
       This is line 28 testing....................
       This is line 29 testing....................
       This is line 30 testing....................
       This is line 31 testing....................
       This is line 32 testing....................
       This is line 33 testing....................
       This is line 34 testing....................
       This is line 35 testing....................
       This is line 36 testing....................
       This is line 37 testing....................
       This is line 38 testing....................
       This is line 39 testing...................."], 
       
      "Test2" =>
      ["Help Text here", 
       "TEST2
       Test 2"]     
      }
      #--------------------------------------------------------------------------
      # * Start processing
      #--------------------------------------------------------------------------
      def start
        super
        create_menu_background   
        # Create Help Window     
        @help_window = Window_Help.new
        # Create command Window
        @command_window = Window_Command.new(172, HELP_COMMANDS)
        @command_window.y = 56
        @command_window.height = 360
        # Create Help Contents Window
        @help_contents_window = Window_Base.new(172, 56, 372, 360)
        # Viewing Help Information Flag
        @viewing_help = false
        # Display Page
        @display_page = 0
        # Current Page
        @current_page = 1
        # Total Pages
        @total_pages = 1
        # Current Command
        @current_command = active_command
        # Update Help Window information
        update_help_information   
        # Draw Help Window Contents
        draw_help_window_contents
      end
      #--------------------------------------------------------------------------
      # * Make Help Commands
      #--------------------------------------------------------------------------
      def active_command(index = nil)
        # Get command
        command = index == nil ? @command_window.index :  index
        return @command_window.commands[command]
      end
      #--------------------------------------------------------------------------
      # * Make Help Commands
      #--------------------------------------------------------------------------
      def draw_help_window_contents 
        # Return if Help information hash information text is empty
        return if HELP_INFORMATION[active_command][1].empty?
        # Get Text
        text = HELP_INFORMATION[active_command][1].split(/\n/)
        # Page Start
        start = @display_page * PAGE_LINE_LIMIT   
        # Page limit
        limit = start + PAGE_LINE_LIMIT   
        # Clear Help Contents Window
        @help_contents_window.contents.clear
        @help_contents_window.contents.font.color = @help_contents_window.normal_color     
        for line in start...limit
          # Break if line is nil
          break if text[line] == nil
          index = line
          index %= 12
          @help_contents_window.contents.draw_text(0, 0 + index * 25, 340, 24, text[line].strip)
        end
        # Adjust Total Pages
        @total_pages = (text.size.to_f / PAGE_LINE_LIMIT.to_f).ceil   
        # Draw Pages
        @help_contents_window.contents.font.color = @help_contents_window.system_color
        @help_contents_window.contents.draw_text(100, 305, 340, 24, "Page:" )   
        @help_contents_window.contents.font.color = @help_contents_window.normal_color
        @help_contents_window.contents.draw_text(160, 305, 150, 24, sprintf("%d / %d", @current_page, @total_pages))
      end 
      #--------------------------------------------------------------------------
      # * Termination Processing
      #--------------------------------------------------------------------------
      def terminate
        super
        dispose_menu_background 
        # Dispose of windows
        @help_window.dispose
        @command_window.dispose
        @help_contents_window.dispose
      end
      #--------------------------------------------------------------------------
      # * Return to Original Screen
      #--------------------------------------------------------------------------
      def return_scene
        $scene = Scene_Menu.new(6)
      end
      #--------------------------------------------------------------------------
      # * Frame Update
      #--------------------------------------------------------------------------
      def update
        super   
        # Update Help Window information
        update_help_information
        # Update Command Window
        @command_window.update   
        # If Command Window Active
        if @command_window.active
          update_command
          return
        end   
        # If viewing help information
        if @viewing_help
          # Update Help Information viewing
          update_help_information_viewing
          return
        end
      end
      #--------------------------------------------------------------------------
      # * Update Command
      #--------------------------------------------------------------------------   
      def update_command

        # If active command is not the same as current command
        if active_command != @current_command
          # Set Display Page
          @display_page = 0
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents
          # Set Current Command
          @current_command = active_command
        end   
         
        if Input.trigger?(Input::B)
          Sound.play_cancel
          return_scene
          return
        end   

        if Input.trigger?(Input::C)
          Sound.play_decision   
          @command_window.active = false
          @viewing_help = true
          return
        end 
      end 
      #--------------------------------------------------------------------------
      # * Update Help Window Information Viewing
      #--------------------------------------------------------------------------   
      def update_help_information_viewing

        if Input.trigger?(Input::B)
          Sound.play_cancel   
          @viewing_help = false     
          @command_window.active = true
          return
        end   
       
        if Input.repeat?(Input::RIGHT) or Input.trigger?(Input::RIGHT)     
          next_page
        end
        if Input.repeat?(Input::LEFT) or Input.trigger?(Input::LEFT)
          previous_page
        end
        if Input.repeat?(Input::R)
          next_page(true)
        end
        if Input.repeat?(Input::L)
          previous_page(true)
        end       
      end 
      #--------------------------------------------------------------------------
      # * Go to the next page
      #--------------------------------------------------------------------------   
      def next_page(last = false)
        # Return if current page is the same or more than the total pages available
        return Sound.play_buzzer if @current_page >= @total_pages
        # If go to last page is true
        if last       
          # Play cursor SE
          Sound.play_cursor     
          return
        end     
        # Play cursor SE   
        Sound.play_cursor           
        # Set Display Page
        @display_page += 1
        # Set Current Page
        @current_page = @display_page + 1
        # Draw Help window contents
        draw_help_window_contents         
      end 
      #--------------------------------------------------------------------------
      # * Go to the previous page
      #--------------------------------------------------------------------------   
      def previous_page(first = false)
        # Return if current page is the same or less than 0
        return Sound.play_buzzer if @current_page <= 1
        # If go to first page is true
        if first
          # Play cursor SE     
          Sound.play_cursor   
          # Set Display Page
          @display_page = 0
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents       
          return
        end   
        # Play cursor SE   
        Sound.play_cursor           
        # Set Display Page
        @display_page -= 1
        # Set Current Page
        @current_page = @display_page + 1
        # Draw Help window contents
        draw_help_window_contents   
      end 
      #--------------------------------------------------------------------------
      # * Update Help Window Information
      #-------------------------------------------------------------------------- 
      def update_help_information
        # If command window is active
        if @command_window.active
          @help_window.set_text("Select an option for help and information.")
          return
        end       
        # If viewing help information
        if @viewing_help     
          @help_window.set_text(HELP_INFORMATION[active_command][0])     
          return
        end       
      end 
    end
      Games its been in
      • just about every game ever created :(



      Did you search?
      yes

      Where did you search?
      • rmrk
      • google
      • hbgames
      • creationasylum

      What did you search for?
      • Help menu rmvx script
      • menu script
      • menu script rmvx



      Spoiler for:
      This is quite a specific script to me, i don't know much at all about coding however this could be applied to most games anyone makes.

      hope this won't be too much hassle for one of you guys :([/list][/list]
      « Last Edit: August 22, 2010, 10:57:00 PM by kawagiri »

      ***
      Rep:
      Level 81
      Monster Hunter
      this looks really intresting, i would like to see this too ^^
      ask Zanaziel he loves to take requests.

      Zanaziel said:
      Quote
      I usually make most requests in requests forums to keep my skills good

      pokeball TDSOffline
      ***
      Rep:
      Level 84
      -T D S-
      Silver - GIAW 11 (Hard)Silver - Game In A Week VII
      I already did this one.

      I changed it from scrolling to pages to reduce the weight of drawing content, but I haven't thought of a way to make the status part of it global, so I decided not to finish it.

      And also.

      Quote
      *NOTE* avoid using noteboxes please as some states use codes in the notebox, so typing in a description there to appear on the menu wouldn't work right i don't think... i think it would also show the code in the notebox.

      Note boxes don't really work that way. Regular Expression allows a programmer to take select information such as text between 2 tags "Info Text /Info" and ignore everything else.

      And I preffer TDS not Zanaziel, I just couldn't get the name.

      ***
      Rep:
      Level 81
      Monster Hunter
      I already did this one.

      I changed it from scrolling to pages to reduce the weight of drawing content, but I haven't thought of a way to make the status part of it global, so I decided not to finish it.

      And also.

      Quote
      *NOTE* avoid using noteboxes please as some states use codes in the notebox, so typing in a description there to appear on the menu wouldn't work right i don't think... i think it would also show the code in the notebox.

      Note boxes don't really work that way. Regular Expression allows a programmer to take select information such as text between 2 tags "Info Text /Info" and ignore everything else.

      And I preffer TDS not Zanaziel, I just couldn't get the name.

      so could i see it so i can learn from it (and maybe use it too ^^) cause i wanna script too ,so i like to look at others work :p
      please TDS?

      **
      Rep:
      Level 75
      RMRK Junior
      I already did this one.

      I changed it from scrolling to pages to reduce the weight of drawing content, but I haven't thought of a way to make the status part of it global, so I decided not to finish it.

      And also.

      Quote
      *NOTE* avoid using noteboxes please as some states use codes in the notebox, so typing in a description there to appear on the menu wouldn't work right i don't think... i think it would also show the code in the notebox.

      Note boxes don't really work that way. Regular Expression allows a programmer to take select information such as text between 2 tags "Info Text /Info" and ignore everything else.

      And I preffer TDS not Zanaziel, I just couldn't get the name.

      right i thought notebox could work as a vessel to take information from ... i don't script really so didn't know...


      and do you mean you've already done a script like this, or do you mean you've done a script for this.

      also do you mean that you're not doing the script at all now? cos that's how it reads to me, just want some clarification on where it stands.

      i wanted a help menu to refer to no matter where you are because i used a script the other day and had to work out the buttons myself to cycle through options. this way i'd be able to tell people how to play :p

      thank you for your time either way though ^^

      pokeball TDSOffline
      ***
      Rep:
      Level 84
      -T D S-
      Silver - GIAW 11 (Hard)Silver - Game In A Week VII
      I meant that I saw the request and did the script requested.

      I just could not think of a good way at the moment to finish a feature, in this case the status part and decided not to finish it.

      Code: [Select]
      #==============================================================================
      # ** Scene_Menu
      #------------------------------------------------------------------------------
      #  This class performs the menu screen processing.
      #==============================================================================

      class Scene_Menu < Scene_Base
        #--------------------------------------------------------------------------
        # * Create Command Window
        #--------------------------------------------------------------------------
        def create_command_window
          s1 = Vocab::item
          s2 = Vocab::skill
          s3 = Vocab::equip
          s4 = Vocab::status
          s5 = Vocab::save
          s6 = Vocab::game_end
          @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, "Help"])
          @command_window.index = @menu_index
          if $game_party.members.size == 0          # If number of party members is 0
            @command_window.draw_item(0, false)     # Disable item
            @command_window.draw_item(1, false)     # Disable skill
            @command_window.draw_item(2, false)     # Disable equipment
            @command_window.draw_item(3, false)     # Disable status
          end
          if $game_system.save_disabled             # If save is forbidden
            @command_window.draw_item(4, false)     # Disable save
          end
        end
        #--------------------------------------------------------------------------
        # * Update Command Selection
        #--------------------------------------------------------------------------
        def update_command_selection
          if Input.trigger?(Input::B)
            Sound.play_cancel
            $scene = Scene_Map.new
          elsif Input.trigger?(Input::C)
            if $game_party.members.size == 0 and @command_window.index < 4
              Sound.play_buzzer
              return
            elsif $game_system.save_disabled and @command_window.index == 4
              Sound.play_buzzer
              return
            end
            Sound.play_decision
            case @command_window.index
            when 0      # Item
              $scene = Scene_Item.new
            when 1,2,3  # Skill, equipment, status
              start_actor_selection
            when 4      # Save
              $scene = Scene_File.new(true, false, false)
            when 5      # End Game
              $scene = Scene_End.new
            when 6     # Help
              $scene = Scene_Help.new
            end
          end
        end
      end

      Code: [Select]
      #==============================================================================
      # ** Scene_Help
      #------------------------------------------------------------------------------
      #  This class performs the Help screen processing.
      #==============================================================================

      class Scene_Help < Scene_Base
        #--------------------------------------------------------------------------
        # * Constants
        #--------------------------------------------------------------------------
        # Line limit per page
        PAGE_LINE_LIMIT = 12
        # Help Commands
        HELP_COMMANDS = [
        "Test",
        "Test2", 
        ]
        # Help Information Hash
        HELP_INFORMATION = {
        # Command name => Text information,
        "Test" =>
        ["Help Text here", 
         "TEST
         This is line 1 testing..................   
         This is line 2 testing..................
         This is line 3 testing..................
         This is line 4 testing..................
         This is line 5 testing..................
         This is line 6 testing..................
         This is line 7 testing..................
         This is line 8 testing........................
         This is line 9 testing.....................
         This is line 10 testing....................
         This is line 11 testing....................
         This is line 12 testing....................
         This is line 13 testing....................
         This is line 14 testing....................
         This is line 15 testing....................
         This is line 16 testing....................
         This is line 17 testing....................
         This is line 18 testing....................
         This is line 19 testing....................
         This is line 20 testing....................
         This is line 21 testing....................
         This is line 22 testing....................
         This is line 23 testing....................
         This is line 24 testing....................
         This is line 25 testing....................
         This is line 26 testing....................
         This is line 27 testing....................
         This is line 28 testing....................
         This is line 29 testing....................
         This is line 30 testing....................
         This is line 31 testing....................
         This is line 32 testing....................
         This is line 33 testing....................
         This is line 34 testing....................
         This is line 35 testing....................
         This is line 36 testing....................
         This is line 37 testing....................
         This is line 38 testing....................
         This is line 39 testing...................."], 
         
        "Test2" =>
        ["Help Text here", 
         "TEST2
         Test 2"]     
        }
        #--------------------------------------------------------------------------
        # * Start processing
        #--------------------------------------------------------------------------
        def start
          super
          create_menu_background   
          # Create Help Window     
          @help_window = Window_Help.new
          # Create command Window
          @command_window = Window_Command.new(172, HELP_COMMANDS)
          @command_window.y = 56
          @command_window.height = 360
          # Create Help Contents Window
          @help_contents_window = Window_Base.new(172, 56, 372, 360)
          # Viewing Help Information Flag
          @viewing_help = false
          # Display Page
          @display_page = 0
          # Current Page
          @current_page = 1
          # Total Pages
          @total_pages = 1
          # Current Command
          @current_command = active_command
          # Update Help Window information
          update_help_information   
          # Draw Help Window Contents
          draw_help_window_contents
        end
        #--------------------------------------------------------------------------
        # * Make Help Commands
        #--------------------------------------------------------------------------
        def active_command(index = nil)
          # Get command
          command = index == nil ? @command_window.index :  index
          return @command_window.commands[command]
        end
        #--------------------------------------------------------------------------
        # * Make Help Commands
        #--------------------------------------------------------------------------
        def draw_help_window_contents 
          # Return if Help information hash information text is empty
          return if HELP_INFORMATION[active_command][1].empty?
          # Get Text
          text = HELP_INFORMATION[active_command][1].split(/\n/)
          # Page Start
          start = @display_page * PAGE_LINE_LIMIT   
          # Page limit
          limit = start + PAGE_LINE_LIMIT   
          # Clear Help Contents Window
          @help_contents_window.contents.clear
          @help_contents_window.contents.font.color = @help_contents_window.normal_color     
          for line in start...limit
            # Break if line is nil
            break if text[line] == nil
            index = line
            index %= 12
            @help_contents_window.contents.draw_text(0, 0 + index * 25, 340, 24, text[line].strip)
          end
          # Adjust Total Pages
          @total_pages = (text.size.to_f / PAGE_LINE_LIMIT.to_f).ceil   
          # Draw Pages
          @help_contents_window.contents.font.color = @help_contents_window.system_color
          @help_contents_window.contents.draw_text(100, 305, 340, 24, "Page:" )   
          @help_contents_window.contents.font.color = @help_contents_window.normal_color
          @help_contents_window.contents.draw_text(160, 305, 150, 24, sprintf("%d / %d", @current_page, @total_pages))
        end 
        #--------------------------------------------------------------------------
        # * Termination Processing
        #--------------------------------------------------------------------------
        def terminate
          super
          dispose_menu_background 
          # Dispose of windows
          @help_window.dispose
          @command_window.dispose
          @help_contents_window.dispose
        end
        #--------------------------------------------------------------------------
        # * Return to Original Screen
        #--------------------------------------------------------------------------
        def return_scene
          $scene = Scene_Menu.new(6)
        end
        #--------------------------------------------------------------------------
        # * Frame Update
        #--------------------------------------------------------------------------
        def update
          super   
          # Update Help Window information
          update_help_information
          # Update Command Window
          @command_window.update   
          # If Command Window Active
          if @command_window.active
            update_command
            return
          end   
          # If viewing help information
          if @viewing_help
            # Update Help Information viewing
            update_help_information_viewing
            return
          end
        end
        #--------------------------------------------------------------------------
        # * Update Command
        #--------------------------------------------------------------------------   
        def update_command

          # If active command is not the same as current command
          if active_command != @current_command
            # Set Display Page
            @display_page = 0
            # Set Current Page
            @current_page = @display_page + 1
            # Draw Help window contents
            draw_help_window_contents
            # Set Current Command
            @current_command = active_command
          end   
           
          if Input.trigger?(Input::B)
            Sound.play_cancel
            return_scene
            return
          end   

          if Input.trigger?(Input::C)
            Sound.play_decision   
            @command_window.active = false
            @viewing_help = true
            return
          end 
        end 
        #--------------------------------------------------------------------------
        # * Update Help Window Information Viewing
        #--------------------------------------------------------------------------   
        def update_help_information_viewing

          if Input.trigger?(Input::B)
            Sound.play_cancel   
            @viewing_help = false     
            @command_window.active = true
            return
          end   
         
          if Input.repeat?(Input::RIGHT) or Input.trigger?(Input::RIGHT)     
            next_page
          end
          if Input.repeat?(Input::LEFT) or Input.trigger?(Input::LEFT)
            previous_page
          end
          if Input.repeat?(Input::R)
            next_page(true)
          end
          if Input.repeat?(Input::L)
            previous_page(true)
          end       
        end 
        #--------------------------------------------------------------------------
        # * Go to the next page
        #--------------------------------------------------------------------------   
        def next_page(last = false)
          # Return if current page is the same or more than the total pages available
          return Sound.play_buzzer if @current_page >= @total_pages
          # If go to last page is true
          if last       
            # Play cursor SE
            Sound.play_cursor     
            return
          end     
          # Play cursor SE   
          Sound.play_cursor           
          # Set Display Page
          @display_page += 1
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents         
        end 
        #--------------------------------------------------------------------------
        # * Go to the previous page
        #--------------------------------------------------------------------------   
        def previous_page(first = false)
          # Return if current page is the same or less than 0
          return Sound.play_buzzer if @current_page <= 1
          # If go to first page is true
          if first
            # Play cursor SE     
            Sound.play_cursor   
            # Set Display Page
            @display_page = 0
            # Set Current Page
            @current_page = @display_page + 1
            # Draw Help window contents
            draw_help_window_contents       
            return
          end   
          # Play cursor SE   
          Sound.play_cursor           
          # Set Display Page
          @display_page -= 1
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents   
        end 
        #--------------------------------------------------------------------------
        # * Update Help Window Information
        #-------------------------------------------------------------------------- 
        def update_help_information
          # If command window is active
          if @command_window.active
            @help_window.set_text("Select an option for help and information.")
            return
          end       
          # If viewing help information
          if @viewing_help     
            @help_window.set_text(HELP_INFORMATION[active_command][0])     
            return
          end       
        end 
      end

      It's not done (Just missing the status). It's Sunday so it's my day off and I don't feel like scripting today. If you want it you can use it or have someone finish it.

      Have a nice day.

      **
      Rep:
      Level 75
      RMRK Junior
      that's fine, you're volunteering, i have no right to ask you to do more nor do you have obligation to work on it at all. but tyvm for your time ^^

      *
      Rep:
      Level 97
      2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Best Member2012 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
      I preffer TDS not Zanaziel, I just couldn't get the name.

      Ah, you should have asked earlier; I will use my magical powers to get you the name TDS :) You'll still have to sign in as Zanaziel though.

      pokeball TDSOffline
      ***
      Rep:
      Level 84
      -T D S-
      Silver - GIAW 11 (Hard)Silver - Game In A Week VII
      Thank you very much for the name change modern algebra, if there is anything I could do for you, please let me know.

      As for the script I forgot about it until today. Spent the whole week watching all the movies I've missed since 2005 and looking for a nice project to join.

      This script adds the help command to the main menu in the default menu.

      Code: [Select]
      #==============================================================================
      # ** Scene_Menu
      #------------------------------------------------------------------------------
      #  This class performs the menu screen processing.
      #==============================================================================

      class Scene_Menu < Scene_Base
        #--------------------------------------------------------------------------
        # * Create Command Window
        #--------------------------------------------------------------------------
        def create_command_window
          s1 = Vocab::item
          s2 = Vocab::skill
          s3 = Vocab::equip
          s4 = Vocab::status
          s5 = Vocab::save
          s6 = Vocab::game_end
          @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, "Help"])
          @command_window.index = @menu_index
          if $game_party.members.size == 0          # If number of party members is 0
            @command_window.draw_item(0, false)     # Disable item
            @command_window.draw_item(1, false)     # Disable skill
            @command_window.draw_item(2, false)     # Disable equipment
            @command_window.draw_item(3, false)     # Disable status
          end
          if $game_system.save_disabled             # If save is forbidden
            @command_window.draw_item(4, false)     # Disable save
          end
        end
        #--------------------------------------------------------------------------
        # * Update Command Selection
        #--------------------------------------------------------------------------
        def update_command_selection
          if Input.trigger?(Input::B)
            Sound.play_cancel
            $scene = Scene_Map.new
          elsif Input.trigger?(Input::C)
            if $game_party.members.size == 0 and @command_window.index < 4
              Sound.play_buzzer
              return
            elsif $game_system.save_disabled and @command_window.index == 4
              Sound.play_buzzer
              return
            end
            Sound.play_decision
            case @command_window.index
            when 0      # Item
              $scene = Scene_Item.new
            when 1,2,3  # Skill, equipment, status
              start_actor_selection
            when 4      # Save
              $scene = Scene_File.new(true, false, false)
            when 5      # End Game
              $scene = Scene_End.new
            when 6     # Help
              $scene = Scene_Help.new
            end
          end
        end
      end

      And this is the Help Scene.

      Code: [Select]
      #==============================================================================
      # ** RPG::State Module
      #------------------------------------------------------------------------------
      # This module handles state information.
      #==============================================================================

      module RPG
        class State   
          #--------------------------------------------------------------------------
          # * Get State Information
          #--------------------------------------------------------------------------           
          def state_information
            # Get Help information
            help_text = self.note.scan(/INFO[\s]?(.*?)[\s]?INFO/m).flatten
            # If help text array is not empty
            if !help_text.empty?
              # Split text
              help_text = help_text[0].strip!.split(/\r\n/)
            end     
            # Return help text
            return help_text           
          end
        end
      end

      #==============================================================================
      # ** Scene_Help
      #------------------------------------------------------------------------------
      #  This class performs the Help screen processing.
      #==============================================================================

      class Scene_Help < Scene_Base
        #--------------------------------------------------------------------------
        # * Constants
        #--------------------------------------------------------------------------
        # Line limit per page
        PAGE_LINE_LIMIT = 12
        # Help Commands
        HELP_COMMANDS = [
        "Basics",
        "Basics2",
        "Status", 
        ]
        # Status Command Name
        STATUS_COMMAND = "Status"
        # Status States [States ID]
        STATUS_STATES = [1, 2, 3, 4, 5] 
        # Help Information Hash
        HELP_INFORMATION = {
        # Command name => Help Header Text, Text information,
        "Basics" =>
        ["These are the basics help text header.",
         "Basics:
         Here we put information to help the
         player."],

        "Basics2" =>
        ["These are the basics help text header.",
         "Width Test:
         -----------------------------------------------------   
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------
         -----------------------------------------------------"],   
         
        "Status" =>
        ["View status effects information.", ""],
       
        }
        #--------------------------------------------------------------------------
        # * Start processing
        #--------------------------------------------------------------------------
        def start
          super
          create_menu_background   
          # Create Help Window     
          @help_window = Window_Help.new
          # Create command Window
          @command_window = Window_Command.new(172, HELP_COMMANDS)
          @command_window.y = 56
          @command_window.height = 360
          # Create Help Contents Window
          @help_contents_window = Window_Base.new(172, 56, 372, 360)
          # Status Command Window
          @status_command_window = Window_Command.new(180, make_status_commands)
          @status_command_window.x = 172
          @status_command_window.y = 56   
          @status_command_window.height = 360
          @status_command_window.visible = false
          @status_command_window.active = false
          # Status Contents Display
          @status_contents_window = Window_Base.new(352, 56, 192, 360)   
          @status_contents_window.visible = false
          # Draw Status Window information
          draw_status_window_information
          # Viewing Help Information Flag
          @viewing_help = false
          # Display Page
          @display_page = 0
          # Current Page
          @current_page = 1
          # Total Pages
          @total_pages = 1
          # Current Command
          @current_command = active_command
          # Update Help Window information
          update_help_information   
          # Draw Help Window Contents
          draw_help_window_contents
        end
        #--------------------------------------------------------------------------
        # * Make Status Commands
        #--------------------------------------------------------------------------
        def make_status_commands
          # Commands Array
          commands = []   
          for i in 0...STATUS_STATES.size           
            # Add State name to commands array
            commands << sprintf("%d.%s", i + 1, $data_states[STATUS_STATES[i]].name)
          end           
          # Return commands
          return commands
        end
        #--------------------------------------------------------------------------
        # * Get Active Command
        #--------------------------------------------------------------------------
        def active_command(index = nil)
          # Get command
          command = index == nil ? @command_window.index : index
          return @command_window.commands[command]
        end
        #--------------------------------------------------------------------------
        # * Check if Current Command is a Status Commmand
        #--------------------------------------------------------------------------
        def status_command?   
          return STATUS_COMMAND == active_command
        end 
        #--------------------------------------------------------------------------
        # * Make Help Commands
        #--------------------------------------------------------------------------
        def draw_help_window_contents     
          # Clear Help Contents Window
          @help_contents_window.contents.clear
          # Return if Help information hash information text is empty
          return if HELP_INFORMATION[active_command][1].empty?
          # Get Text
          text = HELP_INFORMATION[active_command][1].split(/\n/)
          # Page Start
          start = @display_page * PAGE_LINE_LIMIT   
          # Page limit
          limit = start + PAGE_LINE_LIMIT   
          @help_contents_window.contents.font.color = @help_contents_window.normal_color           
          for line in start...limit
            # Break if line is nil
            break if text[line] == nil
            index = line
            index %= PAGE_LINE_LIMIT
            @help_contents_window.contents.draw_text(0, 0 + index * 25, 340, 24, text[line].strip)
          end
          # Adjust Total Pages
          @total_pages = (text.size.to_f / PAGE_LINE_LIMIT.to_f).ceil   
          # Draw Pages
          @help_contents_window.contents.font.color = @help_contents_window.system_color
          @help_contents_window.contents.draw_text(100, 305, 340, 24, "Page:" )   
          @help_contents_window.contents.font.color = @help_contents_window.normal_color
          @help_contents_window.contents.draw_text(160, 305, 150, 24, sprintf("%d / %d", @current_page, @total_pages))
        end 
        #--------------------------------------------------------------------------
        # * Draw Status Window Information
        #--------------------------------------------------------------------------
        def draw_status_window_information
          # Get State
          state = $data_states[STATUS_STATES[@status_command_window.index]]       
          # Get State information
          info = state.state_information   
          # Resize Window
          @status_contents_window.height = [[60 + info.size * 24, 60].max, 360].min
          @status_contents_window.create_contents   
          # Draw State Icon
          @status_contents_window.draw_icon(state.icon_index, 0, 0)
          @status_contents_window.contents.draw_text(26, 0, 150, 24, state.name)
          for i in 0...info.size
            @status_contents_window.contents.draw_text(0, 27 + i * 24, 165, 24, info[i])
          end   
        end
        #--------------------------------------------------------------------------
        # * Termination Processing
        #--------------------------------------------------------------------------
        def terminate
          super
          dispose_menu_background 
          # Dispose of windows
          @help_window.dispose   
          @command_window.dispose
          @status_command_window.dispose
          @help_contents_window.dispose
          @status_contents_window.dispose   
        end
        #--------------------------------------------------------------------------
        # * Return to Original Screen
        #--------------------------------------------------------------------------
        def return_scene
          $scene = Scene_Menu.new(6)
        end
        #--------------------------------------------------------------------------
        # * Frame Update
        #--------------------------------------------------------------------------
        def update
          super   
          # Update Help Window information
          update_help_information
          # Update Command Window
          @command_window.update   
          # Update Status Command
          @status_command_window.update
          # If Status Command Window
          if @status_command_window.active
            update_status_command
            return     
          end   
          # If Command Window Active
          if @command_window.active
            update_command
            return
          end   
          # If viewing help information
          if @viewing_help
            # Update Help Information viewing
            update_help_information_viewing
            return
          end
        end
        #--------------------------------------------------------------------------
        # * Update Status Command
        #--------------------------------------------------------------------------   
        def update_status_command
          # If active status command is not the same as the current command
          if @status_command_window.index != @current_command
            # Draw Status Window Information
            draw_status_window_information
            # Set Current Command
            @current_command = @status_command_window.index
          end   
         
          if Input.trigger?(Input::B)
            # Play cancel SE
            Sound.play_cancel
            @status_command_window.active = false     
            @status_command_window.index = 0
            @command_window.active = true
            # Set Status Window visibility
            @status_contents_window.visible = false
            return
          end   
        end 
        #--------------------------------------------------------------------------
        # * Update Command
        #--------------------------------------------------------------------------   
        def update_command

          # If active command is not the same as current command
          if active_command != @current_command
            # Set Display Page
            @display_page = 0
            # Set Current Page
            @current_page = @display_page + 1
            # Set windows visibility
            @help_contents_window.visible = status_command? ? false : true
            @status_command_window.visible = status_command? ? true : false
            @status_contents_window.visible = false
            # Draw Help window contents
            draw_help_window_contents
            # Set Current Command
            @current_command = active_command     
          end   
           
          if Input.trigger?(Input::B)
            Sound.play_cancel
            return_scene
            return
          end   

          if Input.trigger?(Input::C)
            # Play Decision SE
            Sound.play_decision   
            # If Status Command
            if status_command?
              @command_window.active = false       
              @status_command_window.active = true             
              @current_command = @status_command_window.index
              # Set Status Window visibility
              @status_contents_window.visible = true
              # Draw Status Window Information
              draw_status_window_information
              return
            else
              @command_window.active = false
              @viewing_help = true
              return
            end     
          end 
        end 
        #--------------------------------------------------------------------------
        # * Update Help Window Information Viewing
        #--------------------------------------------------------------------------   
        def update_help_information_viewing

          if Input.trigger?(Input::B)
            Sound.play_cancel   
            @viewing_help = false     
            @command_window.active = true
            return
          end   
         
          if Input.repeat?(Input::RIGHT) or Input.trigger?(Input::RIGHT)     
            next_page
          end
          if Input.repeat?(Input::LEFT) or Input.trigger?(Input::LEFT)
            previous_page
          end
          if Input.repeat?(Input::R)
            next_page(true)
          end
          if Input.repeat?(Input::L)
            previous_page(true)
          end       
        end 
        #--------------------------------------------------------------------------
        # * Go to the next page
        #--------------------------------------------------------------------------   
        def next_page(last = false)
          # Return if current page is the same or more than the total pages available
          return Sound.play_buzzer if @current_page >= @total_pages
          # If go to last page is true
          if last       
            # Play cursor SE
            Sound.play_cursor     
            return
          end     
          # Play cursor SE   
          Sound.play_cursor           
          # Set Display Page
          @display_page += 1
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents         
        end 
        #--------------------------------------------------------------------------
        # * Go to the previous page
        #--------------------------------------------------------------------------   
        def previous_page(first = false)
          # Return if current page is the same or less than 0
          return Sound.play_buzzer if @current_page <= 1
          # If go to first page is true
          if first
            # Play cursor SE     
            Sound.play_cursor   
            # Set Display Page
            @display_page = 0
            # Set Current Page
            @current_page = @display_page + 1
            # Draw Help window contents
            draw_help_window_contents       
            return
          end   
          # Play cursor SE   
          Sound.play_cursor           
          # Set Display Page
          @display_page -= 1
          # Set Current Page
          @current_page = @display_page + 1
          # Draw Help window contents
          draw_help_window_contents   
        end 
        #--------------------------------------------------------------------------
        # * Update Help Window Information
        #-------------------------------------------------------------------------- 
        def update_help_information
          # If command window is active
          if @command_window.active
            @help_window.set_text("Select an option for help and information.")
            return
          end       
          # If viewing help information
          if @viewing_help     
            @help_window.set_text(HELP_INFORMATION[active_command][0])     
            return
          end       
        end 
      end

      Normally I pass on making scripts like these due to all the explaining involved. So I'll be as brief as possible and you better know your way around arrays, hashes and constants.

      To limit the number of lines that appear per page edit this line:

      Code: [Select]
      PAGE_LINE_LIMIT = 12

      Change the 12 to whatever number of lines you want it to display per page.

      To add help commands/topics edit this constant in the script:

      Code: [Select]
      HELP_COMMANDS = ["Command1", "Command2", "Command3", "etc"]

      Now this is probably the most complex part of it. The help information.

      Code: [Select]
      HELP_INFORMATION = {"Command1" => ["Help Window Header Text",
                                         "Help Info Text"]}

      The Key in the hash has to have the same name as one in the help commands array constant.

      To set which command will respond as the status command edit this constant in the script:

      Code: [Select]
      STATUS_COMMAND = "Name"

      And here you set the state ID's that are displayed on the status command.

      Code: [Select]
      STATUS_STATES = [ID, ID, ID, ID] 

      ID = Number of the ID in the database.

      And finally for the state information.

      Add into the states notebox the following:

      Code: [Select]
      INFO
      Text here
      INFO

      Example:

      Code: [Select]
      INFO
      This is state info-
      rmation

      TEST
      TEST
      TEST
      INFO

      And sorry if the explanation sucks, but I stopped making public scripts because I can't stand explaining complex scripts, so you might have to find someone to explain how the scripts work to you. It's very simple stuff so with enough poking around you might figure it out yourself.

      Have a nice day.

      **
      Rep:
      Level 75
      RMRK Junior
      thanks i'll try to work out the fine details myself :p

      tried replying yesterday but my internet cut out :/