Jump to content
DisturbedInside

Yanfly Status Menu with Tsukihime's Element information

Recommended Posts

**Yanfly Status Menu with Tsukihime's Element information**

v1.04

. by DisturbedInside, Yanfly, and Tsukihime

 

Introduction

 

Like stated in the title, this script will display Tsukihime's element info in the Yanfly status menu!

 

UPDATES:

 

I fixed a problem with the window resizing (changed the formula) and fixed my problem with opacity. So it should be normal now!

 

Features:

 

This script will allow the user to view the element information of a certain actor in the Yanfly status menu. This was a script request by Pinka. http://www.rpgmakervxace.net/topic/5250-yea-status-menu-add-on/

 

Screenshots

 

 

 

post-11170-0-38026300-1345612979_thumb.png

 

 

 

 

How to Use

 

Plug & play!!

 

Script:

 

 

 

 


#==============================================================================
#
# â–¼ Yanfly Engine Ace - Ace Status Menu with Elements v1.04
# -- Last Updated: 2012.08.22
# -- Authors: Yanfly, Tsukihime, DisturbedInside
# -- 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"],
 [    :custom1,	 "Skills"],
 [    :custom2,  "Equipment"],
 [    :custom3,	  "Class"],
  [  :biography,  "Biography"],
  [	 :rename,	 "Rename"],  # Requires YEA - Rename Actor
  [    :retitle,    "Retitle"],  # Requires YEA - Rename Actor
  [    :elements,  "Elements"],  # 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 = "Next %s Total EXP"  # 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 the %s"   # How the nickname will appear.
   BIOGRAPHY_NICKNAME_SIZE = 32		    # Size of the font used.

 end # STATUS
end # YEA

module Status_Element

 # List of elements that should not be included in the list
 Ignore = ["Absorb", "Physical"]

 # Element entries. Format: "element name" => [index, icon]
 # The name and icon must match the ones in the database
 Elements = { "Fire"    => [3, 96],
		   "Ice"	 => [4, 97],
		   "Thunder" => [5, 98],
		   "Water"   => [6, 99],
		   "Earth"   => [7, 100],
		   "Wind"    => [8, 101],
		   "Holy"    => [9, 102],
		   "Dark"    => [10, 103]
		 }

 # Icons to draw for attack/resistance
 Attack_Icon = 385
 Resist_Icon = 510
end

#==============================================================================
# â–¼ 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_oy

end # 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

 end

end # Game_Actor

class Game_Battler < Game_BattlerBase			

 def element_resist

 end

 def element_attack

 end


end

#==============================================================================
# â–  Window_StatusCommand
#==============================================================================

class Window_StatusCommand < Window_Command

 #--------------------------------------------------------------------------
 # public instance variables
 #--------------------------------------------------------------------------
 attr_accessor :item_window

 #--------------------------------------------------------------------------
 # initialize
 #--------------------------------------------------------------------------
 def initialize(dx, dy)
   super(dx, dy)
   @actor = nil
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end

 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)
 end

end # Window_StatusCommand

#==============================================================================
# â–  Window_StatusActor
#==============================================================================

class Window_StatusActor < Window_Base

 #--------------------------------------------------------------------------
 # initialize
 #--------------------------------------------------------------------------
 def initialize(dx, dy)
   super(dx, dy, window_width, fitting_height(4))
   @actor = nil
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end


 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)


 end

end # 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
   refresh
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end


 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.activate 
end


 def create_element_window
wx = 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_experience
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end

 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 = 0
end


 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 = 0
end


 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 = 0
end

 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 = 0
end


 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 = 0
end


   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 = 0
end


 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_settings
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end

 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 = 0
end

 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.height
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end

   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.height
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
end

   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.height
unless @element_window.nil?
@element_window.opacity = 0
@element_window.contents_opacity = 0
@element_window.back_opacity = 0
@opacity = 255
end

   end
 end

