One Person Menu

0 Members and 1 Guest are viewing this topic.

****
Rep:
Level 71
The Doctors in!
One Person Menu
Version: 1.1.0
Author: DoctorTodd
Date: 02/19/2012

Version History


  • Version 1.1.0 2012/02/19 - Window skin option
  • Version 1.0.1 2012/02/19 - Fixed scene error
  • Version 1.0.0 2012/02/19 - Original Release

Planned Future Versions

  • Version 1.1.0 - The ability to use pictures instead of windows Just use my picture menu script.

Description


A menu that is modified to work as if you are only using one
actor.

Features

  • Goes to first actor, no actor selection
  • Detailed status
  • Simple

Screenshots
(Click to enlarge).


Instructions

Paste above main.

Script


Code: [Select]
#===============================================================================
#
# DT's One Person Menu
# Author: DoctorTodd
# Date (02/19/2012)
# Type: (Menu)
# Version: (1.1.0)
# Level: (Simple)
# Email: BeaconGames2011@gmail.com
#
#===============================================================================
#
# Description: A menu that is modified to work as if you are only using one
# actor.
#
# Credits: Me (DoctorTodd)
#
#===============================================================================
#
# Instructions
# Paste above main.
#
#===============================================================================
#
# Editing begins 30 and ends 32.
#
#===============================================================================
module DTOPM
 
  #Window skin to use, place in system.
  WINDOW = ('Window')
 
end

class Scene_Menu < Scene_Base
  include DTOPM
  #--------------------------------------------------------------------------
  # * 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
    @status_window = Window_MenuStatus.new (200, 75)
    @status_window.windowskin = Cache.system(DTOPM::WINDOW)
    @gold_window = Window_Gold.new(40, 250)
    @gold_window.windowskin = Cache.system(DTOPM::WINDOW)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_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.index = @menu_index
    @command_window.x = 40
    @command_window.y = 75
    @command_window.windowskin = Cache.system(DTOPM::WINDOW)
    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      # Skill
         @actor = $game_party.members[1]
         $scene = Scene_Skill.new
      when 2      # Equip
         @actor = $game_party.members[1]
         $scene = Scene_Equip.new
      when 3      # Status
         @actor = $game_party.members[1]
         $scene = Scene_Status.new
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # End Game
        $scene = Scene_End.new
      end
    end
  end
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays the characters status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 300, 231)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
     @actor = $game_party.members[0]
      draw_actor_face(@actor, 0, 0)
      draw_actor_name(@actor, 110, 5)
      draw_actor_level(@actor, 190, 5)
      draw_actor_hp(@actor, 110 ,40)
      draw_actor_mp(@actor, 110 , 65)
      draw_actor_parameter(@actor, 0, 100, 0)
      draw_actor_parameter(@actor, 0, 124, 1)
      draw_actor_parameter(@actor, 0, 148, 2)
      draw_actor_parameter(@actor, 0, 172, 3)
      draw_actor_graphic(@actor, 220, 160)
      draw_actor_state(@actor, 190, 180, width = 96)
    end
  end
end


Credit


  • DoctorTodd

Support

Post here for quickest support, or send an email to BeaconGames2011@gmail.com

Known Compatibility Issues

None known so far, but overwrites Scene_Menu and Window_MenuStatus. So won't work with anything that uses that.

Demo

Pointless

Author's Notes


I decided to write this script because long before I knew anything about scripting I always wanted a menu like this but never requested it.

Restrictions

Free for non-commercial and commercial games. You must credit me! If you use this in a commercial game I expect a free copy.
« Last Edit: March 07, 2012, 02:43:59 AM by DoctorTodd »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
That's a pretty design DoctorTodd.

****
Rep:
Level 71
The Doctors in!

*
*crack*
Rep:
Level 63
2012 Best Newbie2012 Most Unsung MemberFor frequently finding and reporting spam and spam bots
I remember someone requested this kind of script recently.
Looks like we can tell them where to find it now.

Keep it up DT ;)

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Zero to Hero2014 Best IRC Quote2014 Most Missed Member2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
Nice design, DT!
Again, there are some things that don't need to be there, and some things that could've been aliased, but a good job nonetheless.
Would you mind if I included this design in PAC MM? You would, of course, be credited.
it's like a metaphor or something i don't know

*
Rep: +0/-0Level 58
See Throug Dreams
Quote
I remember someone requested this kind of script recently.
Looks like we can tell them where to find it now.

I think it was me!

This is exactly what I needed, my warmest thanks and compliments DoctorTodd!!

EDIT

I think i found a little error in the script:

Code: [Select]
  when 1      # Skill
         @actor = $game_party.members[1]
         $scene = Scene_Skill.new
      when 2      # Equip
         @actor = $game_party.members[1]
         $scene = Scene_Skill.new

placing Scene_Equip.new instead of  the second Scene_Skill.new seems to fix it :)
« Last Edit: February 20, 2012, 11:44:33 AM by Xabaras »

****
Rep:
Level 71
The Doctors in!
@Pacman: sure that's fine  :)

@Xabaras: Oops sorry about that once I'm back on my computer I'll upload the fixed version.

****
Rep:
Level 71
The Doctors in!
1.1! You now have the option to choose what window skin you wish to use.

Code: [Select]
#===============================================================================
#
# DT's One Person Menu
# Author: DoctorTodd
# Date (02/19/2012)
# Type: (Menu)
# Version: (1.1.0)
# Level: (Simple)
# Email: BeaconGames2011@gmail.com
#
#===============================================================================
#
# Description: A menu that is modified to work as if you are only using one
# actor.
#
# Credits: Me (DoctorTodd)
#
#===============================================================================
#
# Instructions
# Paste above main.
#
#===============================================================================
#
# Editing begins 30 and ends 32.
#
#===============================================================================
module DTOPM
 
  #Window skin to use, place in system.
  WINDOW = ('Window')
 
end

class Scene_Menu < Scene_Base
  include DTOPM
  #--------------------------------------------------------------------------
  # * 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
    @status_window = Window_MenuStatus.new (200, 75)
    @status_window.windowskin = Cache.system(DTOPM::WINDOW)
    @gold_window = Window_Gold.new(40, 250)
    @gold_window.windowskin = Cache.system(DTOPM::WINDOW)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_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.index = @menu_index
    @command_window.x = 40
    @command_window.y = 75
    @command_window.windowskin = Cache.system(DTOPM::WINDOW)
    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      # Skill
         @actor = $game_party.members[1]
         $scene = Scene_Skill.new
      when 2      # Equip
         @actor = $game_party.members[1]
         $scene = Scene_Equip.new
      when 3      # Status
         @actor = $game_party.members[1]
         $scene = Scene_Status.new
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # End Game
        $scene = Scene_End.new
      end
    end
  end
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays the characters status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 300, 231)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
     @actor = $game_party.members[0]
      draw_actor_face(@actor, 0, 0)
      draw_actor_name(@actor, 110, 5)
      draw_actor_level(@actor, 190, 5)
      draw_actor_hp(@actor, 110 ,40)
      draw_actor_mp(@actor, 110 , 65)
      draw_actor_parameter(@actor, 0, 100, 0)
      draw_actor_parameter(@actor, 0, 124, 1)
      draw_actor_parameter(@actor, 0, 148, 2)
      draw_actor_parameter(@actor, 0, 172, 3)
      draw_actor_graphic(@actor, 220, 160)
      draw_actor_state(@actor, 190, 180, width = 96)
    end
  end
end

***
Rep:
Level 60
Marc: Salaam. :)

Something that I wanted to note regarding both this script and your battle status script... it would be positively wonderful if the scripts could check for the size of the party, and display the "single member" versions upon returning a single party member while retaining the original style for parties of a larger size. Hopefully this is functionality you could consider adding in the future. ;)

I would also like to add that these scripts are very aesthetically pleasing, and are quite nice for those of us making games with a single character. Keep it up, they can be very useful. :)

(Oh, and on a separate note: you do not need to include the module DTOPM if you are referencing its contents with the DTOPM::Window syntax. Just for future reference. :))

****
Rep:
Level 71
The Doctors in!
I'll make sure to keep that in mind about the syntax thing. Also that's a good a idea, I might try that at one point. Thanks for your feedback.  ;)

***
Rep:
Level 60
I'll make sure to keep that in mind about the syntax thing. Also that's a good a idea, I might try that at one point. Thanks for your feedback.  ;)

Marc: Of course. :)

I was also assuming that you would like ideas about how to improve upon your scripts and better acquaint yourself with scripting in general, thus my suggestion. I believe figuring out how to do that adequately would provide an interesting and (hopefully) helpful task.

Good luck. :)

****
Rep:
Level 71
The Doctors in!
As soon as I finish my game (March 14th) I'll try that.

*
RMRK's dad
Rep:
Level 86
You know, I think its all gonna be okay.
For going the distance for a balanced breakfast.Project of the Month winner for June 2009For being a noted contributor to the RMRK Wiki2013 Best WriterSilver Writing ReviewerSecret Santa 2013 Participant
This and the other one-actor scripts just gave me a game idea...
:tinysmile:

**
Rep: +0/-0Level 70
RMRK Junior
 :blizj:
 Awesome
 :blizj: :blizj: :blizj: