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.
DT's simple modded menu

0 Members and 1 Guest are viewing this topic.

****
Rep:
Level 71
DT's simple modded menu
Version: 1.0.1
Author: DoctorTodd (Check credit for more)
Date: January 17th, 2012

Version History


  • Version 1.0.1 2012.02.19 - Cleaned some stuff up (Thanks Logan Forests).
  • Version 1.0.0 2012.01.17 - Original Release

Planned Future Versions

    None planned, tell me if you have any ideas.

Description


Replaces default menu and adds a new one that has the command and status windows flipped, a location window is also added. This is my first script (More of an edit), I made this for noobs who want something a bit different from the default.

Features

  • Simple

Screenshots



Instructions

Paste above main

Script


Code: [Select]
#===============================================================================
#
# DT's Modded Menu
# Author: DoctorTodd
# Date (01/17/2012)
# Type: (Menu)
# Version: (1.0.1)
# Level: (Simple)
#
#===============================================================================
#
# Description: Replaces default menu and adds a new one that has the command and
# status windows flipped, a location window is also added.
#
# Credits: Me (DoctorTodd), Syvkal for the Location Window, you can also give
# credit to Pacman for his severely modified template.
#
#===============================================================================
#
# Instructions
# Paste above main.
 
#===============================================================================
#
# This script requires no editing.
#
#===============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(384, 281)
    @status_window = Window_MenuStatus.new(0, 0)
    @win_loc = Scene_Menu::Window_location.new(384, 336)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @win_loc.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    @win_loc.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # * 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])
    @command_window.x = (574 - @command_window.width) - 30
    @command_window.y
    @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
      end
    end
  end

  #--------------------------------------------------------------------------
  # * Start Actor Selection
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # * End Actor Selection
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # * Update Actor Selection
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # skill
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
#==============================================================================
# ** Window_Location
#------------------------------------------------------------------------------
#  This class shows the current map name.
#==============================================================================

class Window_location < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 160, (WLH*2) + 32)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    $maps = load_data("Data/MapInfos.rvdata")
    @map_id = $game_map.map_id
    @currmap = $maps[@map_id].name
    self.contents.font.color = system_color
    self.contents.draw_text(0, -4, 128, 32, "Location :")
    self.contents.font.color = normal_color
    self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1)
  end
end
Credit


    • DoctorTodd
    • Syvkal for the location window

    Support


    Post here for support

    Known Compatibility Issues

    Should be fine with every thing except for other menu script.s

    Demo


    Not needed

    Author's Notes


    I kinda already explained what I needed to say in description.

    Restrictions

    For use in commercial and non-commercial, credit is required
    « Last Edit: February 20, 2012, 04:08:17 AM by DoctorTodd »

    *
    The Hero of Rhyme
    Rep:
    Level 83
    ( ͡° ͜ʖ ͡°)
    2014 Queen of RMRKProject of the Year 20142014 Best RPG Maker User - Story2011 Best Newbie2014 Best RPG Maker User - Creativity2014 Kindest Member2013 Queen of RMRKBronze SS AuthorBronze Writing ReviewerSecret Santa 2013 ParticipantFor taking arms in the name of your breakfast.GOOD!For frequently finding and reporting spam and spam bots2012 Best Yuyubabe Smiley2012 Best RPG Maker User (Creativity);o
    I properly congratulate you on your first script.

    :V
    Spoiler for My Games and Art:
    ℒℴѵℯ❤


    My Artwork Thread

    The Lhuvia Tales [Current]

    Ambassador [Complete]

    The Postman [Complete]

    The Wyvern [Complete]

    Phoenix Wright: Haunted Turnabout [Complete]

    Major Arcana [Cancelled]


    *
    Rep:
    Level 82
    You might want to edit your post to not centre the text in the [code ] window. Whilst it will copy/paste correctly, it just doesn't look right.

    One more thing that made me look twice is that you have your Window_location class nested inside the Scene_Menu class. Now, nesting classes isn't a bad thing, but having it written in the middle of Scene_Menu methods doesn't aid readability - it separates the methods in Scene_Menu.

    If you wanted it nested, I usually do something like this:

    Code: [Select]
    class A
      #Class A contains nested class: NestedA
      def method_a
        #do something
      end
      def method_b
        #do something else
      end
     
      class NestedA
        def method_a
          #do something
        end
      end
     
    end

    The comment after declaring 'Class A' tells me that I have a nested class in there somewhere. For me, that's going to be somewhere near the end of 'Class A'.

    It does mean, however, that if you wanted to create another instance of the class 'Window_location', like in Scene_Status, you would have to go through Scene_Menu first like so:

    Code: [Select]
    @win_loc = Scene_Menu::Window_location.new(x, y)

    You can only use '@win_loc = Window_location.new' when working within Scene_Menu already.

    Nesting classes is a little like using modules to create a namespace to show that a particular class is not like another class of the same name. For example:

    Code: [Select]
    #Totally pointless classes
    class A
      class C
      end
    end
    class B
      class C
      end
    end

    It becomes obvious that an instance of A::C is not the same thing as an instance of B::C, despite them sharing the same class name. Modules allow you to do the same (as well as another, slightly more advanced use called 'mixin'), by providing a kind of namespace for the data within. The main difference between Modules and Classes, though, is that you can create instances of Classes with the '.new' keyword, but you can't make an instance of a Module. There are other differences, but I won't keep pushing info onto you. I just wanted to point that bit out.


    Other than that, it's good to see a fresh face around. Starting off small is the best way to learn how the language functions. Then you can start to make scripts to rival modern and the other good scripters here.
    (Why do I always feel like it's the end of the world and I'm the last man standing?)

    ****
    Rep:
    Level 71
    Thanks, I'm working on another script right now (Which I'll post soon). After that I'll update the script and post it.

    ****
    Rep:
    Level 71
    # Updated to 1.0.1 #