end # 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_text(rect.x + 180, rect.y, 172, line_height, element_damage(info[0]))
  draw_icon(resist_icon, rect.x + 252, rect.y)
  draw_text(rect.x + 284, 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
   end
end  # 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)
 end

end # Scene_Status

#==============================================================================
#
# â–¼ End of File
#
#==============================================================================

 

 

 

 

 

FAQ

 

Q: what are the terms of use?

A: free to use in any game. Just credit Yanfly, Tsukihime, and DisturbedInside in some visible manner!

 

Q: Why are you so awesome?

A: Dunno, do you think I am?

 

Q: I think I know how to make this better!!

A: Great! Post it here. I'll implement he change and give you a mention in the script :)

 

Q: Can you make it compatible with XYz script?

A: I can try. Post the link here.

 

Q: Can I edit this script to use in my game?

A: hell yeah!! Just remember to credit the necessary people!!

 

Credit and Thanks

- DisturbedInside

- Yanfly

- Tsukihime

- Pinka

 

 

Author's comments

- Adding in the Tsuki element info proved to be a greater challenge than I expected, partly due to to fact that Tsukihime's window was created in a different place from Yanfly's window (window_selectable rather than window_base). Because of this, I had a harder time calling the window than normal. Plus there are things in window_selectable that aren't in window_base.

Edited by Rikifive
Updated the script to fix issue with unicode character (arrow)

Share this post


Link to post
Share on other sites

 

 

Its a nice script but you do know the Elements aren't sized right.

 

1j6wc6.jpg

 

How can I fix this issue like you did in your screen shot? =/

 

Its nice script thought from what I could see.

Edited by Sievn

Share this post


Link to post
Share on other sites

I made it a window selectable because you could have more than 8 elements. I don't know if there's a way to pan a window base.

 

But I don't understand what kind of issues you could have run into if you're just opening the window.

selectable window doesn't require extra things.

Edited by Tsukihime

Share this post


Link to post
Share on other sites

@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.

@Tsukihime

You're absolutely right. This particular Yanfly script doesn't allow scrolling within certain tabs. I suppose I could make it more like the custom 3 (class system)

But I always figured I could resize the window that was created. :)

 

BTW: I found one small error in the script (didn't test O_o)

So I updated it!

Share this post


Link to post
Share on other sites

@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.

@Tsukihime

You're absolutely right. This particular Yanfly script doesn't allow scrolling within certain tabs. I suppose I could make it more like the custom 3 (class system)

But I always figured I could resize the window that was created. :)

 

BTW: I found one small error in the script (didn't test O_o)

So I updated it!

 

I see.

Thank you :)

 

EDIT : Works Perfect Now

Do you intend on adding more features?

Edited by Sievn

Share this post


Link to post
Share on other sites

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.

  • Like 1

Share this post


Link to post
Share on other sites

@Sievn

What do you want to see added?

 

@ Mr. Bubble.

Thanks: I already fixed this. Thought about it last night

 

SCRIPT UPDATED!! to version 1.04

Share this post


Link to post
Share on other sites

I don't get something. If i set an armor to give, for example, water resistence to 0%, which means u're actually completely immune to water, in the elements column i see something like:

 

Water Attack -100% Defense 100%

 

So i was wondering... how do I add element attack rate to a weapon or armor? I can only see the resistence attribute efficiency in the options.

Share this post


Link to post
Share on other sites

Hey Pinka

 

This problem is a problem with Tsukihime's base element info script. I guarantee you if you put Tsukihime's element info script in and take out mine, it will be the same result.

 

Of course you could try the elemental modifiers script (I think it's Tsukihime's)

 

The problem is that there is no base formula for element attack and element resistance.

I can try to write one, but no guarantees, since I will probably be going on hiatus soon.

 

Cheers

~DisturbedInside

Share this post


Link to post
Share on other sites

I am having an issue with this. I added this script to my list without deleting the old status menu Ace I got from Yanfly's channel.

When I scroll down to the "Properties" tab, the game crashes and gives me the following error report:

 

Line 890: NoMethodError occurred. undefined method for 'tcr_y' for #<Game_Actor:0xc226e54>

 

And when I scroll to the Elements tab, it tells me this:

 

Line 1144: NoMethodError occurred. undefined method '[]' for Nil:NilClass

 

