XaiL Menu Delux + Yanfly Classes PROBLEM
BMM_Archive · July 15, 2026
Original Source
- Original title: XaiL Menu Delux + Yanfly Classes PROBLEM
- Original author: Euphoria
- Original date: January 30, 2014
- Source thread: https://forums.rpgmakerweb.com/threads/xail-menu-delux-yanfly-classes-problem.23142/
- Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSSx Script Support
Summary
I added a custom command for Yanfly's classes to the XaiL Menu, like so: :class =>["", "Change Classes", 1, true, true, Scene_Class Now I've got the class scene to open up but even with the second "true" enabled I am not able to select what character I want to change classes, it automatically goes to the party leader. Please help, I cannot select a player before going to the class menu. Thanks.
Archived First Post
:class =>["", "Change Classes", 1, true, true, Scene_Class
Now I've got the class scene to open up but even with the second "true" enabled I am not able to select what character I want to change classes, it automatically goes to the party leader.
Please help, I cannot select a player before going to the class menu. Thanks.
Â
XaiL Menu (Bolded parts were written by me(and are not letting me select a character))
#==============================================================================
# Â XaiL System - Menu Delux
# Â Author: Nicke
# Â Created: 20/11/2012
# Â Edited: 08/02/2013
# Â Version: 1.1b
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#==============================================================================
# Requires: XS - Core Script.
#==============================================================================
#
# This script changes the way the menu scene works. Not compatible with
# XS - Menu or XS - Icon Menu.
#
# Instructions are in the settings module below. Make sure you read through
# everything so you understand each section.
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-XS-MENU_DELUX] = true
Â
module XAIL
 module MENU_DELUX
  #--------------------------------------------------------------------------#
  # * Settings
  #--------------------------------------------------------------------------#
  # FONT:
  # FONT = [name, size, color, bold, shadow]
  FONT = [["Calibri", "Verdana"], 18, Color.new(255,255,255), true, true]
  Â
  # PLAYTIME_ICON:
  # Set playtime window icon.
  # PLAYTIME_ICON = icon_id
  PLAYTIME_ICON = 280
  Â
  # MENU_ALIGNMENT:
  # MENU_ALIGNMENT = 0 (left), 1 (center), 2 (right)
  MENU_ALIGNMENT = 0 # Default: 2.
  Â
  # MENU_SKIN:
  # The windowskin to use for the windows.
  # Set to nil to disable.
  # MENU_SKIN = string
  MENU_SKIN = nil
  Â
  # MENU_LIST:Â
  # name, icon_index and custom are optional.
  # If name is empty it will use the corresponding symbol as name instead.
  # To make a command a common event you need to set custom to the common event
  # id you want to run as seen below.
  # symbol => [name, description, icon_index, enabled, personal, custom]
  MENU_LIST = {
   :item    => ["Items", "Browse through your acquired items.", 3507, true, false],
   :equip   => ["Equipment", "Change your equipment.", 3517, true, true],
   :class   => ["Classes", "Change a character's.", 3519, true, true, Scene_Class],
   :skill   => ["Spells/Skills", "Manage your available skills.", 3535, true, true],
   :LearnSkil => ["Learn Skills", "Use Class Points(CP) to learn new skills.", 3534, true, true, Scene_LearnSkill],
   :status   => ["Stats", "See the current status of the hero.", 3542, true, true],
   :formation => ["", "Change the formation of the party.", 3502, true, false],
   :Tele    => ["Teleport", "Teleport to previously explored areas.", 3514, true, false, Scene_Teleport],
   :save    => ["", "Record your progress.", 3530, true, false],
   :load    => ["", "Load your saved progress.", 3528, true, false, Scene_Load],
   :title   => ["", "Return to title.", 3509, true, false, Scene_Title],
  } # Don't remove this line!
  Â
  # MENU_SAVE = true/false
  # Override enabled option for save (so you can change it ingame).
  MENU_SAVE = true
  Â
  # If MENU_CUSTOM is true you will have to add the commands yourself
  # ingame, which can be useful for certain quest related stuff or if you
  # want to enable/disable menu commands.
  # To add/remove a command ingame follow these instructions:
  #Â
  # In a script call do like this:
  # menu_scene(key, type)
  # menu_sceneitem,:add) # To add item to menu list.
  # menu_sceneitem,:del) # To remove item from menu list.
  #
  # In a conditional branch you can check if a menu command isÂ
  # enabled/disabled:
  # menu_active?(key)Â
  # menu_active?item) # Check if item is enabled.
  # !menu_active?item) # Check if item is disabled.
  #
  # To set a id to be enabled do like this:
  # menu_activeskill, true) # Set menu skill to be enabled.
  #
  # To add/remove all available menu commands use one of theÂ
  # following methods in a script call:
  # menu_add_all
  # menu_del_all
  #
  # MENU_CUSTOM = true/false
  MENU_CUSTOM = false
  Â
  # The text to be displayed if no menu items is available.
  # Only used if MENU_CUSTOM is true.
  # MENU_EMPTY = string
  EMPTY = "Menu is not available at this point..."
  Â
  # MENU_MUSIC:
  # Set the music to be played at the menu scene.
  # This is optional.
  # MUSIC = true/false
  MUSIC = false
  # MUSIC_BGM = [name, volume, pitch]
  MUSIC_BGM = ["Theme4", 70, 100]
  # MUSIC_BGS = [name, volume, pitch]
  MUSIC_BGS = ["Darkness", 50, 100]
  Â
  # ANIM_LIST:
  # A list of animation images.
  # name  =>  [z, zoom_x, zoom_y, blend_type, opacity]
  ANIM_LIST = {
   "Menu_Fog1"  => [1, 1.2, 1.2, 1, 125],
   "Menu_Fog2"  => [1, 1.8, 1.8, 1, 155]
  } # Don't remove this line!
  Â
  # BACKGROUND:
  # name => [x, y, z, opacity]
  BACKGROUND = {
   #"" => [0, 0, 0, 255]
  } # Don't remove this line!
  Â
  # Show vocab for HP, MP and TP.
  # BAR_VOCAB = true/false
  BAR_VOCAB = true
  Â
  # BAR_COLOR = rgba(255,255,255,255)
  # Set the color of the gauges.
  BAR_HP = [Color.new(255,25,25,32), Color.new(255,150,150)]
  BAR_MP = [Color.new(25,25,255,32), Color.new(150,150,255)]
  BAR_TP = [Color.new(25,255,25,32), Color.new(150,255,150)]
  Â
  # DETAILS:
  # Setup details here. (Recommended to use the default ones since you will
  # need a bit RGSS knowledge to add more.)
  def self.details
   ["#{Vocab::currency_unit}: #{$game_party.gold}",
   "Steps: #{$game_party.steps}",
   "Collected Items: #{$game_party.all_items.size}",
   "Map: #{$data_mapinfos[$game_map.map_id].name}",
   "Leader: #{$game_party.leader.name}",
   "Battle Count: #{$game_system.battle_count}",
   "Save Count: #{$game_system.save_count}",
   "Party Members: #{$game_party.all_members.size}",
   "Highest Level: #{$game_party.highest_level}",
  ]
  end
  Â
  # DETAILS_ICONS:
  # DETAILS_ICONS[id] = icon_id
  # Set the details icon_id. (optional)
  # Should be in the same order as details.
  # Use nil to disable a icon.
  DETAILS_ICONS = []
  DETAILS_ICONS[0]  = 360  # GOLD
  DETAILS_ICONS[1]  = 172  # STEPS
  DETAILS_ICONS[2]  = 270  # ITEMS
  DETAILS_ICONS[3]  = 1757 # MAP
  DETAILS_ICONS[4]  = 125  # LEADER
  DETAILS_ICONS[5]  = 115  # BATTLE COUNT
  DETAILS_ICONS[6]  = 224  # SAVE COUNT
  DETAILS_ICONS[7]  = 121  # PARTY MEMBERS
  DETAILS_ICONS[8]  = 14  # HIGHEST LEVEL
  DETAILS_ICONS[9]  = nil  # VARIABLE 1
  DETAILS_ICONS[10] = nil  # VARIABLE 2
  Â
  # Transition, nil to use default.
  # TRANSITION [speed, transition, opacity]
  TRANSITION = nil
  Â
 end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================#
# ** Error Handler
#==============================================================================#
 unless $imported["XAIL-XS-CORE"]
  # // Error handler when XS - Core is not installed.
  msg = "The script %s requires the latest version of XS - Core in order to function properly."
  name = "XS - Menu Delux"
  msgbox(sprintf(msg, name))
  exit
 end
#==============================================================================#
# ** Game_System
#==============================================================================#
class Game_System
 Â
 attr_accessor :menu_list
 Â
 alias xail_menu_delux_gm_sys_initialize initialize
 def initialize(*args, &block)
  # // Method to initialize game system.
  xail_menu_delux_gm_sys_initialize(*args, &block)
  @menu_list = {}
 end
 Â
 def get_menu
  # // Method to get the menu list.
  XAIL::MENU_DELUX::MENU_CUSTOM ? @menu_list : XAIL::MENU_DELUX::MENU_LIST
 end
 Â
end
#==============================================================================#
# ** Game_Interpreter
#==============================================================================#
class Game_Interpreter
 Â
 def menu_scene(key, type = :add) Â
  # // Method to add/remove a menu item to the list.
  case type
   when :add # // Add menu id.
    unless $game_system.menu_list.include?(XAIL::MENU_DELUX::MENU_LIST[key])
     $game_system.menu_list[key] = XAIL::MENU_DELUX::MENU_LIST[key]      Â
    end unless XAIL::MENU_DELUX::MENU_LIST[key].nil?
   when :del # // Remove menu id.
   unless XAIL::MENU_DELUX::MENU_LIST[key].nil?
    $game_system.menu_list.delete(key)
   end
  end
 end
 Â
 def menu_active?(key)
  # // Method to check if menu key is enabled.
  # This will return nil if menu item not added in the list.
  return $game_system.menu_list[key][3] rescue nil
 end
 Â
 def menu_active(key, enabled)
  # // Method to enable id.
  $game_system.menu_list[key][3] = enabled
 end
 Â
 def menu_add_all
  # // Method to add all available menu items.
  XAIL::MENU_DELUX::MENU_LIST.each_key {|key| menu_scene(key) }
 end
 Â
 def menu_del_all
  # // Method to remove all available menu items.
  XAIL::MENU_DELUX::MENU_LIST.each_key {|key| menu_scene(key, :del) }
 end
Â
end
#==============================================================================
# ** Window_MenuCommand
#==============================================================================
class Window_MenuCommand < Window_Command
 Â
 def window_width
  # // Method to return the width of the window.
  return Graphics.width / 4
 end
 Â
 def window_height
  # // Method to return the height of the window.
  return Graphics.height
 end
 Â
 def alignment
  # // Method to return the alignment.
  return XAIL::MENU_DELUX::MENU_ALIGNMENT
 end
 Â
 def menu_color(color, enabled = true)
   # // Method to set the color and alpha if not enabled.
  contents.font.color.set(color)
  contents.font.color.alpha = Colors::AlphaMenu unless enabled
 end
 Â
 def item_rect_for_text(index)
  # // Method to draw item rect for text.
  rect = item_rect(index)
  rect.x += 25
  draw_line_ex(rect.x - 4, rect.y + 9, Color.new(255,255,255), Color.new(0,0,0,128))
  draw_icon(XAIL::MENU_DELUX::MENU_LIST.values[index][2], -2, rect.y) unless XAIL::MENU_DELUX::MENU_LIST.values[index][2].nil?
  rect
 end
 Â
 def draw_item(index)
  # // Method to draw the command item.
  contents.font.name = XAIL::MENU_DELUX::FONT[0]
  contents.font.size = XAIL::MENU_DELUX::FONT[1]
  # // Save enable option.
  XAIL::MENU_DELUX::MENU_LIST[:save][3] = save_enabled if XAIL::MENU_DELUX::MENU_SAVE
  # // Default enable option.
  menu_color(XAIL::MENU_DELUX::FONT[2], menu_enabled?(index))
  # // Font settings
  contents.font.bold = XAIL::MENU_DELUX::FONT[3]
  contents.font.shadow = XAIL::MENU_DELUX::FONT[4]
  draw_text(item_rect_for_text(index), command_name(index), alignment)
  reset_font_settings
 end
 Â
 def menu_enabled?(index)
  # // Method to check if menu item is enabled.
  return $game_system.get_menu.values[index][3]
 end
 Â
 def make_command_list
  # // Method to add the commands.
  $game_system.get_menu.each {|key, value|
   name = value[0] == "" ? key.id2name.capitalize : value[0]
   XAIL::MENU_DELUX::MENU_LIST[:save][3] = save_enabled if XAIL::MENU_DELUX::MENU_SAVE
   add_command(name, key, value[3], value[5].nil? ? nil : value[5])
  }
 end
Â
end
#==============================================================================
# ** Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
 Â
 def initialize(x, y)
  # // Method to initialize the window.
  super(x, y, window_width, window_height)
  self.arrows_visible = false
  @pending_index = -1
  refresh
 end
 Â
 def window_width
  # // Method to determine window width.
  return Graphics.width / 2.4
 end
 Â
 def col_max
  # // Method to determine col max.
  return 2
 end
Â
 def spacing
  # // Method to determine spacing.
  return 6 if Graphics.width == 544 # For standard resolution.
  return 44             # For high resolution.
 end
 Â
 def item_width
  # // Method to determine item width.
  return 98
 end
Â
 def item_height
  # // Method to determine item height.
  return 128
 end
 Â
 def refresh
  # // Method to refresh the window.
  super
  # // Only display cursor arrow if more or equal to 5 party members.
  if $game_party.all_members.size >= 5
   self.arrows_visible = true
  end
 end
Â
 def draw_item(index)
  # // Method to draw item.
  actor = $game_party.members[index]
  rect = item_rect(index)
  # // Face
  draw_actor_face(actor, rect.x + 1, rect.y + 1, true)
  # // Name
  draw_font_text(actor.name, rect.x + 4, rect.y, rect.width, 0, XAIL::MENU_DELUX::FONT[0], 20, XAIL::MENU_DELUX::FONT[2])
  # // Level
  lvl = "#{Vocab::level_a}: #{actor.level}"
  draw_font_text(lvl, rect.x + 4, rect.y + 64, rect.width, 0, XAIL::MENU_DELUX::FONT[0], 18, XAIL::MENU_DELUX::FONT[2])
  # // Class
  # // Check if Yanfly Class System is installed.
  if $imported["YEA-ClassSystem"]
   actor_class = actor.subclass.nil? ? actor.class.name : "#{actor.class.name} [#{actor.subclass.name}]"
  else
   actor_class = actor.class.name
  end  Â
  draw_font_text(actor_class, rect.x - 4, rect.y + 76, rect.width, 2, XAIL::MENU_DELUX::FONT[0], 16, XAIL::MENU_DELUX::FONT[2])
  # // Stats
  draw_menu_stats(actor, :hp, rect.x, rect.y + 90, XAIL::MENU_DELUX::BAR_HP[0], XAIL::MENU_DELUX::BAR_HP[1], rect.width - 2)
  draw_menu_stats(actor, :mp, rect.x, rect.y + 100, XAIL::MENU_DELUX::BAR_MP[0], XAIL::MENU_DELUX::BAR_MP[1], rect.width - 2)
  Â
 end
 Â
 def draw_menu_stats(actor, stat, x, y, color1, color2, width)
  # // Method to draw actor hp & mp.
  case stat
  when :hp
   rate = actor.hp_rate ; vocab = Vocab::hp_a ; values = [actor.hp, actor.mhp]
  when :mp
   rate = actor.mp_rate ; vocab = Vocab::mp_a ; values = [actor.mp, actor.mmp]
  when :tp
   rate = actor.tp_rate ; vocab = Vocab::tp_a ; values = [actor.tp, actor.max_tp]
  end
  contents.font.name = XAIL::MENU_DELUX::FONT[0]
  contents.font.size = 14 # // Override font size.
  contents.font.color = XAIL::MENU_DELUX::FONT[2]
  contents.font.bold = XAIL::MENU_DELUX::FONT[3]
  contents.font.shadow = XAIL::MENU_DELUX::FONT[4]
  # // Draw guage.
  draw_gauge_ex(x, y - 8, width, 8, rate, color1, color2)
  # // Draw stats.
  draw_text(x + 2, y, width, line_height, values[0], 0)
  draw_text(x + 1, y, width, line_height, values[1], 2)
  # // Draw vocab.
  draw_text(x, y, width, line_height, vocab, 1) if XAIL::MENU_DELUX::BAR_VOCAB
  reset_font_settings
 end
