Scene_Biography
Author: Bigace360
Type: Misc
Author: Bigace360
Type: Misc
--------------------------------------------------------------------------------
Introduction
This is a script that calls a window that displays different aspects about a character... like their age, height, gender etc. These can be changed though. This script is free to use and edit as long as credit is given to me.
--------------------------------------------------------------------------------
Feature
Shows actors characteristic stats and battler image or imported image.
--------------------------------------------------------------------------------
Instructions
Insert this script above main, and call it Scene_Biography. Everything is in the module so there's no need to go any further down unless you know what your doing. Also as default, the script uses the battlers set in the database unless you place a image in the picture folder and place _P at the end of the files name.
--------------------------------------------------------------------------------
Screenshot

--------------------------------------------------------------------------------
Demo
Not need
script
CODE
###############################################################################
# CUSTOM Biography SCENE #
###############################################################################
# ** ACE Biography v1.0 ** #
# Author: Bigace360 #
# Date: Dec. 7, 2011 #
###############################################################################
# To call the Biography Menu
# $scene = Scene_Biography.new(@status_window.index)
#------------------------------------------------------------------------------
# v1.0 Dec. 7, 2011
# ~ Initial Release
#
# ~Classes~
# ** Module ACE
# ** Window_Base
# ** Window_Biography
# ** Window_Face
# ** Scene_Biography
###############################################################################
# ** ACE Module #
###############################################################################
module ACE #Customization Begins
###############################################################################
# [X, Y, Suffix for portrait graphics]
PORTRAIT = [300, 545, "_P"] #If the image isn't found in the folder
#then the script will use the batter image.
# [Font size, Font Type, Actor Bio window X, Y]
ACTOR = [16, 'Verdana', 0, 0]
# [History X, History Y, Biography X, Biography Y]
BIO = [0, 120, 220, -180]
#-----------------------------------------------------------------
# DO NOT TOUCH THIS LINE
constants = ["LAST_NAMES", "AGE", "GENDER", "RACE", "HEIGHT", "WEAPON", "FROM",
"SPECIALTY", "HISTORY", "BIOGRAPHY"]
for i in 0...constants.size
eval(constants[i] + " = []")
end
# DO NOT TOUCH THIS LINE
#-----------------------------
# Configure Each actor's last name below.
# SYNTAX:
# LAST_NAMES[actor_id] = "Last Name"
# actor_id being the actor's ID in the database
# "Last Name" being the last name you wish to give the actor.
# Note: You can set a default last name if you'd like, by setting
# the actor ID to 0 ( LAST_NAMES[0] = "" ). This goes the same for all the
# other settings as well (ex. age, gender, race, etc...)
# Default Settings
LAST_NAMES[0] = ""
AGE[0] = ""
GENDER[0] = ""
RACE[0] = ""
HEIGHT[0] = ""
WEAPON[0] = ""
FROM[0] = ""
SPECIALTY[0] = ""
HISTORY[0] = ""
BIOGRAPHY[0] = ""
# Actor Settings
LAST_NAMES[1] = "Smith"
LAST_NAMES[2] = "Doe"
LAST_NAMES[3] = "Ray"
LAST_NAMES[4] = "Griffen"
LAST_NAMES[5] = "Green"
LAST_NAMES[6] = "Clarke"
LAST_NAMES[7] = "Clarke"
LAST_NAMES[8] = "May"
AGE[1] = "19"
AGE[2] = "25"
AGE[3] = "21"
AGE[4] = "19"
AGE[5] = "16"
AGE[6] = "20"
AGE[7] = "18"
AGE[8] = "16"
GENDER[1] = "Male"
GENDER[2] = "Male"
GENDER[3] = "Male"
GENDER[4] = "Female"
GENDER[5] = "Female"
GENDER[6] = "Male"
GENDER[7] = "Female"
GENDER[8] = "Female"
RACE[1] = "Human"
RACE[2] = "Human"
RACE[3] = "Human"
RACE[4] = "Human"
RACE[5] = "Elf"
RACE[6] = "Human"
RACE[7] = "Human"
RACE[8] = "Human"
HEIGHT[1] = "5'8"
HEIGHT[2] = "5'9"
HEIGHT[3] = "6'"
HEIGHT[4] = "5'7"
HEIGHT[5] = "5'7"
HEIGHT[6] = "5'8"
HEIGHT[7] = "5'7"
HEIGHT[8] = "5'4"
WEAPON[1] = "Swords"
WEAPON[2] = "Spears"
WEAPON[3] = "Axes"
WEAPON[4] = "Knives"
WEAPON[5] = "Great Bows"
WEAPON[6] = "Guns"
WEAPON[7] = "Wands"
WEAPON[8] = "Staffs"
FROM[1] = "England"
FROM[2] = "America"
FROM[3] = "New Zealand"
FROM[4] = "Canada"
FROM[5] = "Ireland"
FROM[6] = "France"
FROM[7] = "Germany"
FROM[8] = "Berlin"
SPECIALTY[1] = "Swordplay"
SPECIALTY[2] = "Lanceplay"
SPECIALTY[3] = "Axeplay"
SPECIALTY[4] = "Robbery"
SPECIALTY[5] = "Archery"
SPECIALTY[6] = "Gunnery"
SPECIALTY[7] = "White magic"
SPECIALTY[8] = "Black Magic"
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# Actor DESCRIPTION CONFIG
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# HISTORY[ID] = ['This is an actors history description',
# 'Text in different lines must be separated',
# 'by comas']
#
# BIOGRAPHY[ID] = ['This is an actors biography description',
# 'Text in different lines must be separated',
# 'by comas']
#
HISTORY[1] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[2] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[3] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[4] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[5] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[6] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[7] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[8] = ['This is an actors history description text in different lines must be separated by comas']
#---------------------------Biography------------------------------
BIOGRAPHY[1] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[2] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[3] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[4] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[5] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[6] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[7] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[8] = ['This is an actors biography description text in different',
'lines must be separated by comas']
###############################################################################
end #Customization Ends
###############################################################################
#=============================================================================#
$acescript = {} if $acescript == nil #
$acescript["Biography"] = true #
###############################################################################
#==============================================================================
# ** Window_Base
#==============================================================================
class Window_Base
include ACE
def color_black; return Color.new(0, 0, 0, 255); end
def draw_text_outline(x, y, width, height, string, alignment = 0)
self.contents.font.color = color_black
self.contents.draw_text(x - 1, y - 1, width, height, string, alignment)
self.contents.draw_text(x + 1, y - 1, width, height, string, alignment)
self.contents.draw_text(x + 1, y + 1, width, height, string, alignment)
self.contents.draw_text(x - 1, y + 1, width, height, string, alignment)
end
def biog_color; return Color.new(0, 255, 160); end
def draw_actor_class_bio(actor, x, y)
draw_text_outline(x, y, 236, 32, "Class: " + actor.class_name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 236, 32, "Class: " + actor.class_name)
end
def draw_actor_name_full(actor, x, y)
name = actor.name
last = LAST_NAMES[actor.id] || LAST_NAMES[0]
draw_text_outline(x, y, 320, 32, "Name: " + name + " " + last)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Name: " + name + " " + last)
end
def draw_actor_age(actor, x, y)
age = AGE[actor.id] || AGE[0]
draw_text_outline(x, y, 320, 32, "Age: " + age)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Age: " + age)
end
def draw_actor_gender(actor, x, y)
gender = GENDER[actor.id] || GENDER[0]
draw_text_outline(x, y, 320, 32, "Gender: " + gender)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Gender: " + gender)
end
def draw_actor_race(actor, x, y)
race = RACE[actor.id] || RACE[0]
draw_text_outline(x, y, 320, 32, "Race: " + race)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Race: " + race)
end
def draw_actor_height(actor, x, y)
height = HEIGHT[actor.id] || HEIGHT[0]
draw_text_outline(x, y, 320, 32, "Height: " + height)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Height: " + height)
end
def draw_actor_weapons(actor, x, y)
weapons = WEAPON[actor.id] || WEAPON[0]
draw_text_outline(x, y, 320, 32, "Weapons: " + weapons)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Weapons: " + weapons)
end
def draw_actor_from(actor, x, y)
from = FROM[actor.id] || FROM[0]
draw_text_outline(x, y, 320, 32, "From: " + from)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "From: " + from)
end
def draw_actor_specialty(actor, x, y)
specialty = SPECIALTY[actor.id] || SPECIALTY[0]
draw_text_outline(x, y, 320, 32, "Specialty: " + specialty)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Specialty: " + specialty)
end
def draw_actor_history(actor, x, y)
info = (HISTORY[actor.id] || HISTORY[0]).to_a
name = actor.name
height = self.contents.height
draw_text_outline(x, 190 + BIO[1], 320, 32, name + " " + "'s History: ")
self.contents.font.color = normal_color
self.contents.draw_text(x, 190 + BIO[1], 320, 32, name + " " + "'s History: ")
for i in 0...info.size
text = info[i]
draw_text_outline(x, i * 32 + BIO[1], self.contents.width, height, text)
self.contents.font.color = normal_color
self.contents.draw_text(x, i * 32 + BIO[1], self.contents.width, height, text)
end
end
def draw_actor_biography(actor, x, y)
info = (BIOGRAPHY[actor.id] || BIOGRAPHY[0]).to_a
name = actor.name
height = self.contents.height
draw_text_outline(x, y + 190, 320, 32, name + " " + "'s Biography: ")
self.contents.font.color = normal_color
self.contents.draw_text(x, y + 190, 320, 32, name + " " + "'s Biography: ")
for i in 0...info.size
text = info[i]
draw_text_outline(x, i * 32 + y, self.contents.width, height, text)
self.contents.font.color = normal_color
self.contents.draw_text(x, i * 32 + y, self.contents.width, height, text)
end
end
def nada(actor); face = RPG::Cache.battler(actor.battler_name, actor.battler_hue); end
def draw_heroface(actor,x,y)
face = RPG::Cache.picture(actor.name + PORTRAIT[2]) rescue nada(actor)
cw, ch = face.width, face.height
src_rect = Rect.new(0, 0, cw, ch)
if face == RPG::Cache.battler(actor.battler_name, actor.battler_hue)
self.contents.blt(x + 40 , y - ch - 240, face, src_rect)
else
self.contents.blt(x , y - ch, face, src_rect)
end
end
end
#==============================================================================
# ** Window_Biography
#==============================================================================
class Window_Biography < Window_Base
include ACE
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name, self.contents.font.size = ACTOR[1], ACTOR[0]
@actor, self.opacity = actor, 255
refresh
end
def refresh
x2, y2 = ACTOR[2], ACTOR[3]
draw_actor_name_full(@actor, x2, y2)
draw_actor_class_bio(@actor, x2, y2 + 32)
draw_actor_age(@actor, x2, y2 + 64)
draw_actor_gender(@actor, x2, y2 + 96)
draw_actor_race(@actor, x2, y2 + 128)
draw_actor_height(@actor, x2, y2 + 160)
draw_actor_weapons(@actor, x2, y2 + 192)
draw_actor_from(@actor, x2, y2 + 224)
draw_actor_specialty(@actor, x2, y2 + 256)
draw_actor_history(@actor, BIO[0], y)
draw_actor_biography(@actor, BIO[2], BIO[3])
end
end
#==============================================================================
# ** Window_Face
#==============================================================================
class Window_Face < Window_Base
def initialize(actor)
super(0, -20, 600, 520)
self.contents = Bitmap.new(width - 32, height - 32)
@actor, self.opacity, self.contents_opacity, self.z = actor, 0, 140, 99
refresh
end
def refresh
self.contents.clear
draw_heroface(@actor, PORTRAIT[0], PORTRAIT[1])
end
end
#==============================================================================
# ** Scene_Biography
#==============================================================================
class Scene_Biography
def initialize(actor_index = 0); @actor_index = actor_index; end
def main
@actor = $game_party.actors[@actor_index]
@status_face, @biog_window = Window_Face.new(@actor), Window_Biography.new(@actor)
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.freeze
@biog_window.dispose
@status_face.dispose
end
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(3)
return
elsif Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Biography.new(@actor_index)
return
elsif Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Biography.new(@actor_index)
return
end
end
end
# CUSTOM Biography SCENE #
###############################################################################
# ** ACE Biography v1.0 ** #
# Author: Bigace360 #
# Date: Dec. 7, 2011 #
###############################################################################
# To call the Biography Menu
# $scene = Scene_Biography.new(@status_window.index)
#------------------------------------------------------------------------------
# v1.0 Dec. 7, 2011
# ~ Initial Release
#
# ~Classes~
# ** Module ACE
# ** Window_Base
# ** Window_Biography
# ** Window_Face
# ** Scene_Biography
###############################################################################
# ** ACE Module #
###############################################################################
module ACE #Customization Begins
###############################################################################
# [X, Y, Suffix for portrait graphics]
PORTRAIT = [300, 545, "_P"] #If the image isn't found in the folder
#then the script will use the batter image.
# [Font size, Font Type, Actor Bio window X, Y]
ACTOR = [16, 'Verdana', 0, 0]
# [History X, History Y, Biography X, Biography Y]
BIO = [0, 120, 220, -180]
#-----------------------------------------------------------------
# DO NOT TOUCH THIS LINE
constants = ["LAST_NAMES", "AGE", "GENDER", "RACE", "HEIGHT", "WEAPON", "FROM",
"SPECIALTY", "HISTORY", "BIOGRAPHY"]
for i in 0...constants.size
eval(constants[i] + " = []")
end
# DO NOT TOUCH THIS LINE
#-----------------------------
# Configure Each actor's last name below.
# SYNTAX:
# LAST_NAMES[actor_id] = "Last Name"
# actor_id being the actor's ID in the database
# "Last Name" being the last name you wish to give the actor.
# Note: You can set a default last name if you'd like, by setting
# the actor ID to 0 ( LAST_NAMES[0] = "" ). This goes the same for all the
# other settings as well (ex. age, gender, race, etc...)
# Default Settings
LAST_NAMES[0] = ""
AGE[0] = ""
GENDER[0] = ""
RACE[0] = ""
HEIGHT[0] = ""
WEAPON[0] = ""
FROM[0] = ""
SPECIALTY[0] = ""
HISTORY[0] = ""
BIOGRAPHY[0] = ""
# Actor Settings
LAST_NAMES[1] = "Smith"
LAST_NAMES[2] = "Doe"
LAST_NAMES[3] = "Ray"
LAST_NAMES[4] = "Griffen"
LAST_NAMES[5] = "Green"
LAST_NAMES[6] = "Clarke"
LAST_NAMES[7] = "Clarke"
LAST_NAMES[8] = "May"
AGE[1] = "19"
AGE[2] = "25"
AGE[3] = "21"
AGE[4] = "19"
AGE[5] = "16"
AGE[6] = "20"
AGE[7] = "18"
AGE[8] = "16"
GENDER[1] = "Male"
GENDER[2] = "Male"
GENDER[3] = "Male"
GENDER[4] = "Female"
GENDER[5] = "Female"
GENDER[6] = "Male"
GENDER[7] = "Female"
GENDER[8] = "Female"
RACE[1] = "Human"
RACE[2] = "Human"
RACE[3] = "Human"
RACE[4] = "Human"
RACE[5] = "Elf"
RACE[6] = "Human"
RACE[7] = "Human"
RACE[8] = "Human"
HEIGHT[1] = "5'8"
HEIGHT[2] = "5'9"
HEIGHT[3] = "6'"
HEIGHT[4] = "5'7"
HEIGHT[5] = "5'7"
HEIGHT[6] = "5'8"
HEIGHT[7] = "5'7"
HEIGHT[8] = "5'4"
WEAPON[1] = "Swords"
WEAPON[2] = "Spears"
WEAPON[3] = "Axes"
WEAPON[4] = "Knives"
WEAPON[5] = "Great Bows"
WEAPON[6] = "Guns"
WEAPON[7] = "Wands"
WEAPON[8] = "Staffs"
FROM[1] = "England"
FROM[2] = "America"
FROM[3] = "New Zealand"
FROM[4] = "Canada"
FROM[5] = "Ireland"
FROM[6] = "France"
FROM[7] = "Germany"
FROM[8] = "Berlin"
SPECIALTY[1] = "Swordplay"
SPECIALTY[2] = "Lanceplay"
SPECIALTY[3] = "Axeplay"
SPECIALTY[4] = "Robbery"
SPECIALTY[5] = "Archery"
SPECIALTY[6] = "Gunnery"
SPECIALTY[7] = "White magic"
SPECIALTY[8] = "Black Magic"
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# Actor DESCRIPTION CONFIG
#¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
# HISTORY[ID] = ['This is an actors history description',
# 'Text in different lines must be separated',
# 'by comas']
#
# BIOGRAPHY[ID] = ['This is an actors biography description',
# 'Text in different lines must be separated',
# 'by comas']
#
HISTORY[1] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[2] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[3] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[4] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[5] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[6] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[7] = ['This is an actors history description text in different lines must be separated by comas']
HISTORY[8] = ['This is an actors history description text in different lines must be separated by comas']
#---------------------------Biography------------------------------
BIOGRAPHY[1] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[2] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[3] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[4] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[5] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[6] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[7] = ['This is an actors biography description text in different',
'lines must be separated by comas']
BIOGRAPHY[8] = ['This is an actors biography description text in different',
'lines must be separated by comas']
###############################################################################
end #Customization Ends
###############################################################################
#=============================================================================#
$acescript = {} if $acescript == nil #
$acescript["Biography"] = true #
###############################################################################
#==============================================================================
# ** Window_Base
#==============================================================================
class Window_Base
include ACE
def color_black; return Color.new(0, 0, 0, 255); end
def draw_text_outline(x, y, width, height, string, alignment = 0)
self.contents.font.color = color_black
self.contents.draw_text(x - 1, y - 1, width, height, string, alignment)
self.contents.draw_text(x + 1, y - 1, width, height, string, alignment)
self.contents.draw_text(x + 1, y + 1, width, height, string, alignment)
self.contents.draw_text(x - 1, y + 1, width, height, string, alignment)
end
def biog_color; return Color.new(0, 255, 160); end
def draw_actor_class_bio(actor, x, y)
draw_text_outline(x, y, 236, 32, "Class: " + actor.class_name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 236, 32, "Class: " + actor.class_name)
end
def draw_actor_name_full(actor, x, y)
name = actor.name
last = LAST_NAMES[actor.id] || LAST_NAMES[0]
draw_text_outline(x, y, 320, 32, "Name: " + name + " " + last)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Name: " + name + " " + last)
end
def draw_actor_age(actor, x, y)
age = AGE[actor.id] || AGE[0]
draw_text_outline(x, y, 320, 32, "Age: " + age)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Age: " + age)
end
def draw_actor_gender(actor, x, y)
gender = GENDER[actor.id] || GENDER[0]
draw_text_outline(x, y, 320, 32, "Gender: " + gender)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Gender: " + gender)
end
def draw_actor_race(actor, x, y)
race = RACE[actor.id] || RACE[0]
draw_text_outline(x, y, 320, 32, "Race: " + race)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Race: " + race)
end
def draw_actor_height(actor, x, y)
height = HEIGHT[actor.id] || HEIGHT[0]
draw_text_outline(x, y, 320, 32, "Height: " + height)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Height: " + height)
end
def draw_actor_weapons(actor, x, y)
weapons = WEAPON[actor.id] || WEAPON[0]
draw_text_outline(x, y, 320, 32, "Weapons: " + weapons)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Weapons: " + weapons)
end
def draw_actor_from(actor, x, y)
from = FROM[actor.id] || FROM[0]
draw_text_outline(x, y, 320, 32, "From: " + from)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "From: " + from)
end
def draw_actor_specialty(actor, x, y)
specialty = SPECIALTY[actor.id] || SPECIALTY[0]
draw_text_outline(x, y, 320, 32, "Specialty: " + specialty)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 320, 32, "Specialty: " + specialty)
end
def draw_actor_history(actor, x, y)
info = (HISTORY[actor.id] || HISTORY[0]).to_a
name = actor.name
height = self.contents.height
draw_text_outline(x, 190 + BIO[1], 320, 32, name + " " + "'s History: ")
self.contents.font.color = normal_color
self.contents.draw_text(x, 190 + BIO[1], 320, 32, name + " " + "'s History: ")
for i in 0...info.size
text = info[i]
draw_text_outline(x, i * 32 + BIO[1], self.contents.width, height, text)
self.contents.font.color = normal_color
self.contents.draw_text(x, i * 32 + BIO[1], self.contents.width, height, text)
end
end
def draw_actor_biography(actor, x, y)
info = (BIOGRAPHY[actor.id] || BIOGRAPHY[0]).to_a
name = actor.name
height = self.contents.height
draw_text_outline(x, y + 190, 320, 32, name + " " + "'s Biography: ")
self.contents.font.color = normal_color
self.contents.draw_text(x, y + 190, 320, 32, name + " " + "'s Biography: ")
for i in 0...info.size
text = info[i]
draw_text_outline(x, i * 32 + y, self.contents.width, height, text)
self.contents.font.color = normal_color
self.contents.draw_text(x, i * 32 + y, self.contents.width, height, text)
end
end
def nada(actor); face = RPG::Cache.battler(actor.battler_name, actor.battler_hue); end
def draw_heroface(actor,x,y)
face = RPG::Cache.picture(actor.name + PORTRAIT[2]) rescue nada(actor)
cw, ch = face.width, face.height
src_rect = Rect.new(0, 0, cw, ch)
if face == RPG::Cache.battler(actor.battler_name, actor.battler_hue)
self.contents.blt(x + 40 , y - ch - 240, face, src_rect)
else
self.contents.blt(x , y - ch, face, src_rect)
end
end
end
#==============================================================================
# ** Window_Biography
#==============================================================================
class Window_Biography < Window_Base
include ACE
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name, self.contents.font.size = ACTOR[1], ACTOR[0]
@actor, self.opacity = actor, 255
refresh
end
def refresh
x2, y2 = ACTOR[2], ACTOR[3]
draw_actor_name_full(@actor, x2, y2)
draw_actor_class_bio(@actor, x2, y2 + 32)
draw_actor_age(@actor, x2, y2 + 64)
draw_actor_gender(@actor, x2, y2 + 96)
draw_actor_race(@actor, x2, y2 + 128)
draw_actor_height(@actor, x2, y2 + 160)
draw_actor_weapons(@actor, x2, y2 + 192)
draw_actor_from(@actor, x2, y2 + 224)
draw_actor_specialty(@actor, x2, y2 + 256)
draw_actor_history(@actor, BIO[0], y)
draw_actor_biography(@actor, BIO[2], BIO[3])
end
end
#==============================================================================
# ** Window_Face
#==============================================================================
class Window_Face < Window_Base
def initialize(actor)
super(0, -20, 600, 520)
self.contents = Bitmap.new(width - 32, height - 32)
@actor, self.opacity, self.contents_opacity, self.z = actor, 0, 140, 99
refresh
end
def refresh
self.contents.clear
draw_heroface(@actor, PORTRAIT[0], PORTRAIT[1])
end
end
#==============================================================================
# ** Scene_Biography
#==============================================================================
class Scene_Biography
def initialize(actor_index = 0); @actor_index = actor_index; end
def main
@actor = $game_party.actors[@actor_index]
@status_face, @biog_window = Window_Face.new(@actor), Window_Biography.new(@actor)
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.freeze
@biog_window.dispose
@status_face.dispose
end
def update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(3)
return
elsif Input.trigger?(Input::R)
$game_system.se_play($data_system.cursor_se)
@actor_index += 1
@actor_index %= $game_party.actors.size
$scene = Scene_Biography.new(@actor_index)
return
elsif Input.trigger?(Input::L)
$game_system.se_play($data_system.cursor_se)
@actor_index += $game_party.actors.size - 1
@actor_index %= $game_party.actors.size
$scene = Scene_Biography.new(@actor_index)
return
end
end
end
--------------------------------------------------------------------------------
Compatibility
No known issues.
--------------------------------------------------------------------------------
Credits and Thanks
•Bigace360, for the script
•Night_Runner, for helping figure out an error with the History/Bio paragraphs.
--------------------------------------------------------------------------------
Author's Notes
Enjoy!
