Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[VX] HUD Menu (updated to v1.2)

HUD Menu
Version: 1.2
Author: OriginalWij
Release Date: 8/28/2008


Introduction
This is a simple HUD-like menu system.  It does not modify the sub-menus ... that's where you add your own favorite scripts.


Features
  • HUD-like menu
  • Increases save slots to 12
  • Adds alignment for commands in command menus
  • Swap party leader on map with the L and R keys
  • Replaces gold name with an icon
  • Adds commas to gold display
  • Load Game option added to menu
  • Probably some things I forgot ...

         V1.1
  • Now you can turn off the HUD with a switch (per request)

         V1.2
  • Fixed a bug in the "swap party leader on map" function.

Script
Code:
#==============================================================================
# One Actor HUD System
# v 1.2 - 8/28/2008
# created by OriginalWij
#==============================================================================
  
module HUD
  
  #=========================================================================#
  # Start User Config                                                       #
  #=========================================================================#
  
  # Colors
  HUD_BACK_COLOR     = Color.new(0,0,0,75)
  HUD_BAR_BACK_COLOR = Color.new(255,255,255,255)
  
  # Gold Icon
  HUD_GOLD_ICON = 205
  
  # Load command name
  HUD_LOAD_NAME = 'Load Game'
  
  # Location name
  HUD_LOCATION = 'Location: '
  
  # Mini-window opactiy
  HUD_MINI_OPACITY = 200
  
  # Hud Switch (turns hud off)
  HUD_DISABLE_SWITCH = 1
  
  #=========================================================================#
  # End User Config                                                         #
  #=========================================================================#

end

#==============================================================================
# HUD Window (new)
#------------------------------------------------------------------------------
# Draws HP/MP bars on-screen
#==============================================================================

class Hud_Window < Window_Base
  #--------------------------------------------------------------------------
  # Init
  #--------------------------------------------------------------------------
  def initialize
    super(-10,-16,200,104)
    self.opacity = 0
    update
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    if $game_switches[HUD::HUD_DISABLE_SWITCH]
      self.visible = false 
    else
      self.visible = true
    end
    self.contents.fill_rect(-2, 6, 136, 92, HUD::HUD_BACK_COLOR)
    self.contents.fill_rect(1, 15, 132, 8, HUD::HUD_BAR_BACK_COLOR)
    self.contents.fill_rect(1, 37, 132, 8, HUD::HUD_BAR_BACK_COLOR)
    @hud_actor = $game_party.members[0]
    draw_actor_hp(@hud_actor, 2,  0, 130)
    draw_actor_mp(@hud_actor, 2, 22, 130)
    hud_draw_actor_level(@hud_actor, 0, 48)
    draw_actor_state(@hud_actor, 38, 48)
  end
  #--------------------------------------------------------------------------
  # Draw Level With Small Font
  #--------------------------------------------------------------------------
  def hud_draw_actor_level(actor, x, y)
    self.contents.font.size = 16
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 12, y, 24, WLH, actor.level, 2)
    self.contents.font.size = Font.default_size
  end
end

#==============================================================================
# HUD Command Window (new)
#------------------------------------------------------------------------------
# Draws individual command windows
#==============================================================================

class Hud_Command_Window < Window_Base
  #--------------------------------------------------------------------------
  # Init
  #--------------------------------------------------------------------------
  def initialize(y)
    super(-168, y, 160, 56)
    self.back_opacity = HUD::HUD_MINI_OPACITY
    update
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    self.contents.clear
  end
end

#==============================================================================
# Dummy Location Window (new)
#------------------------------------------------------------------------------
# Draws the dummy location window
#==============================================================================

class Hud_Dummy_Location_Window < Window_Base
  #--------------------------------------------------------------------------
  # Init
  #--------------------------------------------------------------------------
  def initialize
    super(128, 382, 416, 34)
    self.z = 0
    update
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    self.contents.clear
  end
end
#==============================================================================
# Location Window (new)
#------------------------------------------------------------------------------
# Draws the location window
#==============================================================================

class Hud_Location_Window < Window_Base
  #--------------------------------------------------------------------------
  # Init
  #--------------------------------------------------------------------------
  def initialize
    super(128, 370, 416, 56)
    self.opacity = 0
    update
  end
  
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    self.contents.clear
    $hud_maps = load_data("Data/MapInfos.rvdata")
    @hud_maps_id = $game_map.map_id
    @hud_current_map = $hud_maps[@hud_maps_id].name
    @hud_current_map.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
    @hud_current_map.gsub!(/\[.*\]/) {""}
    hud_textsize = contents.text_size(HUD::HUD_LOCATION).width
    self.contents.font.color = system_color
    self.contents.draw_text(0, -4, 128, 32, HUD::HUD_LOCATION)
    self.contents.font.color = normal_color
    self.contents.draw_text(hud_textsize + 5, -4, 400, 32, @hud_current_map, 0)
  end
end

#==============================================================================
# HUD Money Window (new)
#------------------------------------------------------------------------------
# Draws a dummy money window
#==============================================================================

class Hud_Money_Window < Window_Base
  #--------------------------------------------------------------------------
  # Init
  #--------------------------------------------------------------------------
  def initialize
    super(0, 382, 128, 34)
    self.z = 0
    update
  end
  #--------------------------------------------------------------------------
  # Update
  #--------------------------------------------------------------------------
  def update
    self.contents.clear
  end
end

#==============================================================================
# Window_Base Overwrite
#------------------------------------------------------------------------------
#  Rewrites draw currency to display an icon and add commas (total rewrite)
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # Daw currency with currency icon and commas
  #--------------------------------------------------------------------------
  def draw_currency_value(value, x, y, width)
    hud_width = width - 22
    self.contents.font.color = normal_color
    @value = value / 1000
    @value3 = value - (@value*1000)
    @value = value / 1000000
    @value2 = (value - (@value*1000000)) / 1000
    @value = value / 1000000
    @value_h = @value3.to_s
    @value_t = @value2.to_s
    @value_m = @value.to_s
    if value > 999999
      if @value3 > 99
        self.contents.draw_text(x - 4, y, hud_width, WLH, @value_h, 2)
      elsif @value3 > 9
        self.contents.draw_text(x - 4, y, hud_width, WLH, '0' + @value_h, 2)
      else
        self.contents.draw_text(x - 4, y, hud_width, WLH, '00' + @value_h, 2)
      end
      self.contents.draw_text(x + 48, y, 11, WLH, ',', 2)
      if @value2 > 99
        self.contents.draw_text(x - 42, y, hud_width, WLH, @value_t, 2)
      elsif @value2 > 9
        self.contents.draw_text(x - 42, y, hud_width, WLH, '0' + @value_t, 2)
      else
        self.contents.draw_text(x - 42, y, hud_width, WLH, '00' + @value_t, 2)
      end
      self.contents.draw_text(x + 12, y, 11, WLH, ',', 2)
      self.contents.draw_text(x - 79, y, hud_width, WLH, @value_m, 2)
    elsif value > 999
      if @value3 > 99
        self.contents.draw_text(x - 4, y, hud_width, WLH, @value_h, 2)
      elsif @value3 > 9
        self.contents.draw_text(x - 4, y, hud_width, WLH, '0' + @value_h, 2)
      else
        self.contents.draw_text(x - 4, y, hud_width, WLH, '00' + @value_h, 2)
      end
      self.contents.draw_text(x + 48, y, 11, WLH, ',', 2)
      self.contents.draw_text(x - 52, y, hud_width, WLH, @value_t, 2)
    else
      self.contents.draw_text(x - 4, y, hud_width, WLH, @value_h, 2)
    end
    self.contents.font.color = normal_color
    draw_icon(HUD::HUD_GOLD_ICON, x + hud_width, y, true)
  end
end

#==============================================================================
# Window_Command Overwrite
#------------------------------------------------------------------------------
# Allows commands to be aligned
#==============================================================================

class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item (added align)
  #     index   : item number
  #     enabled : enabled flag. When false, draw semi-transparently.
  #     align   : align text flag.      0 = left justified
  #                                     1 = centered
  #                                     2 = right justified
  #     
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true, align = 0) #:add argument
    @align = align     # :add alignment arg.
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    case @align # :add check for alignment
    when 1
      self.contents.draw_text(rect, @commands[index], 1) # :add center
    when 2
      self.contents.draw_text(rect, @commands[index], 2) # :add right justify
    else
      self.contents.draw_text(rect, @commands[index], 0) # :old left justify
    end
  end
end

#==============================================================================
#  Window_Help Overwrite
#------------------------------------------------------------------------------
#  Force center alignment
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 544, WLH + 32)
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #  text  : character string displayed in window
  #  align : alignment (0..flush left, 1..center, 2..flush right)
  #--------------------------------------------------------------------------
  def set_text(text, align = 1) # :force align
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
      @text = text
      @align = align
    end
  end
end

#==============================================================================
# Window_MenuStatus (mod)
#------------------------------------------------------------------------------
#  This window displays party member status on the menu screen.
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias hud_menu_status_initialize initialize
  def initialize(x, y)
    hud_menu_status_initialize(x,y)
    self.z = 1000
  end
end

#==============================================================================
# Window_SaveFile Overwrite
#------------------------------------------------------------------------------
# Adjusts window size, count, and appearance
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     file_index : save file index (0-11)
  #     filename   : filename
  #--------------------------------------------------------------------------
  def initialize(file_index, filename)
    @save_offset = 0
    @save_offset = 272 if file_index > 5
    super(@save_offset, 56 + file_index % 6 * 60, 272, 60)
    @file_index = file_index
    @filename = filename
    load_gamedata
    refresh
    @selected = false
  end
  
  #--------------------------------------------------------------------------
  # * Load Partial Game Data - :added access to character names
  #    By default, switches and variables are not used (for expansion use,
  #    such as displaying place names)
  #--------------------------------------------------------------------------
  def load_gamedata
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      begin
        @characters     = Marshal.load(file)
        @frame_count    = Marshal.load(file)
        @last_bgm       = Marshal.load(file)
        @last_bgs       = Marshal.load(file)
        @game_system    = Marshal.load(file)
        @game_message   = Marshal.load(file)
        @game_switches  = Marshal.load(file)
        @game_variables = Marshal.load(file)
        @hud_self_sw    = Marshal.load(file)
        @hud_actors     = Marshal.load(file)
        @total_sec = @frame_count / Graphics.frame_rate
      rescue
        @file_exist = false
      ensure
        file.close
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    name = Vocab::File + " #{@file_index + 1}"
    self.contents.draw_text(4, 0, 100, WLH, name)
    @name_width = contents.text_size(name).width
    if @file_exist
      draw_party_characters(84, 30)
      self.contents.font.color = normal_color
      draw_playtime(0, 0, contents.width - 4, 2)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Draw Party Characters (changed spacing)
  #     x : Draw spot X coordinate
  #     y : Draw spot Y coordinate
  #--------------------------------------------------------------------------
  def draw_party_characters(x, y)
    for i in 0...@characters.size
      name = @characters[i][0]
      index = @characters[i][1]
      draw_character(name, index, x + i * 24, y)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Draw Play Time
  #     x : Draw spot X coordinate
  #     y : Draw spot Y coordinate
  #     width : Width
  #     align : Alignment
  #--------------------------------------------------------------------------
  def draw_playtime(x, y, width, align)
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    time_string = sprintf("%02d:%02d", hour, min)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, width, WLH, time_string, 2)
  end
end 

#==============================================================================
# Scene_Base Overwrite
#------------------------------------------------------------------------------
# Rewrites the menu background script to be un-blurred and un-tinted
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # Create Un-blurred Snapshot for Using as Background of Another Screen
  #--------------------------------------------------------------------------
  def snapshot_for_background
    $game_temp.background_bitmap.dispose
    $game_temp.background_bitmap = Graphics.snap_to_bitmap
  end
  #--------------------------------------------------------------------------
  # Create Un-tinted Background for Menu Screen
  #--------------------------------------------------------------------------
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.color.set(0, 0, 0, 0)
    update_menu_background
  end