Â
end
#==============================================================================
# ** Window_Menu_Details
#==============================================================================
class Window_Menu_Details < Window_Base
 Â
 def initialize(x, y)
  # // Method to initialize.
  super(x, y, window_width, window_height)
  @leader = $game_party.leader
  refresh
 end
 Â
 def window_width
  # // Method to determine window width.
  return Graphics.width / 3
 end
 Â
 def window_height
  # // Method to determine window height.
  return Graphics.height
 end
 Â
 def refresh
  # // Method to refresh the window.
  contents.clear
  # // Draw details.
  y = -10
  XAIL::MENU_DELUX.details.each_index {|i|
   draw_line_ex(0, y += 24, Color.new(255,255,255,32), Color.new(0,0,0,64))
   draw_font_text(XAIL::MENU_DELUX.details, -4, line_height * i + 4, contents_width, 2, XAIL::MENU_DELUX::FONT[0], 16, XAIL::MENU_DELUX::FONT[2])
  }
  # // Draw icons.
  draw_icons(XAIL::MENU_DELUX:ETAILS_ICONS, :vertical, 2, line_height * 0 + 2)
 end
Â
 def update
  # // Method to update details window.
  super
  if @leader != $game_party.leader
   @leader = $game_party.leader
   refresh
  end
 end
 Â
end
#==============================================================================
# ** Window_Menu_Playtime
#==============================================================================
class Window_Menu_Playtime < Window_Base
 Â
 def initialize(x, y)
  # // Method to initialize.
  super(x, y, 120, fitting_height(1))
  @playtime = $game_system.playtime_s
  refresh
 end
 Â
 def refresh
  # // Method to refresh the window.
  contents.clear
  # // Draw icon.
  draw_icon(XAIL::MENU_DELUX:LAYTIME_ICON, 4, 0)
  # // Draw playtime.
  draw_font_text(@playtime, 0, 6, contents_width, 2, XAIL::MENU_DELUX::FONT[0], 22, XAIL::MENU_DELUX::FONT[2])
 end
 Â
 def update
  # // Method to update the window.
  super
  @playtime = $game_system.playtime_s
  refresh
 end
 Â
end
#==============================================================================#
# ** Window_Menu_Help
#==============================================================================#
class Window_Menu_Help < Window_Help
 Â
 attr_accessor :index
 Â
 alias xail_icon_menu_winhelp_init initialize
 def initialize(*args, &block)
  # // Method to initialize help window.
  xail_icon_menu_winhelp_init(*args, &block)
  @index = 0
 end
Â
 def set_text(text, enabled)
  # // Method to set a new help text.
  if text != @text
   menu_color(XAIL::MENU_DELUX::FONT[2], enabled)
   @text = text
   refresh
  end
 end
 Â
 def refresh
  # // Refresh help contents.
  contents.clear
  draw_help_text
 end
 Â
 def draw_help_text
  # // Method to draw the help text.
  contents.font.name = XAIL::MENU_DELUX::FONT[0]
  contents.font.size = XAIL::MENU_DELUX::FONT[1]
  menu_color(XAIL::MENU_DELUX::FONT[2], menu_enabled?(@index))
  contents.font.bold = XAIL::MENU_DELUX::FONT[3]
  contents.font.shadow = XAIL::MENU_DELUX::FONT[4]
  # // Draw title and description for the menu.
  draw_line_ex(0, 14, Color.new(255,255,255), Color.new(0,0,0,128))
  draw_text_ex_no_reset(0, 0, @text)
  reset_font_settings
 end
 Â
 def menu_enabled?(index)
  # // Method to check if menu item is enabled.
  return $game_system.get_menu.values[index][3]
 end
 Â
 def menu_color(color, enabled = true)
   # // Method to set the color and alpha if not enabled.
  contents.font.color.set(color)
  contents.font.color.alpha = 150 unless enabled
 end
 Â
