Nicke 151 Posted November 21, 2012 XS - Menu Delux Version 1.1b IntroductionThis script will change default menu into something more customized and an animated background(s).Features The ability to change font settings, menu commands, windows etc. Add static backgrounds or animated ones that will loop when the menu is opened. Add/remove more information to the detail window. Choose a song (bgm or bgs) to be played when the menu is opened. (The previous song that was played will be remembered and continue on when the menu closes.) Menu commands can call scenes and run common events. And more! Screenshots How to UseTo install any of my scripts, open up your script editor and copy/paste the script to an open slot below Materials but above Main. Remember to save.ScriptGet the script here and the Core Script.Optional: Download the example backgrounds and put them in Graphics/System folder.UpdatesReleased 1.1b. More bugs corrected and added support for Yanfly's Class System script (Can display subclass next to the normal class).CreditDo credit me, Nicke, if you are planing on using any of my scripts. Thanks.Can be use in commercial projects. 12 Share this post Link to post Share on other sites
Lecode 34 Posted November 21, 2012 Wow it's so cute oO Just what i looked for. Thank you Share this post Link to post Share on other sites
Nicke 151 Posted November 21, 2012 Released 1.0a. Minor bug fix. Share this post Link to post Share on other sites
Lionheart 2 Posted November 21, 2012 Make your incompatible XS-Status delux ... here is the error: Share this post Link to post Share on other sites
Lecode 34 Posted November 21, 2012 Now that I have time to test, I find big bugs. Skills & equipments window are just...empty. The same on a blank project... What wrong ? Share this post Link to post Share on other sites
Lionheart 2 Posted November 21, 2012 Now that I have time to test, I find big bugs. Skills & equipments window are just...empty. The same on a blank project... What wrong ? In fact, I tried it on a new project :wacko: ... Too bad it was beautiful! Share this post Link to post Share on other sites
Nicke 151 Posted November 21, 2012 What is the error with skills and equip? This script doesn't change those scenes. Share this post Link to post Share on other sites
Snake 4 Posted November 21, 2012 It looks amazing but yeah, it's not working. This error occurs if you want to go to the stats of Character. Thats a screen of the Equipment menue. And here are two errors that occur when you select either "optimize" or "clear" Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 21, 2012 Holy crap, the menu is perfect! May I ask if you can add an "Encounter" section over on the right side? Similar to the Tales games where it shows how many battle's you've been in. Share this post Link to post Share on other sites
Rainfall 0 Posted November 21, 2012 I'm having similar problems then snake, im getting the exact same window_base error. Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 21, 2012 I get an error when I try to Equip something, use Equip Best, or Clear all equips. The equips are also all blank. Share this post Link to post Share on other sites
Nicke 151 Posted November 21, 2012 Fixed. Grab it again. Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 21, 2012 Fixed. Grab it again. Are you sure it's fixed? I just grabbed it from your pastebin again. The problems still occur. ~List of Problems~ -Error when trying to equip something. - Error when trying to Optimize your equips. - Error when trying to Clear your equips. - The Equipment Windows are blank. - When you go to click "Stats/Status" on an Actor, you get an Error. - Skills/Spell window is also blank like the Equipments. Share this post Link to post Share on other sites
Lecode 34 Posted November 21, 2012 Thanks, it's Ok for me. But it looks like it is no longer possible to have personal scenes, like with skills or equipment windows, that wait the selection of an actor. Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 21, 2012 Thanks, it's Ok for me. But it looks like it is no longer possible to have personal scenes, like with skills or equipment windows, that wait the selection of an actor. How did you get it to work? I just got his Core, and the Menu script again since he said he updated it, and put it in a new project. The error is still there for me. o.0 are you using the Optional BG Images? Share this post Link to post Share on other sites
Nicke 151 Posted November 21, 2012 How does your script looks like? If I can see it I will know if you are using a old version. Share this post Link to post Share on other sites
Rainfall 0 Posted November 22, 2012 Yeah, everything works now, thanks! Just pasted in your script again. Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 22, 2012 (edited) How does your script looks like? If I can see it I will know if you are using a old version. Core Script #============================================================================== # XaiL System - Core # Author: Nicke # Created: 07/01/2012 # Edited: 10/11/2012 # Version: 2.1 #============================================================================== # 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. # # Core script for XaiL System. # Caution! This needs to be located before any other XS scripts. # # *** Only for RPG Maker VX Ace. *** #============================================================================== ($imported ||= {})["XAIL-XS-CORE"] = true module Colors #--------------------------------------------------------------------------# # * Colors #--------------------------------------------------------------------------# White = Color.new(255,255,255) LightRed = Color.new(255,150,150) LightGreen = Color.new(150,255,150) LightBlue = Color.new(150,150,255) DarkYellow = Color.new(225,225,20) Alpha = Color.new(0,0,0,128) AlphaMenu = 100 end module XAIL module CORE #--------------------------------------------------------------------------# # * Settings #--------------------------------------------------------------------------# # Graphics.resize_screen(width, height ) Graphics.resize_screen(544, 416) # FONT DEFAULTS: Font.default_name = ["VL Gothic"] Font.default_size = 20 Font.default_bold = false Font.default_italic = false Font.default_shadow = true Font.default_outline = true Font.default_color = Colors::White Font.default_out_color = Colors::Alpha # USE_TONE = true/false: # Window tone for all windows ingame. Default: true. USE_TONE = true # SAVE SAVE_MAX = 20 # Default 16. SAVE_FILE_VIS = 4 # Default 4. end end # *** Don't edit below unless you know what you are doing. *** #==============================================================================# # ** Vocab #==============================================================================# class << Vocab def xparam(id) # // Method to return xparam name. case id when 0 ; "Hit Chance" when 1 ; "Evasion" when 2 ; "Critical Chance" when 3 ; "Critical Evasion" when 4 ; "Magic Evasion" when 5 ; "Magic Reflection" when 6 ; "Counter Attack" when 7 ; "HP Regeneration" when 8 ; "MP Regeneration" when 9 ; "TP Regeneration" end end end #============================================================================== # ** Sound #============================================================================== class << Sound def play(name, volume, pitch, type = :se) # // Method to play a sound. If specified name isn't valid throw an error. case type when :se ; RPG::SE.new(name, volume, pitch).play rescue valid?(name) when :me ; RPG::ME.new(name, volume, pitch).play rescue valid?(name) when :bgm ; RPG::BGM.new(name, volume, pitch).play rescue valid?(name) when :bgs ; RPG::BGS.new(name, volume, pitch).play rescue valid?(name) end end def valid?(name) # // Method to check if specified sound name is valid. msgbox("Error. Unable to find sound file: " + name) exit end end #============================================================================== # ** DataManager #============================================================================== class << DataManager def savefile_max # // Method override, save file max. return XAIL::CORE::SAVE_MAX end end #============================================================================== # ** Scene_File #============================================================================== class Scene_File < Scene_MenuBase def visible_max # // Method override, visible_max for save files. return XAIL::CORE::SAVE_FILE_VIS end end #============================================================================== # ** Window_Base #============================================================================== class Window_Base < Window # // Importing Custom font fix. (Credit Lone Wolf). alias :process_normal_character_vxa :process_normal_character def process_normal_character(c, pos) return unless c >= ' ' process_normal_character_vxa(c, pos) end def draw_text_ex_no_reset(x, y, text) # // Method to draw ex text without resetting the font. text = convert_escape_characters(text) pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)} process_character(text.slice!(0, 1), text, pos) until text.empty? end alias xail_core_winbase_upt_tone update_tone def update_tone(*args, &block) # // Method to change tone of the window. return unless XAIL::CORE::USE_TONE xail_core_winbase_upt_tone(*args, &block) end def draw_gauge_ex(x, y, width, height, rate, color1, color2) # // Method to draw a gauge. fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width + 1, height + 1, Color.new(255,255,255,64)) contents.fill_rect(x, gauge_y, width, height, Color.new(0,0,0,100)) contents.gradient_fill_rect(x, gauge_y, fill_w, height, color1, color2) end def draw_actor_param_gauge(actor, x, y, width, param_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2) # // Method to draw actor parameters with a gauge. case param_id when 2 ; param_rate = actor.param(2) / actor.param_max(2).to_f when 3 ; param_rate = actor.param(3) / actor.param_max(3).to_f when 4 ; param_rate = actor.param(4) / actor.param_max(4).to_f when 5 ; param_rate = actor.param(5) / actor.param_max(5).to_f when 6 ; param_rate = actor.param(6) / actor.param_max(6).to_f when 7 ; param_rate = actor.param(7) / actor.param_max(7).to_f end contents.font.name = font contents.font.size = size contents.font.bold = true contents.font.shadow = false draw_gauge_ex(x, y - 14, width, 20, param_rate, bar_color1, bar_color2) contents.font.color = txt_color1 draw_text(x + 10, y, 120, line_height, Vocab::param(param_id)) contents.font.color = txt_color2 draw_text(x + width - 38, y, 36, line_height, actor.param(param_id), 2) reset_font_settings end def draw_actor_xparam_gauge(actor, x, y, width, xparam_id, font, size, bar_color1, bar_color2, txt_color1, txt_color2) # // Method to draw actor xparameters with a gauge. case xparam_id when 0 xparam_rate = actor.xparam(0) / 100.to_f xparam_name = Vocab.xparam(0) when 1 xparam_rate = actor.xparam(1) / 100.to_f xparam_name = Vocab.xparam(1) when 2 xparam_rate = actor.xparam(2) / 100.to_f xparam_name = Vocab.xparam(2) when 3 xparam_rate = actor.xparam(3) / 100.to_f xparam_name = Vocab.xparam(3) when 4 xparam_rate = actor.xparam(4) / 100.to_f xparam_name = Vocab.xparam(4) when 5 xparam_rate = actor.xparam(5) / 100.to_f xparam_name = Vocab.xparam(5) when 6 xparam_rate = actor.xparam(6) / 100.to_f xparam_name = Vocab.xparam(6) when 7 xparam_rate = actor.xparam(7) / 100.to_f xparam_name = Vocab.xparam(7) when 8 xparam_rate = actor.xparam(8) / 100.to_f xparam_name = Vocab.xparam(8) when 9 xparam_rate = actor.xparam(9) / 100.to_f xparam_name = Vocab.xparam(9) end contents.font.name = font contents.font.size = size contents.font.bold = true contents.font.shadow = false draw_gauge_ex(x, y - 14, width, 20, xparam_rate, bar_color1, bar_color2) contents.font.color = txt_color1 draw_text(x + 10, y, 120, line_height, xparam_name) contents.font.color = txt_color2 draw_text(x + width - 38, y, 36, line_height, "#{actor.xparam(xparam_id)}%", 2) reset_font_settings end def draw_line_ex(x, y, color, shadow) # // Method to draw a line with a shadow. line_y = y + line_height / 2 - 1 contents.fill_rect(x, line_y, contents_width, 2, color) line_y += 1 contents.fill_rect(x, line_y, contents_width, 2, shadow) end def draw_icons(icons, alignment, x = 0, y = 0, offset_icon = []) # // Method to draw icons in a horizonal or vertical alignment. for i in icons # // If included in offset do extra line_height. for o in offset_icon if i == o y += line_height * 1 if alignment == :vertical x += line_height * 1 if alignment == :horizontal end end draw_icon(i.nil? ? 0 : i, x.nil? ? 0 : x, y.nil? ? 0 : y) y += line_height if alignment == :vertical x += line_height if alignment == :horizontal end end def draw_big_icon(icon, x, y, width, height, opacity = 255) # // Method to draw a big icon. bitmap = Cache.system("Iconset") rect = Rect.new(icon % 16 * 24, icon / 16 * 24, 24, 24) rect2 = Rect.new(x, y, width, height) contents.stretch_blt(rect2, bitmap, rect, opacity) end def draw_font_text(value, x, y, width, alignment, font, size, color, bold = true, shadow = true) # // Method to draw font text. contents.font.name = font contents.font.size = size contents.font.color = color contents.font.bold = bold contents.font.shadow = shadow draw_text(x, y, width, line_height, value, alignment) reset_font_settings end end #==============================================================================# # ** Window_Icon #------------------------------------------------------------------------------ # New Window :: Window_Icon - A window for drawing icon(s). #==============================================================================# class Window_Icon < Window_Base attr_accessor :enabled attr_accessor :alignment def initialize(x, y, window_width, hsize) # // Method to initialize the icon window. super(0, 0, window_width, window_height(hsize)) @icons = [] @index = 0 @enabled = true @alignment = 0 refresh end def window_height(hsize) # // Method to return the height. fitting_height(hsize) end def refresh # // Method to refresh the icon window. contents.clear end def draw_cmd_icons(icons, index) # // Draw all of the icons. return if !@enabled count = 0 for i in icons align = 0 x = 110 next if i[index].nil? case @alignment when 1, 2 ; align = -110 end draw_icon(i[index], x + align, 24 * count) count += 1 break if (24 * count > height - 24) end end end #============================================================================== # ** Game_Party #============================================================================== class Game_Party < Game_Unit def check_item?(item, type) # // Method to return a item based on the type. case type when :item ; item = $data_items[item] when :weapon ; item = $data_weapons[item] when :armor ; item = $data_armors[item] end end end #============================================================================== # ** Game_Event #============================================================================== class Game_Event < Game_Character def comment?(comment) # // Method to check if comment is included in event. unless empty? or @list.nil? for evt in @list if evt.code == 108 or evt.code == 408 if evt.parameters[0].include?(comment) return true end end end end return false end def comment_int?(comment) # // Method to check variable integer in event. unless empty? or @list.nil? for evt in @list if evt.code == 108 or evt.code == 408 if evt.parameters[0] =~ /<#{comment}:[ ]?(\d*)>?/ return ($1.to_i > 0 ? $1.to_i : 0) end end end end end end # END OF FILE #=*==========================================================================*=# # ** END OF FILE #=*==========================================================================*=# Delux Menu #============================================================================== # XaiL System - Menu Delux # Author: Nicke # Created: 20/11/2012 # Edited: 21/11/2012 # Version: 1.0b #============================================================================== # 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. # # *** Only for RPG Maker VX Ace. *** #============================================================================== ($imported ||= {})["XAIL-XS-MENU_DELUX"] = true module XAIL module MENU_DELUX #--------------------------------------------------------------------------# # * Settings #--------------------------------------------------------------------------# # MENU_FONT: # MENU_FONT = [name, size, color, bold, shadow] MENU_FONT = [["Calibri", "Verdana"], 18, Color.new(255,255,255), true, true] # MENU_WINDOW: # MENU_WINDOW [x, y, z, opacity] MENU_WINDOW = [-12, -12, 200, 0] # STATUS_WINDOW: # STATUS_WINDOW [x, y, z, opacity] STATUS_WINDOW = [142, -4, 200, 0] # DETAILS_WINDOW: # DETAILS_WINDOW [x, y, z, opacity] DETAILS_WINDOW = [380, -10, 200, 0] # HELP_WINDOW: # Setup help window. # HELP = [x, y, z, opacity, enabled] HELP_WINDOW = [-6, 352, 200, 0, true] # MENU_ALIGNMENT: # MENU_ALIGNMENT = 0 (left), 1 (center), 2 (right) MENU_ALIGNMENT = 0 # Default: 0. # MENU_SKIN: # The windowskin to use for the windows. # nil to disable. # MENU_SKIN = string MENU_SKIN = nil # MENU_LIST: # Name, Icon_index and custom_scene are optional. # If name is empty it will use the corresponding symbol as name instead. # symbol => [name, description, icon_index, enabled, personal, custom_scene] MENU_LIST = { :item => ["", "Browse through your acquired items.", 4148, true, false], :equip => ["Equipment", "Change your equipment.", 4145, true, true], :skill => ["Spells", "Manage your available skills.", 4147, true, true], :status => ["Stats", "See the current status of the hero.", 4136, true, true], :formation => ["", "Change the formation of the party.", 4134, true, false], :save => ["", "Record your progress.", 4139, true, false], :load => ["", "Load your saved progress.", 4165, true, false, Scene_Load], :game_end => ["Quit", "Exit the program.", 4162, true, false], :title => ["", "Return to title.", 4133, 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 # 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 = { "Menu_Back" => [0, 0, 4, 255] } # Don't remove this line! # BAR_COLOR = rgba(255,255,255,255) # Set the color of the hp/mp gauge. BAR_HP = [Color.new(225,50,50,64), Color.new(235,75,75,175)] BAR_MP = [Color.new(50,50,225,64), Color.new(75,75,235,175)] # 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: #{$game_map.name}", "Leader: #{$game_party.leader.name}", "Variable I: #{$game_variables[1]}", "Variable II: #{$game_variables[2]}", "Playtime: #{$game_system.playtime_s}"] end # ICONS[id] = icon_id # Set the details icon_id. (optional) # Should be in the same order as details. # Use nil to disable a icon. ICONS = [] ICONS[0] = 2114 # GOLD ICONS[1] = 172 # STEPS ICONS[2] = 270 # ITEMS ICONS[3] = 232 # MAP ICONS[4] = 4425 # LEADER ICONS[5] = nil # VAR 1 ICONS[6] = nil # VAR 2 ICONS[7] = 280 # PLAYTIME # 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_Map #==============================================================================# class Game_Map attr_reader :name alias xail_menu_delux_setup setup def setup(map_id) # // Method to setup the map id. xail_menu_delux_setup(map_id) @map_infos = load_data("Data/MapInfos.rvdata2") if @map_infos.nil? @name = @map_infos[@map_id].name end end #============================================================================== # ** Window_MenuCommand #============================================================================== class Window_MenuCommand < Window_Command def window_width # // Method to return the width of MENU_WINDOW. return 170 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) contents.fill_rect(rect.x, rect.y, contents_width, contents_height, Color.new(0,0,0,60)) rect.x += 24 rect.width -= 8 draw_icon(XAIL::MENU_DELUX::MENU_LIST.values[index][2], -2, rect.y) rect end def draw_item(index) # // Method to draw the command item. contents.font.name = XAIL::MENU_DELUX::MENU_FONT[0] contents.font.size = XAIL::MENU_DELUX::MENU_FONT[1] # // Save option. XAIL::MENU_DELUX::MENU_LIST[:save][3] = save_enabled if XAIL::MENU_DELUX::MENU_SAVE menu_color(XAIL::MENU_DELUX::MENU_FONT[2], menu_enabled?(index)) # // Font settings contents.font.bold = XAIL::MENU_DELUX::MENU_FONT[3] contents.font.shadow = XAIL::MENU_DELUX::MENU_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. XAIL::MENU_DELUX::MENU_LIST.values[index][3] end def make_command_list # // Method to add the commands. XAIL::MENU_DELUX::MENU_LIST.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 window_width # // Method to determine window width. return 250 end def window_height # // Method to determine window height. return Graphics.height end def standard_padding # // Method to determine standard padding. return 4 end def col_max # // Method to determine col max. return 2 end def spacing # // Method to determine spacing. return 30 end def item_width # // Method to determine item width. return 98 end def item_height # // Method to determine item height. return 118 end def refresh # // Method to refresh the window. contents.clear draw_background draw_all_items end def draw_background # // Method to draw background. contents.fill_rect(0, 0, contents_width, contents_height, Color.new(0,0,0,60)) end def draw_item(index) # // Method to draw item. actor = $game_party.members[index] rect = item_rect(index) draw_item_background(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::MENU_FONT[0], 20, XAIL::MENU_DELUX::MENU_FONT[2]) # // Level lvl = "#{Vocab::level_a} #{actor.level}" draw_font_text(lvl, rect.x + 4, rect.y + 76, rect.width, 0, XAIL::MENU_DELUX::MENU_FONT[0], 14, XAIL::MENU_DELUX::MENU_FONT[2]) # // Class draw_font_text(actor.class.name, rect.x - 4, rect.y + 76, rect.width, 2, XAIL::MENU_DELUX::MENU_FONT[0], 14, XAIL::MENU_DELUX::MENU_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] end contents.font.name = XAIL::MENU_DELUX::MENU_FONT[0] contents.font.size = 14 # // Override font size. contents.font.color = XAIL::MENU_DELUX::MENU_FONT[2] contents.font.bold = XAIL::MENU_DELUX::MENU_FONT[3] contents.font.shadow = XAIL::MENU_DELUX::MENU_FONT[4] # // Draw guage. draw_gauge_ex(x, y - 8, width, 8, rate, color1, color2) # // Draw hp and mp. draw_text(x + 1, 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) 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, fitting_height(XAIL::MENU_DELUX.details.size) + 8) refresh end def standard_padding # // Method to determine standard padding. return 8 end def window_width # // Method to determine window width. return 170 end def refresh # // Method to refresh the window. contents.clear # // Draw background. draw_background # // 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[i], -4, line_height * i + 4, contents_width, 2, XAIL::MENU_DELUX::MENU_FONT[0], 16, XAIL::MENU_DELUX::MENU_FONT[2]) } # // Draw icons. draw_icons(XAIL::MENU_DELUX::ICONS, :vertical, 2, line_height * 0 + 2) # // Draw playtime. #draw_font_text(@playtime, -4, line_height * XAIL::MENU_DELUX.details.size + 2, contents_width, 2, XAIL::MENU_DELUX::MENU_FONT[0], 16, XAIL::MENU_DELUX::MENU_FONT[2]) end def draw_background # // Method to draw background. contents.fill_rect(0, 0, contents_width, contents_height, Color.new(0,0,0,60)) 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 alias xail_icon_menu_winhelp_set_text set_text def set_text(text, enabled) # // Method to set a new the tp text to the window. xail_icon_menu_winhelp_set_text(text) if text != @text menu_color(XAIL::MENU_DELUX::MENU_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::MENU_FONT[0] contents.font.size = XAIL::MENU_DELUX::MENU_FONT[1] menu_color(XAIL::MENU_DELUX::MENU_FONT[2], menu_enabled?(@index)) contents.font.bold = XAIL::MENU_DELUX::MENU_FONT[3] contents.font.shadow = XAIL::MENU_DELUX::MENU_FONT[4] # // Draw title and description for the menu. draw_line_ex(0, 14, Color.new(255,255,255,128), Color.new(0,0,0,200)) draw_text_ex_no_reset(0, 0, @text) reset_font_settings end def menu_enabled?(index) # // Method to check if menu item is enabled. XAIL::MENU_DELUX::MENU_LIST.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 if SceneManager.scene_is?(Scene_Menu) @backgrounds = [] @animations = [] @actor = $game_party.menu_actor 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 def delay?(amount) # // Method to delay. amount.times do update_basic end 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[i][0].ox += 1.2 - i @animations[i][0].oy -= 0.6 + i end unless scene_changing? delay?(1) end end alias xail_menubase_delux_transition perform_transition def perform_transition(*args, &block) # // Method to create the transition. 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. return if SceneManager.scene_is?(Scene_Map) @backgrounds.each {|i| i[0].dispose unless i[0].nil? ; i[0] = nil } @animations.each {|i| i[0].dispose unless i[0].nil? ; i[0] = 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. create_menu_command_window create_menu_status_window create_menu_details_window if XAIL::MENU_DELUX::HELP_WINDOW[4] create_menu_help_window help_update(@command_window.index) end 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.x = XAIL::MENU_DELUX::MENU_WINDOW[0] @command_window.y = XAIL::MENU_DELUX::MENU_WINDOW[1] @command_window.z = XAIL::MENU_DELUX::MENU_WINDOW[2] @command_window.opacity = XAIL::MENU_DELUX::MENU_WINDOW[3] XAIL::MENU_DELUX::MENU_LIST.each {|key, value| unless value[5].nil? @command_window.set_handler(key, method(:command_custom)) else if value[4] @command_window.set_handler(key, method(:command_personal)) else @command_window.set_handler(key, method("command_#{key}".to_sym)) end end } @command_window.set_handler(:cancel, method(:return_scene)) end def create_menu_status_window # // Method to create the status window. x = XAIL::MENU_DELUX::STATUS_WINDOW[0] y = XAIL::MENU_DELUX::STATUS_WINDOW[1] @status_window = Window_MenuStatus.new(x, y) @status_window.z = XAIL::MENU_DELUX::STATUS_WINDOW[2] @status_window.opacity = XAIL::MENU_DELUX::STATUS_WINDOW[3] end def create_menu_details_window # // Method to create the details window. x = XAIL::MENU_DELUX::DETAILS_WINDOW[0] y = XAIL::MENU_DELUX::DETAILS_WINDOW[1] @details_window = Window_Menu_Details.new(x, y) @details_window.z = XAIL::MENU_DELUX::DETAILS_WINDOW[2] @details_window.opacity = XAIL::MENU_DELUX::DETAILS_WINDOW[3] 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.x = XAIL::MENU_DELUX::HELP_WINDOW[0] @help_window.y = XAIL::MENU_DELUX::HELP_WINDOW[1] @help_window.z = XAIL::MENU_DELUX::HELP_WINDOW[2] @help_window.opacity = XAIL::MENU_DELUX::HELP_WINDOW[3] end alias xail_upd_menu_delux_upd update def update(*args, &block) # // Method for updating the scene. xail_upd_menu_delux_upd(*args, &block) if XAIL::MENU_DELUX::HELP_WINDOW[4] old_index = @help_window.index if old_index != @command_window.index help_update(@command_window.index) end end end def help_update(index) # // If index changes update help window text. list = XAIL::MENU_DELUX::MENU_LIST icon = list.values[index][2] name = list.values[index][0] == "" ? list.keys[index].id2name.capitalize : list.values[index][0] title = '\i[' + icon.to_s + ']' + name 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 command_custom # // Method to call a custom command. SceneManager.call(@command_window.current_ext) end end #==============================================================================# # ** Scene_Menu #==============================================================================# class Scene_File < Scene_MenuBase alias xail_upd_menu_delux_create_savefile_viewport create_savefile_viewport def create_savefile_viewport # // Method to create save viewport. xail_upd_menu_delux_create_savefile_viewport @savefile_viewport.z = 9999 end end # END OF FILE #=*==========================================================================*=# # ** END OF FILE #=*==========================================================================*=# EDIT~ Never mind it is working fine now. However, how do I align everything to the center for "640 x 480" resolution? Edited November 22, 2012 by KoutaStepp Share this post Link to post Share on other sites
Nicke 151 Posted November 22, 2012 Script only supported for 544x416. Of course, you can change it yourself since you can change x and y coordinates on the windows. Best of luck Share this post Link to post Share on other sites
Darkanine 116 Posted November 22, 2012 (edited) My game only has several characters but only uses 5 in party so is their any way to gray out the 6th character? Edited November 22, 2012 by Sgt Derpy hooves Share this post Link to post Share on other sites
Virus 24 Posted November 22, 2012 Would there ever be a full add on to this? Such as turning this into a full main menu with each scene having the same background as the main? instead of it being scene called? Share this post Link to post Share on other sites
Levi Stepp 12 Posted November 22, 2012 I have a question now. How do I add a new commands to the menu such as http://www.rpgmakerv...-select-system/ I want to add that to the menu. Unlike the Menu Ace Engine by Yanfly. I cannot use this COMMANDS =[ :item, # Opens up the item menu. Default menu item. :skill, # Opens up the skill menu. Default menu item. :equip, # Opens up the equip menu. Default menu item. :class, # Requires YEA - Class System. :status, # Opens up the status menu. Default menu item. --> :battle_setup, # Opens up the Battle Skills. :formation, # Lets player manage party. Default menu item. # :event_1, # Launches Common Event 1. Common Event Command. # :event_2, # Launches Common Event 2. Common Event Command. # :debug, # Opens up debug menu. Custom Command. # :shop, # Opens up a shop to pawn items. Custom Command. :save, # Opens up the save menu. Default menu item. :game_end, # Opens up the shutdown menu. Default menu item. ] # Do not remove this. and when :battle_setup add_command("Battle Setup", :battle_skill, true) Because your Menu does not use those script commands. Share this post Link to post Share on other sites
Lionheart 2 Posted November 22, 2012 (edited) I have a question now. How do I add a new commands to the menu such as http://www.rpgmakerv...-select-system/ I want to add that to the menu. Unlike the Menu Ace Engine by Yanfly. I cannot use this COMMANDS =[ :item, # Opens up the item menu. Default menu item. :skill, # Opens up the skill menu. Default menu item. :equip, # Opens up the equip menu. Default menu item. :class, # Requires YEA - Class System. :status, # Opens up the status menu. Default menu item. --> :battle_setup, # Opens up the Battle Skills. :formation, # Lets player manage party. Default menu item. # :event_1, # Launches Common Event 1. Common Event Command. # :event_2, # Launches Common Event 2. Common Event Command. # :debug, # Opens up debug menu. Custom Command. # :shop, # Opens up a shop to pawn items. Custom Command. :save, # Opens up the save menu. Default menu item. :game_end, # Opens up the shutdown menu. Default menu item. ] # Do not remove this. and when :battle_setup add_command("Battle Setup", :battle_skill, true) Because your Menu does not use those script commands. Great idea ... it's interesting to me :D/> ... However, I have a suggestion :)/> ... Niclas the effect backgroud with fog you do not also appear in your XS - Status Delux? Least are the same! ;)/> Edited November 22, 2012 by Lionheart Share this post Link to post Share on other sites
Lecode 34 Posted November 22, 2012 Niclas, You did not respond to my question. Since the update is no longer possible to add personal scene, like equip or skills scene (Awaiting the selection of characters before opening the window.). Share this post Link to post Share on other sites
Nicke 151 Posted November 22, 2012 I am sorry, I don't really know what you mean. Can you show a printscreen? I will do a FAQ later showing how you can add commands etc Share this post Link to post Share on other sites