I don't post often, so I'm not entirely sure if this is the right place for this, so let me know if I'm in the way.
I usually try to solve these myself since I can read the scripts to a certain point, but no chance, I can't write anything I'm confident will work. So, if a scripter isn't to busy to help me modify these to work together, I would be extremely pleased.
A slightly modified version of Fyre's Custom Status Menu
module FYRECUSTOMSTATUS
# Highest value that the character's stats can reach.
ST_MAX = 999
# The extra title for the actors.
# Instuctions:
#
#To edit the actors age, height, and element just change the lines that say ACTOR#_AGE, ACTOR#_HEIGHT, and ACTOR#_ELEMENT, where # is what number the character is in the database. For example, I you wanted to edit Aluxes age, height, or element and he is the actor 001 in you database, the you would edit ACTOR1_AGE, ACTOR1_HEIGHT, and ACTOR1_ELEMENT.
#
#Now, to edit the actor's biography, you have 5 lines available to you. So, whatever you want to say about the character, you have to say it in 5 lines, heh. To edit each line, just edit the ACTOR#_LINE*, where # is the actor's number in the database and * is the line's number. Just don't do past the margin line in the script editor when editing the biography or else the words will run onto the equipment.
#
#By default, the script only supports the status for 8 actors. However, it's extremely easy to add another one. Let's say you wanted to add the 9th character in your database. Just add these line's right below ACTOR8_LINE5, but replace # with the character's number.
#
#ACTOR#_AGE = ""
#ACTOR#_HEIGHT = ""
#ACTOR#_ELEMENT = ""
#ACTOR#_LINE1 = ""
#ACTOR#_LINE2 = ""
#ACTOR#_LINE3 = ""
#ACTOR#_LINE4 = ""
#ACTOR#_LINE5 = ""
#
#Then scroll down a bit until you see 'def draw_actor_bio' the scroll to where it says 'if actor.id == 8'. At the bottom of that you will see this.
#
#self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR8_LINE5)
#else
#end*
#end
#
#Now add a line where I put the star and then copy and past this data. Just change the # to the character's number.
#
#if actor.id == #
#cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR#_LINE1).width
#cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR#_LINE2).width
#cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR#_LINE3).width
#cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR#_LINE4).width
#self.contents.font.color = system_color
#self.contents.draw_text(x, y, 40, 32, "Age :")
#self.contents.draw_text(x, y + 20, 40, 32, "Height :")
#self.contents.draw_text(x, y + 40, 40, 32, "Class :")
#self.contents.draw_text(x, y + 60, 40, 32, "Element :")
#self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
#self.contents.font.color = normal_color
#self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR#_AGE)
#self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR#_HEIGHT)
#self.contents.draw_text(x + 30, y + 40, 140, 32, actor.class_name)
#self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR#_ELEMENT)
#self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR#_LINE1)
#self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR#_LINE2)
#self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR#_LINE3)
#self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR#_LINE4)
#self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR#_LINE5)
#else
#end
#
#And now the character will be viewable on the status screen without the game crashing.
#
#-v1.0-
#
#For the full-sized picture of the character, the name of the picture should be the character's name + "(Status)". So if your character's name is Aluxes, then the picture's name should be "Aluxes(Status)". The resolution is 232 x 434.
#
#For the extra information, the name of the picture should be the character's name + "(Extra)". So if your character's name is Aluxes, then the picture's name should be "Aluxes(Extra)". The resolution is 244 x 209. On a side note, as mentioned below, I'm not too good a scripter, as this is my first one. So until I can figure out something else, all of the extra info has to be in graphic form.
#-----------------------------------------
# Script Start
#-----------------------------------------
ACTOR1_AGE = "??"
ACTOR1_HEIGHT = "5'9"
ACTOR1_CLASS = "Rogue"
ACTOR1_ELEMENT = "Dark"
ACTOR1_LINE1 = "blank"
ACTOR1_LINE2 = "blank"
ACTOR1_LINE3 = "blank"
ACTOR1_LINE4 = "blank"
ACTOR1_LINE5 = "blank"
ACTOR2_AGE = "17"
ACTOR2_HEIGHT = "5'4"
ACTOR2_CLASS = "Cleric"
ACTOR2_ELEMENT = "Fire"
ACTOR2_LINE1 = "blank"
ACTOR2_LINE2 = "blank"
ACTOR2_LINE3 = "blank"
ACTOR2_LINE4 = "blank"
ACTOR2_LINE5 = "blank"
ACTOR3_AGE = "22"
ACTOR3_HEIGHT = "5'11"
ACTOR3_CLASS = "Mage"
ACTOR3_ELEMENT = "Ice"
ACTOR3_LINE1 = "blank"
ACTOR3_LINE2 = "blank"
ACTOR3_LINE3 = "blank"
ACTOR3_LINE4 = "blank"
ACTOR3_LINE5 = "blank"
ACTOR4_AGE = "20"
ACTOR4_HEIGHT = "5'7"
ACTOR4_CLASS = "Marksman"
ACTOR4_ELEMENT = "Wind"
ACTOR4_LINE1 = "blank"
ACTOR4_LINE2 = "blank"
ACTOR4_LINE3 = "blank"
ACTOR4_LINE4 = "blank"
ACTOR4_LINE5 = 'blank"
ACTOR5_AGE = ""
ACTOR5_HEIGHT = ""
ACTOR5_CLASS = ""
ACTOR5_ELEMENT = ""
ACTOR5_LINE1 = ""
ACTOR5_LINE2 = ""
ACTOR5_LINE3 = ""
ACTOR5_LINE4 = ""
ACTOR5_LINE5 = ""
ACTOR6_AGE = ""
ACTOR6_HEIGHT = ""
ACTOR6_CLASS = ""
ACTOR6_ELEMENT = ""
ACTOR6_LINE1 = ""
ACTOR6_LINE2 = ""
ACTOR6_LINE3 = ""
ACTOR6_LINE4 = ""
ACTOR6_LINE5 = ""
ACTOR7_AGE = ""
ACTOR7_HEIGHT = ""
ACTOR7_CLASS = ""
ACTOR7_ELEMENT = ""
ACTOR7_LINE1 = ""
ACTOR7_LINE2 = ""
ACTOR7_LINE3 = ""
ACTOR7_LINE4 = ""
ACTOR7_LINE5 = ""
ACTOR8_AGE = ""
ACTOR8_HEIGHT = ""
ACTOR8_CLASS = ""
ACTOR8_ELEMENT = ""
ACTOR8_LINE1 = ""
ACTOR8_LINE2 = ""
ACTOR8_LINE3 = ""
ACTOR8_LINE4 = ""
ACTOR8_LINE5 = ""
end
#==============================================================================
# ** Window_BaseStatus
#------------------------------------------------------------------------------
# I'm just adding a few methods to Window_Base and changing some values.
#==============================================================================
class Window_BaseStatus < Window
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
# Dispose if window contents bit map is set
if self.contents != nil
self.contents.dispose
end
super
end
#--------------------------------------------------------------------------
# * Get Text Color
# n : text color number (0-7)
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
# * Get Normal Text Color
#--------------------------------------------------------------------------
def normal_color
return Color.new(255, 255, 255, 255)
end
#--------------------------------------------------------------------------
# * Get Disabled Text Color
#--------------------------------------------------------------------------
def disabled_color
return Color.new(255, 255, 255, 128)
end
#--------------------------------------------------------------------------
# * Get System Text Color
#--------------------------------------------------------------------------
def system_color
return Color.new(192, 224, 255, 255)
end
#--------------------------------------------------------------------------
# * Get Crisis Text Color
#--------------------------------------------------------------------------
def crisis_color
return Color.new(255, 255, 64, 255)
end
#--------------------------------------------------------------------------
# * Get Knockout Text Color
#--------------------------------------------------------------------------
def knockout_color
return Color.new(255, 64, 0)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
# Reset if windowskin was changed
if $game_system.windowskin_name != @windowskin_name
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
end
end
#--------------------------------------------------------------------------
# * Draw Graphic
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
#--------------------------------------------------------------------------
# * Draw Name
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_name(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
#--------------------------------------------------------------------------
# * Draw Class
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 236, 32, actor.class_name)
end
#--------------------------------------------------------------------------
# * Draw Level
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_level(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x + 20, y, 32, 32, "Lv.")
self.contents.font.color = normal_color
self.contents.draw_text(x + 20, y, 34, 32, actor.level.to_s, 2)
end
##############################################################################
#Draws the actors full picture in the status window.
##############################################################################
def none
actorfull = RPG::Cache.picture("")
end
def draw_actor_full(actor, x, y)
actorfull = RPG::Cache.picture(actor.name + "(Status)") rescue none
cw = actorfull.width
ch = actorfull.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, actorfull, src_rect)
end
##############################################################################
#Draws the picture for the extra information for each actor.
##############################################################################
def draw_actor_bio(actor, x, y)
if actor.id == 1
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR1_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR1_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR1_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR1_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR1_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR1_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR1_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR1_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR1_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR1_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR1_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR1_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR1_LINE5)
else
end
if actor.id == 2
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR2_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR2_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR2_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR2_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR2_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR2_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR2_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR2_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR2_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR2_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR2_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR2_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR2_LINE5)
else
end
if actor.id == 3
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR3_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR3_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR3_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR3_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR3_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR3_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR3_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR3_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR3_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR3_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR3_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR3_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR3_LINE5)
else
end
if actor.id == 4
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR4_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR4_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR4_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR4_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR4_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR4_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR4_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR4_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR4_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR4_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR4_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR4_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR4_LINE5)
else
end
if actor.id == 5
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR5_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR5_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR5_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR5_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR5_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR5_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR5_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR5_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR5_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR5_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR5_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR5_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR5_LINE5)
else
end
if actor.id == 6
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR6_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR6_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR6_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR6_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR6_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR6_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR6_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR6_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR6_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR6_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR6_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR6_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR6_LINE5)
else
end
if actor.id == 7
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR7_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR7_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR7_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR7_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR7_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR7_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR7_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR7_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR7_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR7_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR7_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR7_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR7_LINE5)
else
end
if actor.id == 8
cw1 = contents.text_size(FYRECUSTOMSTATUS::ACTOR8_LINE1).width
cw2 = contents.text_size(FYRECUSTOMSTATUS::ACTOR8_LINE2).width
cw3 = contents.text_size(FYRECUSTOMSTATUS::ACTOR8_LINE3).width
cw4 = contents.text_size(FYRECUSTOMSTATUS::ACTOR8_LINE4).width
self.contents.font.color = system_color
self.contents.draw_text(x, y, 40, 32, "Age :")
self.contents.draw_text(x, y + 20, 40, 32, "Height :")
self.contents.draw_text(x, y + 40, 40, 32, "Class :")
self.contents.draw_text(x, y + 60, 40, 32, "Element :")
self.contents.draw_text(x, y + 90, 80, 32, "Biography :")
self.contents.font.color = normal_color
self.contents.draw_text(x + 40, y, 24, 32, FYRECUSTOMSTATUS::ACTOR8_AGE)
self.contents.draw_text(x + 40, y + 20, 24, 32, FYRECUSTOMSTATUS::ACTOR8_HEIGHT)
self.contents.draw_text(x + 30, y + 40, 140, 32, FYRECUSTOMSTATUS::ACTOR8_CLASS)
self.contents.draw_text(x + 50, y + 60, 24, 32, FYRECUSTOMSTATUS::ACTOR8_ELEMENT)
self.contents.draw_text(x, y + 110, cw1, 32, FYRECUSTOMSTATUS::ACTOR8_LINE1)
self.contents.draw_text(x, y + 130, cw2, 32, FYRECUSTOMSTATUS::ACTOR8_LINE2)
self.contents.draw_text(x, y + 150, cw3, 32, FYRECUSTOMSTATUS::ACTOR8_LINE3)
self.contents.draw_text(x, y + 170, cw4, 32, FYRECUSTOMSTATUS::ACTOR8_LINE4)
self.contents.draw_text(x, y + 190, cw4, 32, FYRECUSTOMSTATUS::ACTOR8_LINE5)
else
end
end
#--------------------------------------------------------------------------
# * Make State Text String for Drawing
# actor : actor
# width : draw spot width
# need_normal : Whether or not [normal] is needed (true / false)
#--------------------------------------------------------------------------
def make_battler_state_text(battler, width, need_normal)
# Get width of brackets
brackets_width = self.contents.text_size("[]").width
# Make text string for state names
text = ""
for i in battler.states
if $data_states[i].rating >= 1
if text == ""
text = $data_states[i].name
else
new_text = text + "/" + $data_states[i].name
text_width = self.contents.text_size(new_text).width
if text_width > width - brackets_width
break
end
text = new_text
end
end
end
# If text string for state names is empty, make it [normal]
if text == ""
if need_normal
text = "[Normal]"
end
else
# Attach brackets
text = "[" + text + "]"
end
# Return completed text string
return text
end
#--------------------------------------------------------------------------
# * Draw State
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
def draw_actor_state(actor, x, y, width = 120)
text = make_battler_state_text(actor, width, true)
self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
self.contents.draw_text(x, y, width, 32, text)
end
#--------------------------------------------------------------------------
# * Draw HP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
def draw_actor_hp(actor, x, y, width = 144)
# Draw "HP" text string
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
# Draw HP
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 32, 32, actor.hp.to_s, 2)
# Draw MaxHP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 32, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 46, y, 48, 32, actor.maxhp.to_s)
end
end
#--------------------------------------------------------------------------
# * Draw SP
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : draw spot width
#--------------------------------------------------------------------------
def draw_actor_sp(actor, x, y, width = 144)
# Draw "SP" text string
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
# Draw SP
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 32, 32, actor.sp.to_s, 2)
# Draw MaxSP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 32, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 46, y, 48, 32, actor.maxsp.to_s)
end
end
#--------------------------------------------------------------------------
# * Draw Parameter
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# type : parameter type (0-6)
#--------------------------------------------------------------------------
def draw_actor_parameter(actor, x, y, type)
case type
when 0
parameter_name = $data_system.words.atk
parameter_value = actor.atk
when 1
parameter_name = $data_system.words.pdef
parameter_value = actor.pdef
when 2
parameter_name = $data_system.words.mdef
parameter_value = actor.mdef
when 3
parameter_name = $data_system.words.str
parameter_value = actor.str
when 4
parameter_name = $data_system.words.dex
parameter_value = actor.dex
when 5
parameter_name = $data_system.words.agi
parameter_value = actor.agi
when 6
parameter_name = $data_system.words.int
parameter_value = actor.int
end
self.contents.font.color = system_color
self.contents.draw_text(x, y + 2, 120, 32, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 105, y, 36, 32, parameter_value.to_s, 2)
end
#--------------------------------------------------------------------------
# * Draw Item Name
# item : item
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_item_name(item, x, y)
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
self.contents.font.color = normal_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
end
#--------------------------------------------------------------------------
# * Draw Slant Bar(by SephirothSpawn)
#--------------------------------------------------------------------------
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
# Draw Border
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end
# Draw Background
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end
# Draws Bar
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_BaseStatus
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.name = "Century Gothic"
self.contents.font.size = 18
draw_actor_full(@actor, 490, 450)
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 4 + 144, 0)
draw_actor_level(@actor, 80, 0)
draw_actor_state(@actor, 300, 0)
draw_slant_bar(x + 43, y + 58, @actor.hp, @actor.maxhp, 65, 6, bar_color = Color.new(200, 200, 255, 255), end_color = Color.new(24, 68, 196, 255))
draw_slant_bar(x + 43, y + 88, @actor.sp, @actor.maxsp, 65, 6, bar_color = Color.new(245, 216, 223, 255), end_color = Color.new(188, 2, 218, 255))
draw_slant_bar(x + 205, y + 58, @actor.exp_s.to_i, @actor.next_exp_s.to_i, 130, 6, bar_color = Color.new(130, 255, 130, 255), end_color = Color.new(70, 255, 70, 255))
draw_actor_hp(@actor, 4, 42, 144)
draw_actor_sp(@actor, 4, 72, 144)
draw_slant_bar(x + 95, y + 136, @actor.atk, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(255, 50, 50, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 4, 120, 0)
draw_slant_bar(x + 95, y + 156, @actor.pdef, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(50, 255, 50, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 4, 140, 1)
draw_slant_bar(x + 95, y + 176, @actor.mdef, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(50, 50, 255, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 4, 160, 2)
draw_slant_bar(x + 281, y + 136, @actor.str, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(255, 50, 50, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 190, 120, 3)
draw_slant_bar(x + 281, y + 156, @actor.dex, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(255, 128, 0, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 190, 140, 4)
draw_slant_bar(x + 281, y + 176, @actor.agi, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(50, 255, 50, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 190, 160, 5)
draw_slant_bar(x + 281, y + 196, @actor.int, FYRECUSTOMSTATUS::ST_MAX, 80, 6, bar_color = Color.new(50, 50, 255, 255), end_color = Color.new(196, 24, 68, 255))
draw_actor_parameter(@actor, 190, 180, 6)
draw_actor_bio(@actor, 5, 200)
self.contents.font.color = system_color
self.contents.draw_text(165, 42, 80, 32, "Exp.")
self.contents.font.color = normal_color
self.contents.draw_text(165, 42, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(165 + 35, 42, 84, 32, "/", 2)
self.contents.draw_text(165 + 82, 42, 84, 32, @actor.next_exp_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(320, 160, 96, 32, "equipment")
draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)
draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)
draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)
draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)
draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)
end
def dummy
self.contents.font.color = system_color
self.contents.draw_text(320, 112, 96, 32, $data_system.words.weapon)
self.contents.draw_text(320, 176, 96, 32, $data_system.words.armor1)
self.contents.draw_text(320, 240, 96, 32, $data_system.words.armor2)
self.contents.draw_text(320, 304, 96, 32, $data_system.words.armor3)
self.contents.draw_text(320, 368, 96, 32, $data_system.words.armor4)
draw_item_name($data_weapons[@actor.weapon_id], 320 + 24, 144)
draw_item_name($data_armors[@actor.armor1_id], 320 + 24, 208)
draw_item_name($data_armors[@actor.armor2_id], 320 + 24, 272)
draw_item_name($data_armors[@actor.armor3_id], 320 + 24, 336)
draw_item_name($data_armors[@actor.armor4_id], 320 + 24, 400)
end
end
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
# This class performs status screen processing.
#==============================================================================
class Scene_Status
#--------------------------------------------------------------------------
# * Object Initialization
# actor_index : actor index
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Get actor
@actor = $game_party.actors[@actor_index]
# Make status window
@status_window = Window_Status.new(@actor)
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@status_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to menu screen
$scene = Scene_Menu.new(3)
return
end
# If R button was pressed
if Input.trigger?(Input::RIGHT)
# Play cursor SE
$game_system.se_play($data_system.cursor_se)
# To next actor
@actor_index += 1
@actor_index %= $game_party.actors.size
# Switch to different status screen
$scene = Scene_Status.new(@actor_index)
return
end
# If L button was pressed
if Input.trigger?(Input::LEFT)
# Play cursor SE
$game_system.se_play($data_system.cursor_se)
# To previous actor
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
# Switch to different status screen
$scene = Scene_Status.new(@actor_index)
return
end
end
end
and a slightly edited Guillaumme777's Equipment script. (Really long...)
Too long, attached it instead.
The error is stated to be on line 757 of the status menu script. The line reads
@status_window = Window_Status.new(@actor)
and yeah, that goes into Window_Status... Which heads somewhere else. Both scripts work completely fine on their own.
If you need more information, I'll gladly provide it. Thanks in advance.