end
#==============================================================================#
# ** Scene_MenuBase
#==============================================================================#
class Scene_MenuBase < Scene_Base
 Â
 def start
  # // Method to start the scene.
  super
  @actor = $game_party.menu_actor
  if SceneManager.scene_is?(Scene_Menu)
   @backgrounds = []
   @animations = []
   create_menu_backgrounds
   create_menu_animations
  end
 end
 Â
 def create_menu_backgrounds
  # // Method to create custom background(s).
  XAIL::MENU_DELUX::BACKGROUND.each {|key, value| @backgrounds << [sprite.new, key] }
  @backgrounds.each {|i|
   i[0].bitmap = Cache.system(i[1])
   i[0].x = XAIL::MENU_DELUX::BACKGROUND[i[1]][0]
   i[0].y = XAIL::MENU_DELUX::BACKGROUND[i[1]][1]
   i[0].z = XAIL::MENU_DELUX::BACKGROUND[i[1]][2]
   i[0].opacity = XAIL::MENU_DELUX::BACKGROUND[i[1]][3]
  }
 end
 Â
 def create_menu_animations
  # // Method to create custom animation(s).
  # name  =>  [z, zoom_x, zoom_y, blend_type, opacity]
  XAIL::MENU_DELUX::ANIM_LIST.each {|key, value| @animations.push << [Plane.new, key] }
  @animations.each {|i|
   i[0].bitmap = Cache.system(i[1])
   i[0].z = XAIL::MENU_DELUX::ANIM_LIST[i[1]][0]
   i[0].zoom_x = XAIL::MENU_DELUX::ANIM_LIST[i[1]][1]
   i[0].zoom_y = XAIL::MENU_DELUX::ANIM_LIST[i[1]][2]
   i[0].blend_type = XAIL::MENU_DELUX::ANIM_LIST[i[1]][3]
   i[0].opacity = XAIL::MENU_DELUX::ANIM_LIST[i[1]][4]
  }
 end
Â
 alias xail_upd_menubase_delux_upd update
 def update(*args, &block)
  # // Method for updating the scene.
  xail_upd_menubase_delux_upd(*args, &block)
  if SceneManager.scene_is?(Scene_Menu)
   for i in 0...@animations.size
    @animations[0].ox += 1.2 - i
    @animations[0].oy -= 0.6 + i
   end unless scene_changing?
   delay?(1)
  end
 end
 Â
 def delay?(amount)
  # // Method to delay.
  amount.times do
   update_basic
  end
 end
 Â
 alias xail_menubase_delux_transition perform_transition
 def perform_transition(*args, &block)
  # // Method to create the transition.
  return if $game_system.get_menu.empty?
  if XAIL::MENU_DELUX::TRANSITION.nil?
   xail_menubase_delux_transition(*args, &block)
  else
   Graphics.transition(XAIL::MENU_DELUX::TRANSITION[0],XAIL::MENU_DELUX::TRANSITION[1],XAIL::MENU_DELUX::TRANSITION[2])
  end
 end
 Â
 def dispose_sprites
  # // Method to dispose sprites.
  @backgrounds.each {|i| i[0].dispose unless i[0].nil? ; i[0] = nil } rescue nil
  @animations.each {|i| i[0].dispose unless i[0].nil? ; i[0] = nil } rescue nil
 end
 Â
 def terminate
  # // Method to terminate.
  super
  dispose_sprites unless SceneManager.scene_is?(Scene_Menu)
 end
Â
end
#==============================================================================#
# ** Scene_Menu
#==============================================================================#
class Scene_Menu < Scene_MenuBase
 Â
 def start
  super
  # // Method to start the scene.
  # // Return if menu empty.
  return command_map if $game_system.get_menu.empty?
  # // Create windows.
  create_menu_command_window
  create_menu_status_window
  create_menu_details_window
  create_menu_playtime_window
  create_menu_help_window
  # // Set help text to first menu command.
  help_update(@command_window.index)
  # // Play music if enabled.
  play_menu_music if XAIL::MENU_DELUX::MUSIC
 end
 Â
 def create_menu_command_window
  # // Method to create the command window.
  @command_window = Window_MenuCommand.new
  @command_window.windowskin = Cache.system(XAIL::MENU_DELUX::MENU_SKIN) unless XAIL::MENU_DELUX::MENU_SKIN.nil?
  @command_window.back_opacity = 96
  $game_system.get_menu.each {|key, value|
   unless value[5].nil?
    @command_window.set_handler(key, methodcommand_custom))
   else
    if value[4]
     @command_window.set_handler(key, methodcommand_personal))
    else
     @command_window.set_handler(key, method("command_#{key}".to_sym))
    end
   end
  }  Â
  @command_window.set_handlercancel, methodreturn_scene))
 end
 Â
 def create_menu_status_window
  # // Method to create the status window.
  @status_window = Window_MenuStatus.new(0, 0)
  @status_window.height = Graphics.height - 72
  @status_window.x = @command_window.width
  @status_window.back_opacity = 96
 end
 Â
 def create_menu_details_window
  # // Method to create the details window.
  @details_window = Window_Menu_Details.new(0, 0)
  @details_window.x = Graphics.width - @details_window.width
  @details_window.back_opacity = 96
 end
 Â
 def create_menu_playtime_window
  # // Method to create the playtime window.
  @playtime_window = Window_Menu_Playtime.new(0, 0)
  @playtime_window.x = Graphics.width - @playtime_window.width
  @playtime_window.y = Graphics.height - @playtime_window.height - 26
  @playtime_window.opacity = 0
  @playtime_window.z = 201
 end
 Â
 def create_menu_help_window
  # // Method to create the help window.
  @help_window = Window_Menu_Help.new(2)
  @help_window.viewport = @viewport
  @help_window.windowskin = Cache.system(XAIL::MENU_DELUX::MENU_SKIN) unless XAIL::MENU_DELUX::MENU_SKIN.nil?
  @help_window.index = @command_window.index
  @help_window.y = Graphics.height - @help_window.height
  @help_window.back_opacity = 255
  @help_window.z = 200
 end
 Â
 def play_menu_music
  # // Method to play menu music.
  @last_bgm = RPG::BGM.last
  @last_bgs = RPG::BGS.last
  bgm = XAIL::MENU_DELUX::MUSIC_BGM
  bgs = XAIL::MENU_DELUX::MUSIC_BGS
  Sound.play(bgm[0], bgm[1], bgm[2], :bgm)
  Sound.play(bgs[0], bgs[1], bgs[2], :bgs)
 end
 Â
 alias xail_upd_menu_delux_upd update
 def update(*args, &block)
  # // Method for updating the scene.
  xail_upd_menu_delux_upd(*args, &block)
  old_index = @help_window.index
  help_update(@command_window.index) if old_index != @command_window.index
 end
 Â
 def help_update(index)
  # // If index changes update help window text.
  list = XAIL::MENU_DELUX::MENU_LIST
  icon = list.values[index][2].nil? ? "" : list.values[index][2]
  name = list.values[index][0] == "" ? list.keys[index].id2name.capitalize : list.values[index][0]
  if icon == "" ; title = name ; else ; title = '\i[' + icon.to_s + ']' + name ; end
  desc = '\c[0]' + list.values[index][1]
  text = "#{title}\n#{desc}"
  enabled = list.values[index][3]
  @help_window.index = index
  @help_window.set_text(text, enabled)
 end
 Â
 def on_personal_ok
  # // Method override on personal ok.
  scene = "Scene_#{@command_window.current_symbol.to_s.capitalize}".to_class
  SceneManager.call(scene)
 end
 Â
 def command_custom
  # // Method to call a custom command. (Don't remove)
  if @command_window.current_ext.is_a?(Integer)
   $game_temp.reserve_common_event(@command_window.current_ext)
   return command_map
  end
  SceneManager.call(@command_window.current_ext)
 end
 Â
 def command_map
  # // command_map (Don't remove)
  if $game_system.get_menu.empty?
   Sound.play_buzzer
   $game_message.texts << XAIL::MENU_DELUX::EMPTY
  end
  SceneManager.call(Scene_Map)
 end
 Â
 def pre_terminate
  # // Method to pre terminate scene menu.
  # // Play last bgm and bgs if menu music is enabled.
  if XAIL::MENU_DELUX::MUSIC
   @last_bgm.replay rescue nil
   @last_bgs.replay rescue nil
  end
 end
 Â
end # END OF FILE
Â
#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#
Â
Yanfly's Classes
https://dl.dropboxusercontent.com/u/17078211/Scripts/YEA/Class_System.rb
Downloads / Referenced Files
Log in, then follow the RPG Maker Developers Group to see these download links.
Log in to downloadCreator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
Topic Summary
Loading summary...