I am not good at scripting and don't know what that means. I apologize if it is obvious. Thank you for your help =]

Edited by Draconis Kenjishiya

Share this post


Link to post
Share on other sites

I like it. One thing I would personally improve on is to allow custom, user defined text in the huge empty space to the right, or the empty space below the elemental information. That way the game creator can insert custom text

into the status, so it would be like "Fire 100% 100% This element is most damaging to ice creatures". There is a lot of empty space and i t would be great to be able to right whatever we want in that space.

Share this post


Link to post
Share on other sites

I am having an issue with this. I added this script to my list without deleting the old status menu Ace I got from Yanfly's channel.

When I scroll down to the "Properties" tab, the game crashes and gives me the following error report:

 

Line 890: NoMethodError occurred. undefined method for 'tcr_y' for #<Game_Actor:0xc226e54>

 

And when I scroll to the Elements tab, it tells me this:

 

Line 1144: NoMethodError occurred. undefined method '[]' for Nil:NilClass

 

I am not good at scripting and don't know what that means. I apologize if it is obvious. Thank you for your help =]

 

I've got the same problem. Did anyone figure out a solution to this?

 

EDIT: Figured it out. Thanks for the script.

Edited by Janus Senpre

Share this post


Link to post
Share on other sites

Well, what was the solution for others who are having the same problem?

Share this post


Link to post
Share on other sites

Well, what was the solution for others who are having the same problem?

 

I had put this script under an already existing Yanfly's Status script. I simply removed the original script and it worked.

 

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?

Share this post


Link to post
Share on other sites

I still get that NilClass error even when this script is the only script affecting Scene_Status. Odd. Is the script author MIA?

Share this post


Link to post
Share on other sites

I love this script but I seem to be getting an error message for line 1147 icon_index = info[1], when I go to select the elements tab I get this error message undefined method '[]' for nil:NilClass. Can anyone help with this?

Share this post


Link to post
Share on other sites

I love this script but I seem to be getting an error message for line 1147 icon_index = info[1], when I go to select the elements tab I get this error message undefined method '[]' for nil:NilClass. Can anyone help with this?

 

Nevermind I forgot to change elements format

Share this post


Link to post
Share on other sites

I love this script but I seem to be getting an error message for line 1147 icon_index = info[1], when I go to select the elements tab I get this error message undefined method '[]' for nil:NilClass. Can anyone help with this?

 

Nevermind I forgot to change elements format

 

Be more specific.

Share this post


Link to post
Share on other sites

# List of elements that should not be included in the list

Ignore = ["Magicks", "Physical"]

 

# Element entries. Format: "element name" => [index, icon]

# The name and icon must match the ones in the database

Elements = { "Fire" => [3, 96],

"Water" => [4, 99],

"Thunder" => [5, 98],

"Earth" => [6, 100],

"Dark" => [7, 103],

"Holy" => [8, 102],

#"Holy" => [9, 102],

#"Dark" => [10, 103]

}

 

this part of the script has to match what you have in system so if you have fire is id is 3 then that's how it has to be in the script and it worked for me

Share this post


Link to post
Share on other sites

I have all of mine exactly as they are in the database and still encounter this error, so that isn't what's causing it.

Share this post


Link to post
Share on other sites

I have all of mine exactly as they are in the database and still encounter this error, so that isn't what's causing it.

 

Brian Metz solution worked for me. Once I changed the name of one of my elements in the database (which apparently I had changed?), it worked perfectly. Thanks a lot!

Share this post


Link to post
Share on other sites

William C, don't forget to write the elements you want to be "Ignored", even the empty elements in your database if you have some. Just name them something like "test" or "empty", and in the script, at the line that says:

 

# List of elements that should not be included in the list
Ignore = ["Magicks", "Physical"]

 

just name all of the elements you don't want to see used.

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Hey, is there a way to show more than just 8 elements?

 

There's a lot of empty space next to each elements, and I'd like to have two columns of elements to occupy that space, but I don't know how to program RGSS3.

 

Thanks!

Edited by TheDrifter

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted