The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX Ace => VXA Scripts Database => Topic started by: DoctorTodd on April 06, 2012, 05:19:03 AM

Title: One Actor Full Status Menu
Post by: DoctorTodd on April 06, 2012, 05:19:03 AM
One Actor Full Status Menu
Version: 1.0.1
Author: DoctorTodd
Date: 04/6/2012

Version History




Planned Future Versions

Description



Removes all need for a status scene and works as if there is only one actor. This is the official menu for Gold and Glory 2.

Features


Screenshots
(https://rmrk.net/proxy.php?request=http%3A%2F%2Fdesmond.imageshack.us%2FHimg824%2Fscaled.php%3Fserver%3D824%26amp%3Bfilename%3Dcaptureufb.png%26amp%3Bres%3Dlanding&hash=fad84af5a16166bd3682cbf9e1b319465050f193)

Instructions

Paste above main.
Configure the script to the way you like it.

Script




#===============================================================================
#
# DT's One Actor Full Status Menu
# Author: DoctorTodd
# Date (04/4/2012)
# Type: (Menu)
# Version: (1.0.1) (VXA)
# Level: (Simple/Medium)
# Email: Support@beacongames.com
#
#===============================================================================
#
# NOTES: 1)This script will only work with ace.
#
#===============================================================================
#
# Description: Removes all need for a status scene and works as if there is
# only one actor. This is the official menu for Gold and Glory 2.
#
# Credits: Me (DoctorTodd)
#
#===============================================================================
#
# Instructions
# Paste above main.
#
#===============================================================================
#
# Contact me for commercial use, other wise just credit me and don't repost
# without my permission.
#
#===============================================================================
#
# Editing begins 40 and ends on 59.
#
#===============================================================================
module DTOAFS
 
  #Window Skin (Default = Window)
  WS = "Window"
 
  #Command Window X (640x480 default = 455) (544x416 default = 395)
  COMWINX = 395
 
  #Command Window Y (640x480 default = 60) (544x416 default = 20)
  COMWINY = 20
 
  #Gold Window X (640x480 default = 454) (544x416 default = 395)
  GWINX = 395
 
  #Gold Window Y (640x480 default = 362) (544x416 default = 187)
  GWINY = 322
 
  #Status Window X (640x480 default = 60) (544x416 default = 0)
  SWINX = 0
 
  #Status Window Y (640x480 default = 60) (544x416 default = 20)
  SWINY = 20
 
end
#===============================================================================
#  NOTE: Editing anything below without any skill will most likely give an error.
#===============================================================================
class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Initialize Command Selection Position (Class Method)
  #--------------------------------------------------------------------------
  def self.init_command_position
    @@last_command_symbol = nil
  end
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    select_last
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 150
  end
  #--------------------------------------------------------------------------
  # * Get Number of Lines to Show
  #--------------------------------------------------------------------------
  def visible_line_number
    item_max
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
    add_original_commands
    add_save_command
    add_game_end_command
  end
  #--------------------------------------------------------------------------
  # * Add Main Commands to List
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
  end
  #--------------------------------------------------------------------------
  # * For Adding Original Commands
  #--------------------------------------------------------------------------
  def add_original_commands
  end
  #--------------------------------------------------------------------------
  # * Add Save to Command List
  #--------------------------------------------------------------------------
  def add_save_command
    add_command(Vocab::save, :save, save_enabled)
  end
  #--------------------------------------------------------------------------
  # * Add Exit Game to Command List
  #--------------------------------------------------------------------------
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Main Commands
  #--------------------------------------------------------------------------
  def main_commands_enabled
    $game_party.exists
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Formation
  #--------------------------------------------------------------------------
  def formation_enabled
    $game_party.members.size >= 2 && !$game_system.formation_disabled
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Save
  #--------------------------------------------------------------------------
  def save_enabled
    !$game_system.save_disabled
  end
  #--------------------------------------------------------------------------
  # * Processing When OK Button Is Pressed
  #--------------------------------------------------------------------------
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  #--------------------------------------------------------------------------
  # * Restore Previous Selection Position
  #--------------------------------------------------------------------------
  def select_last
    select_symbol(@@last_command_symbol)
  end
end
#========================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays the characters status on the menu screen.
#==============================================================================

class Window_MenuInfo < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 395, 351)
    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, 265, 5)
      draw_actor_hp(@actor, 110 ,40, width = 244)
      draw_actor_mp(@actor, 110 , 65, width = 244)
      draw_actor_param(@actor, 0, 140, 0)
      draw_actor_param(@actor, 0, 164, 1)
      draw_actor_param(@actor, 0, 188, 2)
      draw_actor_param(@actor, 0, 212, 3)
      draw_actor_param(@actor, 0, 232, 4)
      draw_actor_param(@actor, 0, 252, 5)
      draw_actor_param(@actor, 0, 272, 6)
      draw_actor_param(@actor, 0, 292, 7)
      draw_exp_info(180, 231)
      draw_actor_icons(@actor, 100, 110, width = 96)
      draw_equipments(180, 100)
      draw_actor_class(@actor, 5, 110, width = 112)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Experience Information
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
     @actor = $game_party.members[0]
    s1 = @actor.max_level? ? "-------" : @actor.exp
    s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    change_color(system_color)
    draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
    draw_text(x, y + line_height * 2, 180, line_height, s_next)
    change_color(normal_color)
    draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
    draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment
  #--------------------------------------------------------------------------
  def draw_equipments(x, y)
     @actor = $game_party.members[0]
    @actor.equips.each_with_index do |item, i|
      draw_item_name(item, x, y + line_height * i)
    end
  end
#==============================================================================
# ? Scene_Menu
#==============================================================================
include DTOAFS
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ? Start
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_gold_window
    create_status_window
  end
  #--------------------------------------------------------------------------
  # ? Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window =  Window_MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_skill))
    @command_window.set_handler(:equip,     method(:command_equip))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
    @command_window.y = (DTOAFS::COMWINY)
    @command_window.x = (DTOAFS::COMWINX)
    @command_window.windowskin = Cache.system(DTOAFS::WS)
  end
  #--------------------------------------------------------------------------
  # ? Gold Window
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = (DTOAFS::GWINX)
    @gold_window.y = (DTOAFS::GWINY)
    @gold_window.windowskin = Cache.system(DTOAFS::WS)
  end
  #--------------------------------------------------------------------------
  # ? Status Window
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuInfo.new((DTOAFS::SWINX), (DTOAFS::SWINY))
    @status_window.windowskin = Cache.system(DTOAFS::WS)
  end
#--------------------------------------------------------------------------
  # * [Item] Command
  #--------------------------------------------------------------------------
  def command_item
    SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * [Equipment] Command
  #--------------------------------------------------------------------------
  def command_equip
    @actor = $game_party.members[0]
    SceneManager.call(Scene_Equip)
  end
  #--------------------------------------------------------------------------
  # * [Save] Command
  #--------------------------------------------------------------------------
  def command_save
    SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * [Exit Game] Command
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * [Skill] Command
  #--------------------------------------------------------------------------
  def command_skill
    @actor = $game_party.members[0]
      SceneManager.call(Scene_Skill)
    end
end
#==============================================================================
# ** Window_Gold
#------------------------------------------------------------------------------
#  This window displays the party's gold.
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, fitting_height(1))
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 150
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
  end
  #--------------------------------------------------------------------------
  # * Get Party Gold
  #--------------------------------------------------------------------------
  def value
    $game_party.gold
  end
  #--------------------------------------------------------------------------
  # Get Currency Unit
  #--------------------------------------------------------------------------
  def currency_unit
    Vocab::currency_unit
  end
  #--------------------------------------------------------------------------
  # * Open Window
  #--------------------------------------------------------------------------
  def open
    refresh
    super
  end
end



Credit




Support


Post here for quickest support, or send an email to Support@beacongames.com (Finally got my domain emails  ;D)

Known Compatibility Issues

None known so far.
Demo


Pointless

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.
Title: Re: One Actor Full Status Menu (640x480 only!)
Post by: modern algebra on April 07, 2012, 03:29:31 AM
Very nice design, but why do you limit it to 640x480 resolutions? It looks like its less than a dozen pixels away from fitting within 544 pixels horizontally.
Title: Re: One Actor Full Status Menu (640x480 only!)
Post by: DoctorTodd on April 07, 2012, 03:33:16 AM
Thanks, I'll see if it will work.

