TheDrifter 0 Posted December 30, 2012 On that note, I'm now having another issue. The elements page doesn't go away when I press 'Q' or 'W' when scrolling through characters. Each new element screen ends up on top of the previous one. Any tips? I'm also having the same problem. Pressing Q or W on the keyboard (L and R buttons) while viewing the elements page has it overlap previous ones. Share this post Link to post Share on other sites
Gleason 15 Posted December 31, 2012 I tinkered with the code for a little while, and I got it to look like this. I set icons to 0 so they wouldn't show up. If anyone's interested, just tell me how to put the script up in a spoiler so i can add it for everyone ^^; I won't require credit myself--just that you credit the people who actually wrote it to begin with. Share this post Link to post Share on other sites
TheDrifter 0 Posted January 2, 2013 The way you set up a spoiler is with the following tags: [ spoiler ] text [/ spoiler ] just make sure there are no spaces whatsoever within the two [ ] It'll look like that: text Share this post Link to post Share on other sites
Gleason 15 Posted January 3, 2013 Ah, thanks! And well then, in that case, here you go: Yanfly's status + Tsukihime's Elements with only defense / resistances shown! #==============================================================================## â–¼ Yanfly Engine Ace - Ace Status Menu with Elements v1.04# -- Last Updated: 2012.08.22# -- Authors: Yanfly, Tsukihime, DisturbedInside # -- Slight Modding: Gleason# -- Level: Normal# -- Requires: n/a##==============================================================================$imported = {} if $imported.nil?$imported["YEA-StatusMenu_Elements"] = true#==============================================================================# â–¼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.08.21 - Fixed problem with window opacity and created new formula for# window size (it should resize properly now)# 2012.08.21 - Added Tsukihime's Element Info# 2012.08.06 - Fix Sp Paramater TCR# 2011.12.26 - Compatibility Update: Rename Actor# 2011.12.23 - Started Script and Finished.##==============================================================================# â–¼ Introduction# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script changes the status screen completely to something the player can# interact with more and be able to view actor data with more clarity. The# player is able to view the general information for an actor (parameters and# experience), a parameters bar graph, the various hidden extra parameters# (named properties in the script), and a customizable biography for the actor.# Also with this script, biographies can be changed at any time using a script# call to add more of a personal touch to characters.##==============================================================================# â–¼ 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.## -----------------------------------------------------------------------------# Script Calls - These commands are used with script calls.# -----------------------------------------------------------------------------# $game_actors[x].description = string# Changes the biography description for actor x to that of the string. Use \n# to designate linebreaks in the string. If you wish to use text codes, write# them in the strings as \\n[2] or \\c[3] to make them work properly.##==============================================================================# â–¼ Compatibility# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that# it will run with RPG Maker VX without adjusting.##==============================================================================module YEA module STATUS #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Command Window Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # This section adjusts the commands that appear in the command window used # for the status screen. Rearrange the commands, add new ones, remove them # as you see fit. # # ------------------------------------------------------------------------- # :command Description # ------------------------------------------------------------------------- # :general Adds general page. # :parameters Adds parameters page. # :properties Adds properties page. # :biography Adds biography page. # # :rename Requires YEA - Rename Actor # :retitle Requires YEA - Retitle Actor # #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMANDS =[ # The order at which the menu items are shown. # [ :command, "Display"], [ :general, "General"], [ :parameters, "Parameters"], [ :properties, "Properties"], [ :biography, "Biography"], [ :elements, "Element Resists"], # this is the elements command ] # Do not remove this. #-------------------------------------------------------------------------- # - Status Custom Commands - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For those who use scripts to that may produce unique effects for the # status menu, use this hash to manage the custom commands for the Status # Command Window. You can disable certain commands or prevent them from # appearing by using switches. If you don't wish to bind them to a switch, # set the proper switch to 0 for it to have no impact. #-------------------------------------------------------------------------- CUSTOM_STATUS_COMMANDS ={ # :command => [EnableSwitch, ShowSwitch, Handler Method, Window Draw], :custom1 => [ 0, 0, :command_name1, :draw_custom1], :custom2 => [ 0, 0, :command_name2, :draw_custom2], :custom3 => [ 0, 0, :command_name3, :draw_custom3], } # Do not remove this. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - General Window Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # These settings adjust the way the general window visually appears. # Not many changes need to be done here other than vocab changes. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- PARAMETERS_VOCAB = "Parameters" # Title used for Parameters. EXPERIENCE_VOCAB = "Experience" # Title used for Experience. NEXT_TOTAL_VOCAB = "Total EXP for Next" # Label used for total experience. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Parameters Window Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # These settings adjust the way the parameters window visually appears. # Each of the stats have a non-window colour. Adjust them as you see fit. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- PARAM_COLOUR ={ # ParamID => [:stat, Colour1, Colour2 ], 2 => [ :atk, Color.new(225, 100, 100), Color.new(240, 150, 150)], 3 => [ :def, Color.new(250, 150, 30), Color.new(250, 180, 100)], 4 => [ :mat, Color.new( 70, 140, 200), Color.new(135, 180, 230)], 5 => [ :mdf, Color.new(135, 130, 190), Color.new(170, 160, 220)], 6 => [ :agi, Color.new( 60, 180, 80), Color.new(120, 200, 120)], 7 => [ :luk, Color.new(255, 240, 100), Color.new(255, 250, 200)], } # Do not remove this. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Properties Window Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # These settings adjust the way the properties window visually appears. # The properties have abbreviations, but leaving them as such makes things # confusing (as it's sometimes hard to figure out what the abbreviations # mean). Change the way the appear, whether or not they appear, and what # order they will appear in. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- PROPERTIES_FONT_SIZE = 16 # Font size used for properties. # These are the properties that appear in column 1. PROPERTIES_COLUMN1 =[ [:hit, "Hit Rate"], [:eva, "Evasion"], [:cri, "Critical Hit"], [:cev, "Critical Evade"], [:mev, "Magic Evasion"], [:mrf, "Magic Reflect"], [:cnt, "Counter Rate"], [:tgr, "Target Rate"], ] # Do not remove this. # These are the properties that appear in column 2. PROPERTIES_COLUMN2 =[ [:hrg, "HP Regen"], [:mrg, "MP Regen"], [:trg, "TP Regen"], [:rec, "Recovery"], [:grd, "Guard Rate"], [:pha, "Item Boost"], [:exr, "EXP Rate"], [:tcr, "TP Charge"], ] # Do not remove this. # These are the properties that appear in column 3. PROPERTIES_COLUMN3 =[ [:hcr, "HP Cost Rate"], # Requires YEA - Skill Cost Manager [:mcr, "MP Cost Rate"], [:tcr_y, "TP Cost Rate"], # Requires YEA - Skill Cost Manager [:cdr, "Cooldown Rate"], # Requires YEA - Skill Restrictions [:wur, "Warmup Rate"], # Requires YEA - Skill Restrictions [:pdr, "Physical Damage"], [:mdr, "Magical Damage"], [:fdr, "Floor Damage"], ] # Do not remove this. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Biography Window Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # These settings adjust the way the biography appears including the title # used at the top, the font size, and whatnot. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- BIOGRAPHY_NICKNAME_TEXT = "%s %s" # How the nickname will appear. BIOGRAPHY_NICKNAME_SIZE = 32 # Size of the font used. end # STATUSend # YEAmodule Status_Element # List of elements that should not be included in the list Ignore = ["Absorb", "Physical", "Slash", "Blunt", "Pierce", "Gun", "Demonbreak"] # Element entries. Format: "element name" => [index, icon] # The name and icon must match the ones in the database Elements = { "Fire" => [3, 567], "Ice" => [4, 1000], "Thunder" => [5, 569], "Water" => [6, 570], "Earth" => [7, 999], "Wind" => [8, 997], "Holy" => [9, 574], "Dark" => [10, 575], "Time" => [15, 1041] } # Icons to draw for attack/resistance Attack_Icon = 0 Resist_Icon = 0end#==============================================================================# â–¼ Editting anything past this point may potentially result in causing# computer damage, incontinence, explosion of user's head, coma, death, and/or# halitosis so edit at your own risk.#==============================================================================#==============================================================================# â– Numeric#==============================================================================class Numeric #-------------------------------------------------------------------------- # new method: group_digits #-------------------------------------------------------------------------- unless $imported["YEA-CoreEngine"] def group; return self.to_s; end end # $imported["YEA-CoreEngine"]end # Numeric#==============================================================================# â– Game_Temp#==============================================================================class Game_Temp #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :scene_status_index attr_accessor :scene_status_oyend # Game_Temp#==============================================================================# â– Game_Actor#==============================================================================class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # new method: description= #-------------------------------------------------------------------------- def description=(text) @description = text end #-------------------------------------------------------------------------- # overwrite method: description #-------------------------------------------------------------------------- def description return @description unless @description.nil? return actor.description end def equips_elements(element_id) end def element_attack end def element_resist endend # Game_Actorclass Game_Battler < Game_BattlerBase def element_resist end def element_attack endend#==============================================================================# â– Window_StatusCommand#==============================================================================class Window_StatusCommand < Window_Command #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :item_window #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(dx, dy) super(dx, dy) @actor = nilunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # window_width #-------------------------------------------------------------------------- def window_width; return 160; end #-------------------------------------------------------------------------- # actor= #-------------------------------------------------------------------------- def actor=(actor) return if @actor == actor @actor = actor refresh end #-------------------------------------------------------------------------- # visible_line_number #-------------------------------------------------------------------------- def visible_line_number; return 4; end #-------------------------------------------------------------------------- # ok_enabled? #-------------------------------------------------------------------------- def ok_enabled? return handle?(current_symbol) end #-------------------------------------------------------------------------- # make_command_list #-------------------------------------------------------------------------- def make_command_list return unless @actor for command in YEA::STATUS::COMMANDS case command[0] #--- Default --- when :general, :parameters, :properties, :biography, :elements add_command(command[1], command[0])#--- Yanfly Engine Ace --- when :rename next unless $imported["YEA-RenameActor"] add_command(command[1], command[0], @actor.rename_allow?) when :retitle next unless $imported["YEA-RenameActor"] add_command(command[1], command[0], @actor.retitle_allow?) #--- Custom Commands --- else process_custom_command(command) end end if !$game_temp.scene_status_index.nil? select($game_temp.scene_status_index) self.oy = $game_temp.scene_status_oy end $game_temp.scene_status_index = nil $game_temp.scene_status_oy = nil end #-------------------------------------------------------------------------- # process_ok #-------------------------------------------------------------------------- def process_ok $game_temp.scene_status_index = index $game_temp.scene_status_oy = self.oy super end #-------------------------------------------------------------------------- # process_custom_command #-------------------------------------------------------------------------- def process_custom_command(command) return unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(command[0]) show = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][1] continue = show <= 0 ? true : $game_switches[show] return unless continue text = command[1] switch = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][0] enabled = switch <= 0 ? true : $game_switches[switch] add_command(text, command[0], enabled) end #-------------------------------------------------------------------------- # update #-------------------------------------------------------------------------- def update super update_item_window end #-------------------------------------------------------------------------- # update_item_window #-------------------------------------------------------------------------- def update_item_window return if @item_window.nil? return if @current_index == current_symbol @current_index = current_symbol @item_window.refresh end #-------------------------------------------------------------------------- # item_window= #-------------------------------------------------------------------------- def item_window=(window) @item_window = window update end #-------------------------------------------------------------------------- # update_help #-------------------------------------------------------------------------- def update_help return if @actor.nil? @help_window.set_text(@actor.actor.description) endend # Window_StatusCommand#==============================================================================# â– Window_StatusActor#==============================================================================class Window_StatusActor < Window_Base #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(dx, dy) super(dx, dy, window_width, fitting_height(4)) @actor = nilunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # window_width #-------------------------------------------------------------------------- def window_width; return Graphics.width - 160; end #-------------------------------------------------------------------------- # actor= #-------------------------------------------------------------------------- def actor=(actor) return if @actor == actor @actor = actor refresh end #-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh contents.clear return unless @actor draw_actor_face(@actor, 0, 0) draw_actor_simple_status(@actor, 108, line_height / 2) endend # Window_StatusActor#==============================================================================# â– Window_StatusItem#==============================================================================class Window_StatusItem < Window_Base #-------------------------------------------------------------------------- # initialize #-------------------------------------------------------------------------- def initialize(dx, dy, command_window) super(dx, dy, Graphics.width, Graphics.height - dy) @command_window = command_window @actor = nil refreshunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # actor= #-------------------------------------------------------------------------- def actor=(actor) return if @actor == actor @actor = actor refresh end #-------------------------------------------------------------------------- # refresh #-------------------------------------------------------------------------- def refresh contents.clear reset_font_settings return unless @actor draw_window_contents end #-------------------------------------------------------------------------- # draw_window_contents #-------------------------------------------------------------------------- def draw_window_contents case @command_window.current_symbol when :general self.opacity = 255 draw_actor_general when :parameters self.opacity = 255 draw_parameter_graph when :properties self.opacity = 255 draw_properties_list when :elements self.opacity = 0 draw_element_list when :biography, :rename, :retitle self.opacity = 255 draw_actor_biography else draw_custom end end #-------------------------------------------------------------------------- # draw_element_list #-------------------------------------------------------------------------- def draw_element_list create_element_window @element_window.show @element_window.activateend def create_element_windowwx = Graphics.width - 400 wy = 192 @element_window = Window_ElementStatus.new(0, wy, Graphics.width, Graphics.height - wy) @element_window.actor = @actor end #-------------------------------------------------------------------------- # draw_actor_general #-------------------------------------------------------------------------- def draw_actor_general change_color(system_color) text = YEA::STATUS::PARAMETERS_VOCAB draw_text(0, 0, contents.width/2, line_height, text, 1) text = YEA::STATUS::EXPERIENCE_VOCAB draw_text(contents.width/2, 0, contents.width/2, line_height, text, 1) draw_general_parameters draw_general_experienceunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_general_parameters #-------------------------------------------------------------------------- def draw_general_parameters dx = 24 dy = line_height / 2 draw_actor_level(dx, line_height*1+dy, contents.width/2 - 24) draw_actor_param(0, dx, line_height*2+dy, contents.width/2 - 24) draw_actor_param(1, dx, line_height*3+dy, contents.width/2 - 24) draw_actor_param(2, dx, line_height*4+dy, contents.width/4 - 12) draw_actor_param(4, dx, line_height*5+dy, contents.width/4 - 12) draw_actor_param(6, dx, line_height*6+dy, contents.width/4 - 12) dx += contents.width/4 - 12 draw_actor_param(3, dx, line_height*4+dy, contents.width/4 - 12) draw_actor_param(5, dx, line_height*5+dy, contents.width/4 - 12) draw_actor_param(7, dx, line_height*6+dy, contents.width/4 - 12)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_actor_level #-------------------------------------------------------------------------- def draw_actor_level(dx, dy, dw) colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(dx+1, dy+1, dw-2, line_height-2) contents.fill_rect(rect, colour) change_color(system_color) draw_text(dx+4, dy, dw-8, line_height, Vocab::level) change_color(normal_color) draw_text(dx+4, dy, dw-8, line_height, @actor.level.group, 2)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_actor_param #-------------------------------------------------------------------------- def draw_actor_param(param_id, dx, dy, dw) colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(dx+1, dy+1, dw-2, line_height-2) contents.fill_rect(rect, colour) change_color(system_color) draw_text(dx+4, dy, dw-8, line_height, Vocab::param(param_id)) change_color(normal_color) draw_text(dx+4, dy, dw-8, line_height, @actor.param(param_id).group, 2)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_general_experience #-------------------------------------------------------------------------- def draw_general_experience if @actor.max_level? s1 = @actor.exp.group s2 = "-------" s3 = "-------" else s1 = @actor.exp.group s2 = (@actor.next_level_exp - @actor.exp).group s3 = @actor.next_level_exp.group end s_next = sprintf(Vocab::ExpNext, Vocab::level) total_next_text = sprintf(YEA::STATUS::NEXT_TOTAL_VOCAB, Vocab::level) change_color(system_color) dx = contents.width/2 + 12 dy = line_height * 3 / 2 dw = contents.width/2 - 36 draw_text(dx, dy + line_height * 0, dw, line_height, Vocab::ExpTotal) draw_text(dx, dy + line_height * 2, dw, line_height, s_next) draw_text(dx, dy + line_height * 4, dw, line_height, total_next_text) change_color(normal_color) draw_text(dx, dy + line_height * 1, dw, line_height, s1, 2) draw_text(dx, dy + line_height * 3, dw, line_height, s2, 2) draw_text(dx, dy + line_height * 5, dw, line_height, s3, 2)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_parameter_graph #-------------------------------------------------------------------------- def draw_parameter_graph draw_parameter_title dy = line_height * 3/2 maximum = 1 minimum = @actor.param_max(2) for i in 2..7 maximum = [@actor.param(i), maximum].max minimum = [@actor.param(i), minimum].min end maximum += minimum * 0.33 unless maximum == minimum for i in 2..7 rate = calculate_rate(maximum, minimum, i) dy = line_height * i - line_height/2 draw_param_gauge(i, dy, rate) change_color(system_color) draw_text(28, dy, contents.width - 56, line_height, Vocab::param(i)) dw = (contents.width - 48) * rate - 8 change_color(normal_color) draw_text(28, dy, dw, line_height, @actor.param(i).group, 2)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end end #-------------------------------------------------------------------------- # calculate_rate #-------------------------------------------------------------------------- def calculate_rate(maximum, minimum, param_id) return 1.0 if maximum == minimum rate = (@actor.param(param_id).to_f - minimum) / (maximum - minimum).to_f rate *= 0.67 rate += 0.33 return rate end #-------------------------------------------------------------------------- # draw_param_gauge #-------------------------------------------------------------------------- def draw_param_gauge(param_id, dy, rate) dw = contents.width - 48 colour1 = param_gauge1(param_id) colour2 = param_gauge2(param_id) draw_gauge(24, dy, dw, rate, colour1, colour2)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # param_gauge1 #-------------------------------------------------------------------------- def param_gauge1(param_id) return YEA::STATUS::PARAM_COLOUR[param_id][1] end #-------------------------------------------------------------------------- # param_gauge2 #-------------------------------------------------------------------------- def param_gauge2(param_id) return YEA::STATUS::PARAM_COLOUR[param_id][2] end #-------------------------------------------------------------------------- # draw_parameter_title #-------------------------------------------------------------------------- def draw_parameter_title colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(0, 0, contents.width, contents.height) contents.fill_rect(rect, colour) change_color(system_color) text = YEA::STATUS::PARAMETERS_VOCAB draw_text(0, line_height/3, contents.width, line_height, text, 1) end #-------------------------------------------------------------------------- # draw_properties_list #-------------------------------------------------------------------------- def draw_properties_list contents.font.size = YEA::STATUS::PROPERTIES_FONT_SIZE draw_properties_column1 draw_properties_column2 draw_properties_column3 reset_font_settingsunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_properties_column1 #-------------------------------------------------------------------------- def draw_properties_column1 dx = 24 dw = (contents.width - 24) / 3 - 24 dy = 0 for property in YEA::STATUS::PROPERTIES_COLUMN1 dy = draw_property(property, dx, dy, dw) end end #-------------------------------------------------------------------------- # draw_properties_column2 #-------------------------------------------------------------------------- def draw_properties_column2 dx = 24 + (contents.width - 24) / 3 dw = (contents.width - 24) / 3 - 24 dy = 0 for property in YEA::STATUS::PROPERTIES_COLUMN2 dy = draw_property(property, dx, dy, dw) end end #-------------------------------------------------------------------------- # draw_properties_column3 #-------------------------------------------------------------------------- def draw_properties_column3 dx = 24 + (contents.width - 24) / 3 * 2 dw = (contents.width - 24) / 3 - 24 dy = 0 for property in YEA::STATUS::PROPERTIES_COLUMN3 dy = draw_property(property, dx, dy, dw) end end #-------------------------------------------------------------------------- # draw_property #-------------------------------------------------------------------------- def draw_property(property, dx, dy, dw) fmt = "%1.2f%%" case property[0] #--- when :hit value = sprintf(fmt, @actor.hit * 100) when :eva value = sprintf(fmt, @actor.eva * 100) when :cri value = sprintf(fmt, @actor.cri * 100) when :cev value = sprintf(fmt, @actor.cev * 100) when :mev value = sprintf(fmt, @actor.mev * 100) when :mrf value = sprintf(fmt, @actor.mrf * 100) when :cnt value = sprintf(fmt, @actor.cnt * 100) when :hrg value = sprintf(fmt, @actor.hrg * 100) when :mrg value = sprintf(fmt, @actor.mrg * 100) when :trg value = sprintf(fmt, @actor.trg * 100) when :tgr value = sprintf(fmt, @actor.tgr * 100) when :grd value = sprintf(fmt, @actor.grd * 100) when :rec value = sprintf(fmt, @actor.rec * 100) when :pha value = sprintf(fmt, @actor.pha * 100) when :mcr value = sprintf(fmt, @actor.mcr * 100) when :tcr value = sprintf(fmt, @actor.tcr * 100) when :pdr value = sprintf(fmt, @actor.pdr * 100) when :mdr value = sprintf(fmt, @actor.mdr * 100) when :fdr value = sprintf(fmt, @actor.fdr * 100) when :exr value = sprintf(fmt, @actor.exr * 100) when :hcr return dy unless $imported["YEA-SkillCostManager"] value = sprintf(fmt, @actor.hcr * 100) when :tcr_y return dy unless $imported["YEA-SkillCostManager"] value = sprintf(fmt, @actor.tcr_y * 100) when :gcr return dy unless $imported["YEA-SkillCostManager"] value = sprintf(fmt, @actor.gcr * 100) when :cdr return dy unless $imported["YEA-SkillRestrictions"] value = sprintf(fmt, @actor.cdr * 100) when :wur return dy unless $imported["YEA-SkillRestrictions"] value = sprintf(fmt, @actor.wur * 100) #--- else; return dy end colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(dx+1, dy+1, dw-2, line_height-2) contents.fill_rect(rect, colour) change_color(system_color) draw_text(dx+4, dy, dw-8, line_height, property[1], 0) change_color(normal_color) draw_text(dx+4, dy, dw-8, line_height, value, 2) return dy + line_height end #-------------------------------------------------------------------------- # draw_actor_biography #-------------------------------------------------------------------------- def draw_actor_biography fmt = YEA::STATUS::BIOGRAPHY_NICKNAME_TEXT text = sprintf(fmt, @actor.name, @actor.nickname) contents.font.size = YEA::STATUS::BIOGRAPHY_NICKNAME_SIZE draw_text(0, 0, contents.width, line_height*2, text, 1) reset_font_settings draw_text_ex(24, line_height*2, @actor.description)unless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end #-------------------------------------------------------------------------- # draw_custom #-------------------------------------------------------------------------- def draw_custom current_symbol = @command_window.current_symbol return unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(current_symbol) method(YEA::STATUS::CUSTOM_STATUS_COMMANDS[current_symbol][3]).call end #-------------------------------------------------------------------------- # draw_custom1 #-------------------------------------------------------------------------- def draw_custom1 dx = 0; dy = 0 for skill in @actor.skills next if skill.nil? next unless @actor.added_skill_types.include?(skill.stype_id) draw_item_name(skill, dx, dy) dx = dx == contents.width / 2 + 16 ? 0 : contents.width / 2 + 16 dy += line_height if dx == 0 return if dy + line_height > contents.heightunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end end #-------------------------------------------------------------------------- # draw_custom2 #-------------------------------------------------------------------------- def draw_custom2 dx = 4; dy = 0; slot_id = 0 for equip in @actor.equips change_color(system_color) text = Vocab.etype(@actor.equip_slots[slot_id]) draw_text(dx, dy, contents.width - dx, line_height, text) reset_font_settings draw_item_name(equip, dx+92, dy) unless equip.nil? slot_id += 1 dy += line_height break if dy + line_height > contents.height end dw = Graphics.width * 2 / 5 - 24 dx = contents.width - dw; dy = 0 param_id = 0 8.times do colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2) contents.fill_rect(rect, colour) size = $imported["YEA-AceEquipEngine"] ? YEA::EQUIP::STATUS_FONT_SIZE : 20 contents.font.size = size change_color(system_color) draw_text(dx+4, dy, dw, line_height, Vocab::param(param_id)) change_color(normal_color) dwa = (Graphics.width * 2 / 5 - 2) / 2 draw_text(dx, dy, dwa, line_height, @actor.param(param_id).group, 2) reset_font_settings change_color(system_color) draw_text(dx + dwa, dy, 22, line_height, "→", 1) param_id += 1 dy += line_height break if dy + line_height > contents.heightunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0end end end #-------------------------------------------------------------------------- # draw_custom3 #-------------------------------------------------------------------------- def draw_custom3 return unless $imported["YEA-ClassSystem"] data = [] for class_id in YEA::CLASS_SYSTEM::CLASS_ORDER next if $data_classes[class_id].nil? item = $data_classes[class_id] next unless @actor.unlocked_classes.include?(item.id) or YEA::CLASS_SYSTEM::DEFAULT_UNLOCKS.include?(item.id) data.push(item) end dx = 0; dy = 0; class_index = 0 for class_id in data item = data[class_index] reset_font_settings if item == @actor.class change_color(text_color(YEA::CLASS_SYSTEM::CURRENT_CLASS_COLOUR)) elsif item == @actor.subclass change_color(text_color(YEA::CLASS_SYSTEM::SUBCLASS_COLOUR)) else change_color(normal_color) end icon = item.icon_index draw_icon(icon, dx, dy) text = item.name draw_text(24, dy, contents.width-24, line_height, text) next if YEA::CLASS_SYSTEM::MAINTAIN_LEVELS level = @actor.class_level(item.id) contents.font.size = YEA::CLASS_SYSTEM::LEVEL_FONT_SIZE text = sprintf(YEA::CLASS_SYSTEM::CLASS_LEVEL, level.group) dwa = contents.width - (Graphics.width * 2 / 5 - 24) - 28 draw_text(dx, dy, dwa, line_height, text, 2) class_index += 1 dy += line_height break if dy + line_height > contents.height end dw = Graphics.width * 2 / 5 - 24 dx = contents.width - dw; dy = 0 param_id = 0 8.times do colour = Color.new(0, 0, 0, translucent_alpha/2) rect = Rect.new(dx+1, dy+1, dw - 2, line_height - 2) contents.fill_rect(rect, colour) contents.font.size = YEA::CLASS_SYSTEM::PARAM_FONT_SIZE change_color(system_color) draw_text(dx+4, dy, dw, line_height, Vocab::param(param_id)) change_color(normal_color) dwa = (Graphics.width * 2 / 5 - 2) / 2 draw_text(dx, dy, dwa, line_height, @actor.param(param_id).group, 2) reset_font_settings change_color(system_color) draw_text(dx + dwa, dy, 22, line_height, "→", 1) param_id += 1 dy += line_height break if dy + line_height > contents.heightunless @element_window.nil?@element_window.opacity = 0@element_window.contents_opacity = 0@element_window.back_opacity = 0@opacity = 255end end endend # Window_StatusItem#==============================================================================# â–¼ Window_ElementStatus#==============================================================================class Window_ElementStatus < Window_Selectable def initialize(x, y, width, height) super(x, y, width, height) @opacity = 255 end def actor=(actor) return if @actor == actor @actor = actor refresh end def ignore_list Status_Element::Ignore end def include?(item) return true unless item.nil? || item.empty? || ignore_list.include?(item) end def item_max @data ? @data.size : 1 end def make_item_list @data = $data_system.elements.select {|item| include?(item) } @data.push(nil) if include?(nil) end def element_info(item) Status_Element::Elements[item] end def attack_icon Status_Element::Attack_Icon end def resist_icon Status_Element::Resist_Icon end def element_resist(element_id) if $imported["Elemental_Modifiers"] element_rate = @actor.element_resist_rate(element_id) else element_rate = @actor.element_rate(element_id) end resist = "%d%" %[0 + (element_rate*100 - 100) * -1.to_i] return resist end def element_damage(element_id) if $imported["Elemental_Modifiers"] element_rate = @actor.element_attack_rate(element_id) else element_rate = @actor.element_rate(element_id) end resist = "%d%" %[0 + (element_rate*100 - 100).to_i] return resist end def draw_item(index) item = @data[index] if item info = element_info(item) icon_index = info[1] rect = item_rect(index) rect.width -= 4 draw_icon(icon_index, rect.x, rect.y) if icon_index draw_text(rect.x + 32, rect.y, 172, line_height, item) draw_icon(attack_icon, rect.x + 148, rect.y) draw_icon(resist_icon, rect.x + 252, rect.y) draw_text(rect.x + 120, rect.y, 172, line_height, element_resist(info[0])) end end def refresh make_item_list contents.clear draw_all_items end def slide_speed 10 end def show#~ self.opacity = 255#~ self.contents_opacity = 255#~ self.back_opacity = 255@opacity = 255 end def hide#~ self.opacity = 0#~ self.contents_opacity = 0#~ self.back_opacity = 0@opacity = 255 endend # Window_ElementStatus#==============================================================================# â– Scene_Status#==============================================================================class Scene_Status < Scene_MenuBase #-------------------------------------------------------------------------- # start #-------------------------------------------------------------------------- def start super create_help_window create_command_window create_status_window create_item_window relocate_windows end def on_status_ok @element_window.show @element_window.activate end def on_element_cancel @element_window.hide @status_window.activate end #-------------------------------------------------------------------------- # create_command_window #-------------------------------------------------------------------------- def create_command_window wy = @help_window.height @command_window = Window_StatusCommand.new(0, wy) @command_window.viewport = @viewport @command_window.actor = @actor @command_window.help_window = @help_window @command_window.set_handler(:cancel, method(:return_scene)) @command_window.set_handler(:pagedown, method(:next_actor)) @command_window.set_handler(:pageup, method(:prev_actor)) process_custom_status_commands end #-------------------------------------------------------------------------- # process_custom_status_commands #-------------------------------------------------------------------------- def process_custom_status_commands for command in YEA::STATUS::COMMANDS next unless YEA::STATUS::CUSTOM_STATUS_COMMANDS.include?(command[0]) called_method = YEA::STATUS::CUSTOM_STATUS_COMMANDS[command[0]][2] @command_window.set_handler(command[0], method(called_method)) end end #-------------------------------------------------------------------------- # create_status_window #-------------------------------------------------------------------------- def create_status_window wy = @help_window.height @status_window = Window_StatusActor.new(@command_window.width, wy) @status_window.viewport = @viewport @status_window.actor = @actor end #-------------------------------------------------------------------------- # create_item_window #-------------------------------------------------------------------------- def create_item_window dy = @command_window.y + @command_window.height @item_window = Window_StatusItem.new(0, dy, @command_window) @item_window.viewport = @viewport @item_window.actor = @actor @command_window.item_window = @item_window end #-------------------------------------------------------------------------- # relocate_windows #-------------------------------------------------------------------------- def relocate_windows return unless $imported["YEA-AceMenuEngine"] case Menu.help_window_location when 0 # Top @help_window.y = 0 @command_window.y = @help_window.height @item_window.y = @command_window.y + @command_window.height when 1 # Middle @command_window.y = 0 @help_window.y = @command_window.height @item_window.y = @help_window.y + @help_window.height else # Bottom @command_window.y = 0 @item_window.y = @command_window.height @help_window.y = @item_window.y + @item_window.height end @status_window.y = @command_window.y end #-------------------------------------------------------------------------- # on_actor_change #-------------------------------------------------------------------------- def on_actor_change @command_window.actor = @actor @status_window.actor = @actor @item_window.actor = @actor @command_window.activate end #-------------------------------------------------------------------------- # new method: command_name1 #-------------------------------------------------------------------------- def command_name1 SceneManager.call(Scene_Skill) end #-------------------------------------------------------------------------- # new method: command_name2 #-------------------------------------------------------------------------- def command_name2 SceneManager.call(Scene_Equip) end #-------------------------------------------------------------------------- # new method: command_name3 #-------------------------------------------------------------------------- def command_name3 unless $imported["YEA-ClassSystem"] @command_window.activate return end SceneManager.call(Scene_Class) endend # Scene_Status#==============================================================================## â–¼ End of File##============================================================================== Share this post Link to post Share on other sites
TheDrifter 0 Posted January 3, 2013 (edited) Is there anyone who is able to make two rows of elements instead of just one? Or fix the problem Janus Senpre was relating, where pressing Q and W to scroll through characters makes the next window overlap the previous one? EDIT: Good job Gleason, by the way. Your changes to the script have been pretty useful for me : ) Edited January 6, 2013 by TheDrifter Share this post Link to post Share on other sites
TheDrifter 0 Posted January 6, 2013 Bada-boom, bada-Bump. Share this post Link to post Share on other sites
ekomega 20 Posted January 9, 2013 For two columns instead of one, couldn't you use col.max and set it to 2? I'm not particularly sure how that works. Share this post Link to post Share on other sites
TheDrifter 0 Posted January 9, 2013 (edited) I sincerely doubt you can do that. From what I've gathered, say I tell the script to show all of my elements at once, only 8 will show up one after the other. The ninth element doesn't even appear to be cut-out. I wish there was a script line that could say "hey, since you can't fit all of the elements on one row, why not start doing in on a second one" but I guess there isn't. EDIT: I know yanfly used something like that to make columns in the original Status script: PROPERTIES_COLUMN1 =[ [:hit, "Hit Rate"], [:eva, "Evasion"], [:mev, "Magical Evasion"], [:cri, "Critical Chance"], [:cev, "Critical Evasion"], [:cnt, "Parrying Chance"], [:mrf, "Magic Reflection"], [:grd, "Guard Rate"], ] # Do not remove this. the problem with this is that elemental resistances aren't properties you can call like that, as far as I know. Edited January 9, 2013 by TheDrifter Share this post Link to post Share on other sites
anavn1 9 Posted March 19, 2013 overrides the current menu scripts and removes certain function of entering the menus such as renaming and equipping..... Well for you part that works it is cool I will try to copy it back into the original menu script as it is 6 versions older. Share this post Link to post Share on other sites
lillunatik 0 Posted May 14, 2013 Ok, I need some help now...So I'm trying to make the window background transparent...So far I'm able to make all the window background transparent except the description window at the top. Can anyone tell me which lines draws the description window at the top? Note: I added a picture to have a better view of what I'm trying to do... Share this post Link to post Share on other sites
anavn1 9 Posted May 14, 2013 I will be using this script in my newest project but i would like to ask you what script did you use for the bars hp , mp and exp bars ?? Share this post Link to post Share on other sites
lillunatik 0 Posted May 19, 2013 Kms Generic gauge if you need the script name, anyways i still can't find the code for the window box T.T Share this post Link to post Share on other sites
Kazuki_T 0 Posted June 28, 2013 I was wondering if there was any way you can add your own custom element to the element window in this script. Share this post Link to post Share on other sites
Gleason 15 Posted June 28, 2013 If you mean a new element that's not defaulted to in VX Ace that you created, such as Time, Space, Slash, etc. then the answer is yes! Just scroll down to line 192 or so and follow the directions. It's pretty straightforward. Share this post Link to post Share on other sites
Kazuki_T 0 Posted June 29, 2013 If you mean a new element that's not defaulted to in VX Ace that you created, such as Time, Space, Slash, etc. then the answer is yes! Just scroll down to line 192 or so and follow the directions. It's pretty straightforward. If you mean a new element that's not defaulted to in VX Ace that you created, such as Time, Space, Slash, etc. then the answer is yes! Just scroll down to line 192 or so and follow the directions. It's pretty straightforward. When I did what you told in your response the icon and element didn't appear in my character's status . I read over the direction carefully too. Anyway here's how it turned out. My custom element is "Divine Flame". Share this post Link to post Share on other sites
Gleason 15 Posted June 29, 2013 Ahh okay, I see what's up. Unfortunately, to my knowledge, there's no way to scroll that window down, and at the default resolution you can only fit 8 elements in there (if you max it to 640 x 480 you can fit 11). You can try to hit SHIFT to see if that would work (I know it works in the Yanfly shop menu if you have too many characters to display on 1 page), but I'm afraid I don't know how to change it to add a second column of information in there. Share this post Link to post Share on other sites
Kazuki_T 0 Posted June 29, 2013 Ahh okay, I see what's up. Unfortunately, to my knowledge, there's no way to scroll that window down, and at the default resolution you can only fit 8 elements in there (if you max it to 640 x 480 you can fit 11). You can try to hit SHIFT to see if that would work (I know it works in the Yanfly shop menu if you have too many characters to display on 1 page), but I'm afraid I don't know how to change it to add a second column of information in there. Ahh okay, I see what's up. Unfortunately, to my knowledge, there's no way to scroll that window down, and at the default resolution you can only fit 8 elements in there (if you max it to 640 x 480 you can fit 11). You can try to hit SHIFT to see if that would work (I know it works in the Yanfly shop menu if you have too many characters to display on 1 page), but I'm afraid I don't know how to change it to add a second column of information in there. How would I change the size of the window to 640 x 480? Share this post Link to post Share on other sites
corn112 0 Posted July 10, 2013 I tinkered with the code for a little while, and I got it to look like this. I set icons to 0 so they wouldn't show up. If anyone's interested, just tell me how to put the script up in a spoiler so i can add it for everyone ^^; I won't require credit myself--just that you credit the people who actually wrote it to begin with. In your picture, you have 9 elements listed. The most I can have is 8. I've been trying to figure out how you did it, but I'm not as good as reading code. Does anyone know how to list more elements? Share this post Link to post Share on other sites
Gleason 15 Posted July 10, 2013 I tinkered with the code for a little while, and I got it to look like this. I set icons to 0 so they wouldn't show up. If anyone's interested, just tell me how to put the script up in a spoiler so i can add it for everyone ^^; I won't require credit myself--just that you credit the people who actually wrote it to begin with. In your picture, you have 9 elements listed. The most I can have is 8. I've been trying to figure out how you did it, but I'm not as good as reading code. Does anyone know how to list more elements? If you use a script that changes the screen resolution and you swap it up to 640 x 480, then you can fit up to 11 elements in there. I'm sorry, but I don't know how to Table it or make it 3 columns so that you can fit more elements : / Share this post Link to post Share on other sites
hstmalk 0 Posted November 12, 2013 ERRORicon_index = info[1]HELP ME?! Share this post Link to post Share on other sites
bloodyliao 5 Posted January 27, 2014 I have the same problem, even simply put it in a new project. Can someone fix it? Share this post Link to post Share on other sites
bloodyliao 5 Posted February 20, 2014 Pretty sure you could've done this all within a new, separate script. YF's scripts tend to be made with the intention that other developers can add to them with relative ease. @Sievn If you're using the default size for the RPG MAKER VX ACE here is the code to use @element_window = Window_ElementStatus.new(wx-144, wy, 544, Graphics.height - wy) just search for @element_window = Window_ElementStatus.new(wx-240, wy, 640, Graphics.height - wy) it should be around line 560. if you are using a different size by using Yanfly's core engine or someone else's core engine, let me know. Instead of using a constant value to define the width, you can just use Graphics.width You can also just use 0 in this case instead of wx-value @element_window = Window_ElementStatus.new(0, wy, Graphics.width, Graphics.height - wy)Now the window dynamically resizes itself based on the resolution. Hi! I also use you block system, which works well with ace status menu, adding the follwing scripts to show the infomation about the blocking. [:blv, "Block Value"], [:blr, "Block Reduction Rate"], [:blc, "Block Chance"], [:cbl, "Critical Block Chance"], However, it doesn't work with this script...What should I do to fix this? Share this post Link to post Share on other sites