EDIT: Half a year later and I found the solution to these two scripts coexisting. (randomly got bored of school and started up the RMXP from my old laptop only to remember why I quit - so I fiddled with the codes for a few hours before I figured it out).
Solution for those with similar problems:
Guillaume777's equip script edits the Window_Status script. Solution was as easy as deleting from Guillame's script the code that changes Window_Status. This way, Fyre's Status Window script (which reads from the original Window_Status) isn't screwed over by incompatible factors. Oh - but Fyre's script will not display correct equips if you do this - on the other hand though, why do you need equips on the status screen when you have them on the equipment screen? Just delete the stuff from Fyre's script about equipment. Irritatingly - I only thought of this randomly =.=;;; It wasn't even trial and error - I just read the code and started laughing about how idiotic I was half a year ago. *sighs*
original post:
Reposting because I got no response elsewhere. 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.