end

#==============================================================================
# Scene_Title Overwrite
#------------------------------------------------------------------------------
# Center start menu commands
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Create Command Window (centered)
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 288
    @command_window.draw_item(0, true, 1)
    @command_window.draw_item(1, true, 1)
    @command_window.draw_item(2, true, 1)
    if @continue_enabled                        # If continue is enabled
      @command_window.index = 1                 # Move cursor over command
    else                                        # If disabled
      @command_window.draw_item(1, false, 1)    # Make command semi-transparent
    end
    @command_window.openness = 0
    @command_window.open
  end
end

#==============================================================================
# Scene Map Mod
#------------------------------------------------------------------------------
# Adds HP/MP window to map screen
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # Start (Include HUD)
  #--------------------------------------------------------------------------
  alias hud_scene_map_start start
  def start
    hud_scene_map_start
    
    #add hud window
    @hud_window = Hud_Window.new    
  end
  #--------------------------------------------------------------------------
  # Terminate (Include HUD)
  #--------------------------------------------------------------------------
  alias hud_scene_map_terminate terminate
  def terminate
    hud_scene_map_terminate
    
    #dispose hud window
    @hud_window.dispose
  end
  #--------------------------------------------------------------------------
  # Update (Include HUD and L & R)
  #--------------------------------------------------------------------------
  alias hud_scene_map_update update
  def update
    hud_scene_map_update
    
    #update hud window
    @hud_window.update
    
    #check for L and R
    if Input.trigger? (Input::R)
      if $game_party.members.size > 1
        Sound.play_save
        hud_lead_hold1 = $game_party.members[0].id 
        $game_party.remove_actor (hud_lead_hold1)
        $game_party.add_actor (hud_lead_hold1)
        $game_player.refresh
      end
    elsif Input.trigger? (Input::L)
      if $game_party.members.size > 1
        Sound.play_save
        hud_lead_hold1 = $game_party.members[0].id 
        hud_lead_hold2 = $game_party.members[1].id 
        hud_lead_hold3 = $game_party.members[2].id 
        @hud_party_size = $game_party.members.size
        $game_party.remove_actor (hud_lead_hold1)
        $game_party.remove_actor (hud_lead_hold2) if @hud_party_size > 2
        $game_party.remove_actor (hud_lead_hold3) if @hud_party_size > 3
        $game_party.add_actor (hud_lead_hold1)
        $game_party.add_actor (hud_lead_hold2) if @hud_party_size > 2
        $game_party.add_actor (hud_lead_hold3) if @hud_party_size > 3
        $game_player.refresh
      end
    end
  end
end

#==============================================================================
# Scene_Menu Mods & Overwrites
#------------------------------------------------------------------------------
# Mods:
# 1) Adjusts command window position
# 2) Makes status window invisible
# 3) Adjusts gold window position
# 4) Makes gold window transparent
# 5) Adds mini-windows to terminate
#
# Adds:
# 1) Mini-windows for commands
#
# Overwrites:
# 1) Rewrites commands to be invisible and adds Load command
# 2) Adds load & up/down check to update selection
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Start (with adjustments)
  #--------------------------------------------------------------------------
  alias hud_scene_menu_start start
  def start
    hud_scene_menu_start
  # adjust command window position
    @command_window.x = -160
  # adjust status window visibility
    @status_window.visible = false
  # adjust gold window position
    @gold_window.x = -19
    @gold_window.y = 370
  # create location window
    @hud_location_window = Hud_Location_Window.new
  # create dummy windows
    @hud_money_window = Hud_Money_Window.new
    @hud_dummy_location_window = Hud_Dummy_Location_Window.new
  # adjust gold window transparency
    @gold_window.opacity = 0
  end
  
  #--------------------------------------------------------------------------
  # Create Mini Command Windows (new)
  #--------------------------------------------------------------------------
  def create_mini_windows
    @mini_command_window = []
    for i in 0..6
     @mini_command_window[i] = Hud_Command_Window.new(i * 24 + 80)
    end
    if $game_party.members.size == 0
      @mini_command_window[0].contents.font.color.alpha = 128
      @mini_command_window[1].contents.font.color.alpha = 128
      @mini_command_window[2].contents.font.color.alpha = 128
      @mini_command_window[3].contents.font.color.alpha = 128
    end
    @mini_command_window[0].contents.draw_text(-15, 0, 160, 24, Vocab::item, 1)
    @mini_command_window[1].contents.draw_text(-15, 0, 160, 24, Vocab::skill, 1)
    @mini_command_window[2].contents.draw_text(-15, 0, 160, 24, Vocab::equip, 1)
    @mini_command_window[3].contents.draw_text(-15, 0, 160, 24, Vocab::status, 1)
    if $game_system.save_disabled
      @mini_command_window[4].contents.font.color.alpha = 128
    end
    @mini_command_window[4].contents.draw_text(-15, 0, 160, 24, Vocab::save, 1)
    @mini_command_window[5].contents.draw_text(-15, 0, 160, 24, HUD::HUD_LOAD_NAME, 1)
    @mini_command_window[6].contents.draw_text(-15, 0, 160, 24, Vocab::game_end, 1)
  end
  
  #--------------------------------------------------------------------------
  # * Termination Processing (add mini, location, & dummy windows)
  #--------------------------------------------------------------------------
  alias hud_scene_menu_terminate terminate
  def terminate
    hud_scene_menu_terminate
    @hud_money_window.dispose
    @hud_dummy_location_window.dispose
    @hud_location_window.dispose
    for i in 0..6
      @mini_command_window[i].dispose
    end
  end
  
  #--------------------------------------------------------------------------
  # Create Command Window With Invisiblity and Load Command (Rewrite)
  #--------------------------------------------------------------------------
  def create_command_window
    create_mini_windows # new: call mini window creation
    s1 = ""
    s2 = ""
    s3 = ""
    s4 = ""
    s5 = ""
    s6 = ""
    s7 = ""
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    for i in 1..10
      @mini_command_window[@command_window.index].x += 16 if @mini_command_window[@command_window.index].x < -8
      Graphics.wait(1)
    end
  end
    
  #--------------------------------------------------------------------------
  # Update Command Selection With Arrow Check, Load, and Location (Rewrite)
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B) #original
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C) #original
      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      # Items
        $scene = Scene_Item.new
      when 1,2,3  # Skills, Equip, Status
        @status_window.visible = true
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # :changed to Load
        $scene = Scene_File.new(false, false, false)
      when 6      # End Game :changed from 5 to 6
        $scene = Scene_End.new
      end
      # :new - move mini windows
    elsif Input.repeat?(Input::UP)     # :new
      @offset = @command_window.index + 1
      @offset = 0 if @offset > 6
      for i in 1..10
        @mini_command_window[@offset].x -= 16 if @mini_command_window[@offset].x > -168
        @mini_command_window[@command_window.index].x += 16 if @mini_command_window[@command_window.index].x < -8
        Graphics.wait(1)
      end
    elsif Input.repeat?(Input::DOWN)   # :new
      @offset = @command_window.index - 1
      @offset = 6 if @offset < 0
      for i in 1..10
        @mini_command_window[@offset].x -= 16 if @mini_command_window[@offset].x > -168
        @mini_command_window[@command_window.index].x += 16 if @mini_command_window[@command_window.index].x < -8
        Graphics.wait(1)
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # * End Actor Selection (Mod
  #--------------------------------------------------------------------------
  alias hud_end_actor_selection end_actor_selection
  def end_actor_selection
    hud_end_actor_selection
    @status_window.visible = false
  end
end

#==============================================================================
# Scene_Item Overwrite
#------------------------------------------------------------------------------
# Adjusted for only 1 character
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # Show Target Window (adjusted viewport)
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @item_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
end

#==============================================================================
# ** Scene_Skill
#------------------------------------------------------------------------------
#  This class performs the skill screen processing.
#==============================================================================

class Scene_Skill < Scene_Base
  #--------------------------------------------------------------------------
  # * Show Target Window
  #     right : Right justification flag (if false, left justification)
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @skill_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
end
#==============================================================================
# Scene_File Overwrite
#------------------------------------------------------------------------------
# Add return for Load command and adjust number of files
#==============================================================================

class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      if @saving
        $scene = Scene_Menu.new(4)
      else
        $scene = Scene_Menu.new(5)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Create Save File Window
  #--------------------------------------------------------------------------
  def create_savefile_windows
    @savefile_windows = []
    for i in 0..11
       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
    end
    @item_max = 12
  end
  #--------------------------------------------------------------------------
  # * Update Save File Selection
  #--------------------------------------------------------------------------
  alias hud_update_savefile_selection update_savefile_selection
  def update_savefile_selection
    hud_update_savefile_selection
    if Input.trigger?(Input::RIGHT)
      if @index < 6
        Sound.play_cursor
        @savefile_windows[@index].selected = false
        @index += 6
        @savefile_windows[@index].selected = true
      end
    elsif Input.trigger?(Input::LEFT)
      if @index > 5
        Sound.play_cursor
        @savefile_windows[@index].selected = false
        @index -= 6
        @savefile_windows[@index].selected = true
      end
    end
  end
end

#==============================================================================
# Scene_End Overwrite
#------------------------------------------------------------------------------
# Adjusts return for Quit because of adding Load & centers menu
#==============================================================================

class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # * Create Command Window (centered)
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::to_title
    s2 = Vocab::shutdown
    s3 = Vocab::cancel
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    @command_window.openness = 0
    @command_window.draw_item(0, true, 1)
    @command_window.draw_item(1, true, 1)
    @command_window.draw_item(2, true, 1)
  end
  
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

Customization
All customizable options are listed at the top of the script

Compatibility
Overwrites alot of the menu codes, so other menus scripts probably will conflict.

Screenshot
None.  Need to see it in action to appreciate it.
Screenshot added.
http://img154.imageshack.us/img154/2912/sshot1dp6.th.png[/img]


DEMO
None. (only the one script)
Demo added. (updated to v1.2)
http://www.mediafire.com/?diqbj605qmj

Installation
Place above main (plug and play).

FAQ
Comments welcome.

Terms and Conditions
Free to use.  Please credit me.

Credits
Me
 
I like the load game option and the extra save slots! It's a really well done system. Though I do think a screen or two would help before people just wildly try it, but I do agree that you need to play it to appreciate it.
 
@Avadan 
thanx for the input ...
I originally wanted all of the stats on the screen, but I couldn't quite fit all 4 across the screen.
Also, it lags alot with all 4 of them displayed.
 
I have a couple of questions I need answered in order to help you:

1) Exactly what do you want to turn off?
2) You want to be able to use this menu AND the default VX menu?
 
1)Mainly the hud... for cutscenes
2)Yeah.... is it possible?

....oh!
and how can I.... eeerh... turn off the Swapping party leader?
 
@Muffins.org
Did you try starting a new game?  Sometimes that happens if you load a saved game after adding my script.

@Avadan
1) Yes, add this in the "module" at the top of the script:
Code:
  # Hud Switch (turns hud off)
  HUD_DISABLE_SWITCH = 1 # whatever switch number you want

  and this at the TOP of "update" in Hud_Window:
Code:
    if $game_switches[HUD::HUD_DISABLE_SWITCH]
      self.visible = false 
    else
      self.visible = true
    end
 
  Then, just specify whatever switch you want, turn it on in game and the HUD will disappear.

2) No, my system edits too much of the standard menu.
 
Updated to v1.2
Please redownload this new version as it fixes a bug in the L & R button to change leader section.
The old versions would create errors with only 1 person in the party. FIXED!

Posted a new version of script and updated the download.
 
@Muffins.org
Well, the error is saying is that the actor specified doesn't exist ....
.... do you start your game without anyone in the party?
If you do that it would give an error.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top