EDIT: You can but the command window and gold window is cut off.
Title: Re: One Actor Full Status Menu (640x480 only!)
Post by: Fall From Eden on April 07, 2012, 03:52:13 AM
Marc: I don't know RGSS3 at all, seeing as we do not have Ace, but there must be some equivalent to Graphics.width and Graphics.height. Could there not be a way to determine the screen's resolution and adjust their widths accordingly?

This seems like the simplest solution to me. :)
Title: Re: One Actor Full Status Menu (640x480 only!)
Post by: pacdiggity on April 07, 2012, 04:53:10 AM
Graphics.width and Graphics.height are the same in RGSS3 as they are in RGSS2. Marc (of Eden :V) is correct.
Title: Re: One Actor Full Status Menu (640x480 only!)
Post by: DoctorTodd on April 07, 2012, 05:39:18 AM
In that case I'll get right on fixing it.

EDIT: Alright it works with the regular resolution.

#===============================================================================
#
# DT's One Actor Full Status Menu
# Author: DoctorTodd
# Date (04/4/2012)
# Type: (Menu)
# Version: (1.0.1) (VXA)
# Level: (Simple/Medium)
# Email: Support@beacongames.com
#
#===============================================================================
#
# NOTES: 1)This script will only work with ace.
#
#===============================================================================
#
# Description: Removes all need for a status scene and works as if there is
# only one actor. This is the official menu for Gold and Glory 2.
#
# Credits: Me (DoctorTodd)
#
#===============================================================================
#
# Instructions
# Paste above main.
#
#===============================================================================
#
# Contact me for commercial use, other wise just credit me and don't repost
# without my permission.
#
#===============================================================================
#
# Editing begins 40 and ends on 59.
#
#===============================================================================
module DTOAFS
 
  #Window Skin (Default = Window)
  WS = "Window"
 
  #Command Window X (640x480 default = 455) (544x416 default = 395)
  COMWINX = 395
 
  #Command Window Y (640x480 default = 60) (544x416 default = 20)
  COMWINY = 20
 
  #Gold Window X (640x480 default = 454) (544x416 default = 395)
  GWINX = 395
 
  #Gold Window Y (640x480 default = 362) (544x416 default = 187)
  GWINY = 322
 
  #Status Window X (640x480 default = 60) (544x416 default = 0)
  SWINX = 0
 
  #Status Window Y (640x480 default = 60) (544x416 default = 20)
  SWINY = 20
 
end
#===============================================================================
#  NOTE: Editing anything below without any skill will most likely give an error.
#===============================================================================
class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Initialize Command Selection Position (Class Method)
  #--------------------------------------------------------------------------
  def self.init_command_position
    @@last_command_symbol = nil
  end
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    select_last
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 150
  end
  #--------------------------------------------------------------------------
  # * Get Number of Lines to Show
  #--------------------------------------------------------------------------
  def visible_line_number
    item_max
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
    add_original_commands
    add_save_command
    add_game_end_command
  end
  #--------------------------------------------------------------------------
  # * Add Main Commands to List
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
  end
  #--------------------------------------------------------------------------
  # * For Adding Original Commands
  #--------------------------------------------------------------------------
  def add_original_commands
  end
  #--------------------------------------------------------------------------
  # * Add Save to Command List
  #--------------------------------------------------------------------------
  def add_save_command
    add_command(Vocab::save, :save, save_enabled)
  end
  #--------------------------------------------------------------------------
  # * Add Exit Game to Command List
  #--------------------------------------------------------------------------
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Main Commands
  #--------------------------------------------------------------------------
  def main_commands_enabled
    $game_party.exists
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Formation
  #--------------------------------------------------------------------------
  def formation_enabled
    $game_party.members.size >= 2 && !$game_system.formation_disabled
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Save
  #--------------------------------------------------------------------------
  def save_enabled
    !$game_system.save_disabled
  end
  #--------------------------------------------------------------------------
  # * Processing When OK Button Is Pressed
  #--------------------------------------------------------------------------
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  #--------------------------------------------------------------------------
  # * Restore Previous Selection Position
  #--------------------------------------------------------------------------
  def select_last
    select_symbol(@@last_command_symbol)
  end
end
#========================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
#  This window displays the characters status on the menu screen.
#==============================================================================

class Window_MenuInfo < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     x : window X coordinate
  #     y : window Y coordinate
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 395, 351)
    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, 265, 5)
      draw_actor_hp(@actor, 110 ,40, width = 244)
      draw_actor_mp(@actor, 110 , 65, width = 244)
      draw_actor_param(@actor, 0, 140, 0)
      draw_actor_param(@actor, 0, 164, 1)
      draw_actor_param(@actor, 0, 188, 2)
      draw_actor_param(@actor, 0, 212, 3)
      draw_actor_param(@actor, 0, 232, 4)
      draw_actor_param(@actor, 0, 252, 5)
      draw_actor_param(@actor, 0, 272, 6)
      draw_actor_param(@actor, 0, 292, 7)
      draw_exp_info(180, 231)
      draw_actor_icons(@actor, 100, 110, width = 96)
      draw_equipments(180, 100)
      draw_actor_class(@actor, 5, 110, width = 112)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Experience Information
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
     @actor = $game_party.members[0]
    s1 = @actor.max_level? ? "-------" : @actor.exp
    s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    change_color(system_color)
    draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
    draw_text(x, y + line_height * 2, 180, line_height, s_next)
    change_color(normal_color)
    draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
    draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
  end
  #--------------------------------------------------------------------------
  # * Draw Equipment
  #--------------------------------------------------------------------------
  def draw_equipments(x, y)
     @actor = $game_party.members[0]
    @actor.equips.each_with_index do |item, i|
      draw_item_name(item, x, y + line_height * i)
    end
  end
#==============================================================================
# ? Scene_Menu
#==============================================================================
include DTOAFS
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ? Start
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_gold_window
    create_status_window
  end
  #--------------------------------------------------------------------------
  # ? Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window =  Window_MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_skill))
    @command_window.set_handler(:equip,     method(:command_equip))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
    @command_window.y = (DTOAFS::COMWINY)
    @command_window.x = (DTOAFS::COMWINX)
    @command_window.windowskin = Cache.system(DTOAFS::WS)
  end
  #--------------------------------------------------------------------------
  # ? Gold Window
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = (DTOAFS::GWINX)
    @gold_window.y = (DTOAFS::GWINY)
    @gold_window.windowskin = Cache.system(DTOAFS::WS)
  end
  #--------------------------------------------------------------------------
  # ? Status Window
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuInfo.new((DTOAFS::SWINX), (DTOAFS::SWINY))
    @status_window.windowskin = Cache.system(DTOAFS::WS)
  end
#--------------------------------------------------------------------------
  # * [Item] Command
  #--------------------------------------------------------------------------
  def command_item
    SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * [Equipment] Command
  #--------------------------------------------------------------------------
  def command_equip
    @actor = $game_party.members[0]
    SceneManager.call(Scene_Equip)
  end
  #--------------------------------------------------------------------------
  # * [Save] Command
  #--------------------------------------------------------------------------
  def command_save
    SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * [Exit Game] Command
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * [Skill] Command
  #--------------------------------------------------------------------------
  def command_skill
    @actor = $game_party.members[0]
      SceneManager.call(Scene_Skill)
    end
end
#==============================================================================
# ** Window_Gold
#------------------------------------------------------------------------------
#  This window displays the party's gold.
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, fitting_height(1))
    refresh
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 150
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
  end
  #--------------------------------------------------------------------------
  # * Get Party Gold
  #--------------------------------------------------------------------------
  def value
    $game_party.gold
  end
  #--------------------------------------------------------------------------
  # Get Currency Unit
  #--------------------------------------------------------------------------
  def currency_unit
    Vocab::currency_unit
  end
  #--------------------------------------------------------------------------
  # * Open Window
  #--------------------------------------------------------------------------
  def open
    refresh
    super
  end
end
Title: Re: One Actor Full Status Menu
Post by: yuile on January 28, 2013, 06:00:51 AM
Hi Doctor Tod

Is it possible to re size the width and height of the actor face?
Title: Re: One Actor Full Status Menu
Post by: DoctorTodd on January 28, 2013, 12:20:49 PM
I don't think so. I looked into the function and it seemed to only draw the actors face without any way of re-sizing it. There may be a method to do that but I don't know it.