Vampire : The Masquerade Character Sheet
Version: 2.0
By: LudicusMaximus aka Ludicus
Introduction
Remember those pen'n'paper RPG games,where every character had all his abilities written on a sheet of paper?This is what this Status Scene emulates,but with Vampire:The Masquerade stats.It can be easily modified.
This is currently only for 3 actors,but it can be easily modified with a little scripting knowledge.
Demo
Screenshots
Script
Instructions
Version: 2.0
By: LudicusMaximus aka Ludicus
Introduction
Remember those pen'n'paper RPG games,where every character had all his abilities written on a sheet of paper?This is what this Status Scene emulates,but with Vampire:The Masquerade stats.It can be easily modified.
This is currently only for 3 actors,but it can be easily modified with a little scripting knowledge.
Demo
Screenshots


Code:
#============================================================================
# ** (V:TM)Character Sheet
#----------------------------------------------------------------------------
# by Ludicus Maximus aka Ludicus aka Qwerty234
# Version 1.0
# 16 June 2009
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
#
#----------------------------------------------------------------------------
# Notes:
#
# -Is obviously not compatible with other Custom Stat Scenes,but can be probably
# worked around.
# -The script needs minor scripting knowledges to be properly set up (if you
# don't want an Vampire:The Masquerade Character Sheet, use more than 3
# actors or want other stats)
#----------------------------------------------------------------------------
#
# Credits and Thanks:
#
# -God,for creating life
# -White Wolf
# -Me,aka Ludicus Maximus/Ludicus/Qwerty234.
# -Ccoa,for her window tutorial,and the defaul scripts,which taught me basically
# all I know about RGSS.
#----------------------------------------------------------------------------
#Please give credit to me when using this script,preferably as Ludicus Maximus
#----------------------------------------------------------------------------
#========================================
#Adds more methods in Window_Base
#========================================
class Window_Base
#This will obviously draw the item name,but without the icon,is used in
# Equip_Window
def draw_item_name_only(item, x, y)
if item == nil
return
end
self.contents.font.color = crisis_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
self.contents.font.color = normal_color
end
#This will draw an face,is used in Sprite_Window
def draw_actor_face(actor, x, y)
bitmap = RPG::Cache.picture("Face/" + actor.character_name)
self.contents.blt(x, y, bitmap, Rect.new(0,0,96,96))
end
end
#==============================================================================
# ** Actor_Info
#------------------------------------------------------------------------------
# This window displays the actor's info (name, clan(class), generation
#(a variable)
#==============================================================================
class Actor_Info < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
# class : class
# generation
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 156, 130)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "Name: ")
draw_actor_name(@actor, 57,0)
self.contents.draw_text(0, 36, 50, 32, "Clan: ")
draw_actor_class(@actor, 56,36)
self.contents.draw_text(0, 72, 50, 32, "Gen: ")
#=================================================
# START GENERATION EDIT
#=================================================
if @actor.index == 0 #if actor index is 1,aka the first actor in the database
self.contents.draw_text(56, 72, 50, 32, $game_variables[1].to_s)
elsif @actor.index == 1 # if actor index is 2
self.contents.draw_text(56, 72, 50, 32, $game_variables[2].to_s)
elsif @actor.index == 3 #If actor index is 3
self.contents.draw_text(56, 72, 50, 32, $game_variables[3].to_s)
#And so on and so on...
#Copy-paste if you need more actors.
end #if
end #def
#================================
# END NAME WINDOW
#================================
end #class
#==============================================================================
# ** Physical_Window
#------------------------------------------------------------------------------
# This window displays physical stats (strength,dexterity,stamina)
#==============================================================================
class Physical_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 60, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "STR: ")
self.contents.draw_text(0, 22, 50, 32, "DEX: ")
self.contents.draw_text(0, 44, 50, 32, "STA: ")
#Insert in the brackets the variable for each actor's STR
@str_a1 = $game_variables [4] # <- for actor 1's strength it's variable 4
@str_a2 = $game_variables [5]
@str_a3 = $game_variables [6]
if @actor.index == 0
self.contents.draw_text(52, 0, 50, 32, @str_a1.to_s)
self.contents.font.color = normal_color
elsif @actor.index == 1
self.contents.draw_text(52, 0, 50, 32, @str_a2.to_s)
self.contents.font.color = normal_color
elsif @actor.index == 2
self.contents.draw_text(52, 0, 50, 32, @str_a3.to_s)
self.contents.font.color = normal_color
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's STR
@dex_a1 = $game_variables [7] # <- for actor 1's dexterity it's variable 7
@dex_a2 = $game_variables [8]
@dex_a3 = $game_variables [9]
if @actor.index == 0
self.contents.draw_text(52, 22, 50, 32, @dex_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 22, 50, 32, @dex_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 22, 50, 32, @dex_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's STA
@sta_a1 = $game_variables [10] # <- for actor 1's stamina it's variable 10
@sta_a2 = $game_variables [11]
@sta_a3 = $game_variables [12]
if @actor.index == 0
self.contents.draw_text(52, 44, 50, 32, @sta_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 44, 50, 32, @sta_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 44, 50, 32, @sta_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Social_Window
#------------------------------------------------------------------------------
# This window displays social stats (charisma,manipulation,appearance)
#==============================================================================
class Social_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 123, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "CHA: ")
self.contents.draw_text(0, 22, 50, 32, "MAN: ")
self.contents.draw_text(0, 44, 50, 32, "APP: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Insert in the brackets the variable for each actor's CHA
@cha_a1 = $game_variables [13] # <- for actor 1's charisma it's variable 13
@cha_a2 = $game_variables [14]
@cha_a3 = $game_variables [15]
if @actor.index == 0
self.contents.draw_text(52, 0, 50, 32, @cha_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 0, 50, 32, @cha_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 0, 50, 32, @cha_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's MAN
@man_a1 = $game_variables [16] # <- for actor 1's manipulation it's variable 16
@man_a2 = $game_variables [17]
@man_a3 = $game_variables [18]
if @actor.index == 0
self.contents.draw_text(52, 22, 50, 32, @man_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 22, 50, 32, @man_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 22, 50, 32, @man_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's APP
@app_a1 = $game_variables [19] # <- for actor 1's appearance it's variable 19
@app_a2 = $game_variables [20]
@app_a3 = $game_variables [21]
if @actor.index == 0
self.contents.draw_text(52, 44, 50, 32, @app_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 44, 50, 32, @app_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 44, 50, 32, @app_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Mental_Window
#------------------------------------------------------------------------------
# This window displays mental stats (perception,intelligence,wits)
#==============================================================================
class Mental_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 173, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "PER: ")
self.contents.draw_text(0, 22, 50, 32, "INT: ")
self.contents.draw_text(0, 44, 50, 32, "WTS: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Insert in the brackets the variable for each actor's PER
@per_a1 = $game_variables [22] # <- for actor 1's perception it's variable 22
@per_a2 = $game_variables [23]
@per_a3 = $game_variables [24]
if @actor.index == 0
self.contents.draw_text(52, 0, 50, 32, @per_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 0, 50, 32, @per_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 0, 50, 32, @per_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's INT
@int_a1 = $game_variables [25] # <- for actor 1's intelligence it's variable 25
@int_a2 = $game_variables [26]
@int_a3 = $game_variables [27]
if @actor.index == 0
self.contents.draw_text(52, 22, 50, 32, @int_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 22, 50, 32, @int_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 22, 50, 32, @int_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's WTS
@wts_a1 = $game_variables [28] # <- for actor 1's wits it's variable 28
@wts_a2 = $game_variables [29]
@wts_a3 = $game_variables [30]
if @actor.index == 0
self.contents.draw_text(52, 44, 50, 32, @wts_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(52, 44, 50, 32, @wts_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(52, 44, 50, 32, @wts_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Humanity_Window
#------------------------------------------------------------------------------
# This window displays the Humanity stat
#==============================================================================
class Humanity_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(426, 0, 156, 55)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 80, 24, "Humanity: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
#Insert in the brackets the variable for each actor's hum
@hum_a1 = $game_variables [31] # <- for actor 1's humanity it's variable 31
@hum_a2 = $game_variables [32]
@hum_a3 = $game_variables [33]
if @actor.index == 0
self.contents.draw_text(70, 0, 50, 25, @hum_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(70, 0, 50, 25, @hum_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(70, 0, 50, 25, @hum_a3.to_s)
end
self.contents.font.color = disabled_color
self.contents.draw_text(90, 0, 50, 25, '/10')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Abilities_Header
#------------------------------------------------------------------------------
# This window is a header for everything in the right part of the screen
#==============================================================================
class Abilities_Header < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize()
super(152, 0, 487, 55)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(193, 0, 150, 24, "ABILITIES")
end
end
#==============================================================================
# ** Talents_Header
#------------------------------------------------------------------------------
# This window is a header for the Talents Window
#==============================================================================
class Talents_Header < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize()
super(142, 38, 170, 89)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(15, 15, 150, 24, "TALENTS")
end
end
#==============================================================================
# ** Skills_Header
#------------------------------------------------------------------------------
# This window is a header for the Skills Window
#==============================================================================
class Skills_Header < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize()
super(182, 208, 170, 89)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(18, 15, 150, 24, "SKILLS")
end
end
#==============================================================================
# ** Knowledges_Header
#------------------------------------------------------------------------------
# This window is a header for the Knowledges window
#==============================================================================
class Knowledges_Header < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize()
super(322, 278, 148, 89)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, 15, 120, 24, "KNOWLEDGES")
end
end
#==============================================================================
# ** Talents_Window
#------------------------------------------------------------------------------
# This window displays the actor's Talents stats (strength,dexterity,stamina)
#==============================================================================
class Talents_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(155, 142, 170, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 65, 32, "Alertness: ")
self.contents.draw_text(0, 22, 60, 32, "Brawl: ")
self.contents.draw_text(0, 44, 60, 32, "Dodge: ")
self.contents.draw_text(0, 66, 70, 32, "Expression: ")
self.contents.draw_text(0, 88, 75, 32, "Intimidation: ")
self.contents.draw_text(0, 110, 75, 32, "Subterfuge: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
@alrt_a1 = $game_variables [34] # <- for actor 1's alertness it's variable 34
@alrt_a2 = $game_variables [35]
@alrt_a3 = $game_variables [36]
if @actor.index == 0
self.contents.draw_text(72, 0, 50, 32, @alrt_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 0, 50, 32, @alrt_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 0, 50, 32, @alrt_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(92, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's Brawl
@brw_a1 = $game_variables [37] # <- for actor 1's brawl it's variable 37
@brw_a2 = $game_variables [38]
@brw_a3 = $game_variables [39]
if @actor.index == 0
self.contents.draw_text(72, 22, 50, 32, @brw_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 22, 50, 32, @brw_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 22, 50, 32, @brw_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(92, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's dodge
@ddg_a1 = $game_variables [40] # <- for actor 1's dodge it's variable 40
@ddg_a2 = $game_variables [41]
@ddg_a3 = $game_variables [42]
if @actor.index == 0
self.contents.draw_text(72, 44, 50, 32, @ddg_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 44, 50, 32, @ddg_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 44, 50, 32, @ddg_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(92, 44, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's expression
@xpr_a1 = $game_variables [43] # <- for actor 1's expression it's variable 43
@xpr_a2 = $game_variables [44]
@xpr_a3 = $game_variables [45]
if @actor.index == 0
self.contents.draw_text(72, 66, 50, 32, @xpr_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 66, 50, 32, @xpr_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 66, 50, 32, @xpr_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(92, 66, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's intimidation
@itmd_a1 = $game_variables [46] # <- for actor 1's intimidation it's variable 46
@itmd_a2 = $game_variables [47]
@itmd_a3 = $game_variables [48]
if @actor.index == 0
self.contents.draw_text(72, 88, 50, 32, @itmd_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 88, 50, 32, @itmd_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 88, 50, 32, @itmd_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(92, 88, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's subterfuge
@subt_a1 = $game_variables [49] # <- for actor 1's subterfuge it's variable 49
@subt_a2 = $game_variables [50]
@subt_a3 = $game_variables [51]
if @actor.index == 0
self.contents.draw_text(72, 110, 50, 32, @subt_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(72, 110, 50, 32, @subt_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(72, 110, 50, 32, @subt_a3.to_s)
end #If
self.contents.font.color = disabled_color
self.contents.draw_text(92, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end#def
end#class
# end
#==============================================================================
# ** Skills_Window
#------------------------------------------------------------------------------
# This window displays physical stats (strength,dexterity,stamina)
#==============================================================================
class Skills_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(324, 142, 170, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Animal Ken: ")
self.contents.draw_text(0, 22, 63, 32, "Crafts: ")
self.contents.draw_text(0, 44, 70, 32, "Etiquette: ")
self.contents.draw_text(0, 66, 60, 32, "Melee: ")
self.contents.draw_text(0, 88, 80, 32, "Performance: ")
self.contents.draw_text(0, 110, 85, 32, "Stealth: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
@ank_a1 = $game_variables [52] # <- for actor 1's animal ken it's variable 52
@ank_a2 = $game_variables [53]
@ank_a3 = $game_variables [54]
if @actor.index == 0
self.contents.draw_text(80, 0, 50, 32, @ank_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 0, 50, 32, @ank_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 0, 50, 32, @ank_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's crafts
@crf_a1 = $game_variables [55] # <- for actor 1's crafts it's variable 55
@crf_a2 = $game_variables [56]
@crf_a3 = $game_variables [57]
if @actor.index == 0
self.contents.draw_text(80, 22, 50, 32, @crf_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 22, 50, 32, @crf_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 22, 50, 32, @crf_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's etiquette
@etq_a1 = $game_variables [58] # <- for actor 1's etiquette it's variable 60
@etq_a2 = $game_variables [59]
@etq_a3 = $game_variables [60]
if @actor.index == 0
self.contents.draw_text(80, 44, 50, 32, @etq_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 44, 50, 32, @etq_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 44, 50, 32, @etq_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 44, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's melee
@mel_a1 = $game_variables [61] # <- for actor 1's melee it's variable 61
@mel_a2 = $game_variables [62]
@mel_a3 = $game_variables [63]
if @actor.index == 0
self.contents.draw_text(80, 66, 50, 32, @mel_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 66, 50, 32, @mel_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 66, 50, 32, @mel_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 66, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's performace
@perf_a1 = $game_variables [64] # <- for actor 1's performance it's variable 64
@perf_a2 = $game_variables [65]
@perf_a3 = $game_variables [66]
if @actor.index == 0
self.contents.draw_text(80, 88, 50, 32, @perf_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 88, 50, 32, @perf_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 88, 50, 32, @perf_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 88, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's stealth
@sth_a1 = $game_variables [67] # <- for actor 1's stealth it's variable 67
@sth_a2 = $game_variables [68]
@sth_a3 = $game_variables [69]
if @actor.index == 0
self.contents.draw_text(80, 110, 50, 32, @sth_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 110, 50, 32, @sth_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 110, 50, 32, @sth_a3.to_s)
end #If
self.contents.font.color = disabled_color
self.contents.draw_text(102, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Knowledges_Window
#------------------------------------------------------------------------------
# This window displays physical stats (strength,dexterity,stamina)
#==============================================================================
class Knowledges_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(493, 142, 148, 200)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Academics: ")
self.contents.draw_text(0, 22, 63, 32, "Finance: ")
self.contents.draw_text(0, 44, 85, 32, "Investigation: ")
self.contents.draw_text(0, 66, 60, 32, "Law: ")
self.contents.draw_text(0, 88, 80, 32, "Medicine: ")
self.contents.draw_text(0, 110, 70, 32, "Occult: ")
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
@aca_a1 = $game_variables [70] # <- for actor 1's academics it's variable 70
@aca_a2 = $game_variables [71]
@aca_a3 = $game_variables [72]
if @actor.index == 0
self.contents.draw_text(80, 0, 50, 32, @aca_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 0, 50, 32, @aca_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 0, 50, 32, @aca_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 0, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's finances
@fin_a1 = $game_variables [73] # <- for actor 1's finance it's variable 73
@fin_a2 = $game_variables [74]
@fin_a3 = $game_variables [75]
if @actor.index == 0
self.contents.draw_text(80, 22, 50, 32, @fin_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 22, 50, 32, @fin_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 22, 50, 32, @fin_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 22, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's investigation
@inv_a1 = $game_variables [76] # <- for actor 1's investigation it's variable 76
@inv_a2 = $game_variables [77]
@inv_a3 = $game_variables [78]
if @actor.index == 0
self.contents.draw_text(80, 44, 50, 32, @inv_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 44, 50, 32, @inv_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 44, 50, 32, @inv_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 44, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's law
@law_a1 = $game_variables [79] # <- for actor 1's law it's variable 79
@law_a2 = $game_variables [80]
@law_a3 = $game_variables [81]
if @actor.index == 0
self.contents.draw_text(80, 66, 50, 32, @law_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 66, 50, 32, @law_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 66, 50, 32, @law_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 66, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's medicine
@med_a1 = $game_variables [82] # <- for actor 1's medicine it's variable 82
@med_a2 = $game_variables [83]
@med_a3 = $game_variables [84]
if @actor.index == 0
self.contents.draw_text(80, 88, 50, 32, @med_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 88, 50, 32, @med_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 88, 50, 32, @med_a3.to_s)
end #if
self.contents.font.color = disabled_color
self.contents.draw_text(102, 88, 50, 32, '/5')
self.contents.font.color = normal_color
#Insert in the brackets the variable for each actor's occult
@occ_a1 = $game_variables [85] # <- for actor 1's occult it's variable 85
@occ_a2 = $game_variables [86]
@occ_a3 = $game_variables [87]
if @actor.index == 0
self.contents.draw_text(80, 110, 50, 32, @occ_a1.to_s)
elsif @actor.index == 1
self.contents.draw_text(80, 110, 50, 32, @occ_a2.to_s)
elsif @actor.index == 2
self.contents.draw_text(80, 110, 50, 32, @occ_a3.to_s)
end #If
self.contents.font.color = disabled_color
self.contents.draw_text(102, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Equip_Window
#------------------------------------------------------------------------------
# This window displays what the actor has equipped(minus the icons)
# If you want to show the icons change @icons to true
#==============================================================================
class Equip_Window < Window_Base
def initialize(actor)
super(155,341,341,139)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
@actor = actor
@icons = false
refresh
end
def refresh
self.contents.clear
self.contents.font.size = 15
self.contents.draw_text(0,5,70,22,"Weapon:")
draw_item_name_only($data_weapons[@actor.weapon_id], 25, 0)
self.contents.draw_text(0,25,70,22,"Shield:")
draw_item_name_only($data_armors[@actor.armor1_id],25,20)
self.contents.draw_text(0,45,70,22,"Helmet:")
draw_item_name_only($data_armors[@actor.armor2_id],25,40)
self.contents.draw_text(0,65,70,22,"Armor:")
draw_item_name_only($data_armors[@actor.armor3_id],25,60)
self.contents.draw_text(0,85,70,22,"Acc. :")
draw_item_name_only($data_armors[@actor.armor4_id],25,60)
end
end
#==============================================================================
# ** Sprite_Window
#------------------------------------------------------------------------------
# This window displays the actor's sprite
#==============================================================================
class Sprite_Window < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(495, 341, 186, 139)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_graphic (@actor , 55, 69)
end
end
#===============================================================================
#==============================================================================
# ** Character_Sheet
#------------------------------------------------------------------------------
# This class is the bone of the Character Sheet.
#==============================================================================
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 = Actor_Info.new(@actor)
@status_window.x = 0
@status_window.y = 0
@physical_window = Physical_Window.new(@actor)
@physical_window.x = 0
@physical_window.y = 129
@social_window = Social_Window.new(@actor)
@social_window.x = 0
@social_window.y = 228
@mental_window = Mental_Window.new(@actor)
@mental_window.x = 0
@mental_window.y = 327
@humanity_window = Humanity_Window.new(@actor)
@humanity_window.x = 0
@humanity_window.y = 426
@abilities = Abilities_Header.new
@abilities.x = 155
@abilities.y = 0
@talents = Talents_Header.new
@talents.x = 155
@talents.y = 54
@skills = Skills_Header.new
@skills.x = 324
@skills.y = 54
@knowledges = Knowledges_Header.new
@knowledges.x = 493
@knowledges.y = 54
@talents_win = Talents_Window.new(@actor)
@skills_win = Skills_Window.new(@actor)
@knowledges_win = Knowledges_Window.new(@actor)
@equip = Equip_Window.new(@actor)
@sprite_window = Sprite_Window.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
@physical_window.dispose
@social_window.dispose
@mental_window.dispose
@humanity_window.dispose
@abilities.dispose
@talents.dispose
@skills.dispose
@knowledges.dispose
@talents_win.dispose
@skills_win.dispose
@knowledges_win.dispose
@equip.dispose
@sprite_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::R)
# 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::L)
# 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
Code:
#============================================================================
# ** (V:TM)Character Sheet
#----------------------------------------------------------------------------
# by Ludicus Maximus aka Ludicus
# Version 1.0
# 16 June 2009
#--------------
# Version 2.0 (1062 lines -> 884 lines)
# 29 August 2009
#----------------------------------------------------------------------------
# Instructions:
# The script is plug and play, although in-game you have to call:
# $game_actors[ACTOR_ID].STAT = NUMBER
# You can also subtract (instead of STAT = NUMBER it's STAT -= NUMBER)
# add (instead of STAT = NUMBER it's STAT += NUMBER)
# The stats are those that are written in the beginning of the script, after
# 'attr_accessor :' .
# Now, for example, you want the first character in the database to have 3 wits,
# the second to have 2 MORE charisma and the third to have 2 LESS brawl.
# In game you woud call script:
#" $game_actors[1].wits = 3
# $game_actors[2].charisma += 2
# $game_actors[3].brawl -= 2 "
# (without the quotes, of course). To verify a stat, call script in Conditional
# Branch: " $game_actors[WHATEVER].STAT == X"
# Instead of "==" you can have "<" (Less than), ">"(Greater than), ">="(Greater or
# equal to), or "<=" (Less than or equal to) or "!=" (Not equal to)
#----------------------------------------------------------------------------
# Notes:
# -Is obviously not compatible with other Custom Stat Scenes,but can be probably
# worked around.
#----------------------------------------------------------------------------
# Credits and Thanks:
#
# -White Wolf
# -Me,aka Ludicus Maximus/Ludicus.
#----------------------------------------------------------------------------
#Please give credit to me when using this script,preferably as Ludicus Maximus
#----------------------------------------------------------------------------
class Game_Actor
attr_accessor :generation
attr_accessor :humanity
attr_accessor :strength
attr_accessor :dexterity
attr_accessor :stamina
attr_accessor :charisma
attr_accessor :manipulation
attr_accessor :appearance
attr_accessor :perception
attr_accessor :intelligence
attr_accessor :wits
attr_accessor :alertness
attr_accessor :brawl
attr_accessor :dodge
attr_accessor :expression
attr_accessor :intimidation
attr_accessor :subterfuge
attr_accessor :animalken
attr_accessor :crafts
attr_accessor :etiquette
attr_accessor :melee
attr_accessor :performance
attr_accessor :stealth
attr_accessor :academics
attr_accessor :finance
attr_accessor :investigation
attr_accessor :law
attr_accessor :medicine
attr_accessor :occult
attr_accessor :willpower
attr_accessor :conscience
attr_accessor :selfcontrol
alias charascript_setup setup
def setup(actor_id)
charascript_setup(actor_id)
@generation = 0
@humanity = 0
@strength = 0
@dexterity = 0
@stamina = 0
@charisma = 0
@manipulation = 0
@appearance = 0
@perception = 0
@intelligence = 0
@wits = 0
@alertness = 0
@brawl = 0
@dodge = 0
@expression = 0
@intimidation = 0
@subterfuge = 0
@animalken = 0
@crafts = 0
@etiquette = 0
@melee = 0
@performance = 0
@stealth = 0
@academics = 0
@finance = 0
@investigation = 0
@law = 0
@medicine = 0
@occult = 0
@willpower = 0
@conscience = 0
@selfcontrol = 0
end
def generation
return @generation
end
def generation=(gen)
@generation = gen
end
def humanity
return @humanity
end
def humanity=(hum)
@humanity = hum
end
def strength
return @strength
end
def strength=(str)
@strength = str
end
def dexterity
return @dexterity
end
def dexterity=(dex)
@dexterity = dex
end
def stamina
return @stamina
end
def stamina=(sta)
@stamina = sta
end
def charisma
return @charisma
end
def charisma=(cha)
@charisma = cha
end
def manipulation
return @manipulation
end
def manipulation=(man)
@manipulation = man
end
def appearance
return @appearance
end
def appearance=(app)
@appearance = app
end
def perception
return @perception
end
def perception=(per)
@perception = per
end
def intelligence
return @intelligence
end
def intelligence=(int)
@intelligence = int
end
def wits
return @wits
end
def wits=(wts)
@wits = wts
end
def alertness
return @alertness
end
def alertness=(arlt)
@alertness = arlt
end
def brawl
return @brawl
end
def brawl=(brw)
@brawl = brw
end
def dodge
return @dodge
end
def dodge=(ddg)
@dodge = ddg
end
def expression
return @expression
end
def expression=(expr)
@expression = expr
end
def intimidation
return @intimidation
end
def intimidation=(intm)
@intimidation = intm
end
def subterfuge
return @subterfuge
end
def subterfuge=(subt)
@subterfuge = subt
end
def animalken
return @animalken
end
def animalken=(ank)
@animaken = ank
end
def crafts
return @crafts
end
def crafts=(crft)
@crafts = crft
end
def etiquette
return @etiquette
end
def etiquette=(etq)
@etiquette = etq
end
def melee
return @melee
end
def melee=(mle)
@melee = mle
end
def performance
return @performance
end
def performance=(prfr)
@performance = prfr
end
def stealth
return @stealth
end
def stealth=(sthl)
@stealth = sthl
end
def academics
return @academics
end
def academics=(acdm)
@academics = acdm
end
def finance
return @finance
end
def finance=(fnc)
@finance = fnc
end
def investigation
return @investigation
end
def investigation=(invst)
@investigation = invst
end
def law
return @law
end
def law=(lw)
@law = lw
end
def medicine
return @medicine
end
def medicine=(mdc)
@medicine = mdc
end
def occult
return @occult
end
def occult=(oclt)
@occult = oclt
end
def willpower
return @willpower
end
def willpower=(wlpr)
@willpower = wlpr
end
def conscience
return @conscience
end
def conscience=(consc)
@conscience = consc
end
def selfcontrol
return @selfcontrol
end
def selfcontrol=(slfctrl)
@selfcontrol = slfctrl
end
end
#========================================
#Adds more methods in Window_Base
#========================================
class Window_Base
#This will obviously draw the item name,but without the icon,is used in
# Equip_Window
def draw_item_name_only(item, x, y)
if item == nil
return
end
self.contents.font.color = crisis_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Actor_Info
#------------------------------------------------------------------------------
# This window displays the actor's info (name, clan(class), generation
#
#==============================================================================
class Actor_Info < Window_Base
def initialize(actor)
super(0, 0, 156, 130)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "Name: ")
draw_actor_name(@actor, 57,0)
self.contents.draw_text(0, 36, 50, 32, "Clan: ")
draw_actor_class(@actor, 56,36)
self.contents.draw_text(0, 72, 50, 32, "Gen: ")
self.contents.draw_text(56, 72, 50, 32, @actor.generation.to_s)
end #def
end #class
#==============================================================================
# ** Physical_Window
#------------------------------------------------------------------------------
# This window displays physical stats (strength,dexterity,stamina)
#==============================================================================
class Physical_Window < Window_Base
def initialize(actor)
super(0, 60, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "STR: ")
self.contents.draw_text(0, 22, 50, 32, "DEX: ")
self.contents.draw_text(0, 44, 50, 32, "STA: ")
self.contents.draw_text(52, 0, 50, 32, @actor.strength.to_s)
self.contents.font.color = normal_color
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.dexterity.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.stamina.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Social_Window
#------------------------------------------------------------------------------
# This window displays social stats (charisma,manipulation,appearance)
#==============================================================================
class Social_Window < Window_Base
def initialize(actor)
super(0, 123, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "CHA: ")
self.contents.draw_text(0, 22, 50, 32, "MAN: ")
self.contents.draw_text(0, 44, 50, 32, "APP: ")
@actor = actor
self.contents.draw_text(52, 0, 50, 32, @actor.charisma.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.manipulation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.appearance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Mental_Window
#------------------------------------------------------------------------------
# This window displays mental stats (perception,intelligence,wits)
#==============================================================================
class Mental_Window < Window_Base
def initialize(actor)
super(0, 173, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "PER: ")
self.contents.draw_text(0, 22, 50, 32, "INT: ")
self.contents.draw_text(0, 44, 50, 32, "WTS: ")
@actor = actor
self.contents.draw_text(52, 0, 50, 32, @actor.perception.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.intelligence.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.wits.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Humanity_Window
#------------------------------------------------------------------------------
# This window displays the Humanity stat
#==============================================================================
class Humanity_Window < Window_Base
def initialize(actor)
super(426, 0, 156, 55)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 80, 24, "Humanity: ")
@actor = actor
self.contents.draw_text(70, 0, 50, 25, @actor.humanity.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(90, 0, 50, 25, '/10')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Talents_Window
#==============================================================================
class Talents_Window < Window_Base
def initialize(actor)
super(155, 105, 170, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 65, 32, "Alertness: ")
self.contents.draw_text(0, 22, 60, 32, "Brawl: ")
self.contents.draw_text(0, 44, 60, 32, "Dodge: ")
self.contents.draw_text(0, 66, 70, 32, "Expression: ")
self.contents.draw_text(0, 88, 75, 32, "Intimidation: ")
self.contents.draw_text(0, 110, 75, 32, "Subterfuge: ")
@actor = actor
self.contents.draw_text(72, 0, 50, 32, @actor.alertness.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 22, 50, 32, @actor.brawl.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 44, 50, 32, @actor.dodge.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 66, 50, 32, @actor.expression.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 88, 50, 32, @actor.intimidation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 110, 50, 32, @actor.subterfuge.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Self-Control_Window
#==============================================================================
class Selfcontrol_Window < Window_Base
def initialize(actor)
super(155, 269, 170, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 95, 32, "Self-Control: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.selfcontrol.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Skills_Window
#==============================================================================
class Skills_Window < Window_Base
def initialize(actor)
super(324, 105, 170, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Animal Ken: ")
self.contents.draw_text(0, 22, 63, 32, "Crafts: ")
self.contents.draw_text(0, 44, 70, 32, "Etiquette: ")
self.contents.draw_text(0, 66, 60, 32, "Melee: ")
self.contents.draw_text(0, 88, 90, 32, "Performance: ")
self.contents.draw_text(0, 110, 85, 32, "Stealth: ")
@actor = actor
self.contents.draw_text(79, 0, 50, 32, @actor.animalken.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 22, 50, 32, @actor.crafts.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 44, 50, 32, @actor.etiquette.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 66, 50, 32, @actor.melee.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 88, 50, 32, @actor.performance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 110, 50, 32, @actor.stealth.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end#def
end
#==============================================================================
# ** Conscience_Window
#==============================================================================
class Conscience_Window < Window_Base
def initialize(actor)
super(324, 269, 170, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 95, 32, "Conscience: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.conscience.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Knowledges_Window
#==============================================================================
class Knowledges_Window < Window_Base
def initialize(actor)
super(493, 105, 148, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Academics: ")
self.contents.draw_text(0, 22, 63, 32, "Finance: ")
self.contents.draw_text(0, 44, 85, 32, "Investigation: ")
self.contents.draw_text(0, 66, 60, 32, "Law: ")
self.contents.draw_text(0, 88, 80, 32, "Medicine: ")
self.contents.draw_text(0, 110, 70, 32, "Occult: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.academics.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 22, 50, 32, @actor.finance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 44, 50, 32, @actor.investigation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 66, 50, 32, @actor.law.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 88, 50, 32, @actor.medicine.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 110, 50, 32, @actor.occult.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end#def
end
#==============================================================================
# ** Willpower_Window
#==============================================================================
class Willpower_Window < Window_Base
def initialize(actor)
super(493, 269, 148, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Willpower: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.willpower.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Abilities_Header
#------------------------------------------------------------------------------
# This window is a header for everything in the right part of the screen
#==============================================================================
class Abilities_Header < Window_Base
def initialize()
super(152, 0, 487, 55)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(193, 0, 150, 24, "ABILITIES")
end
end
#==============================================================================
# ** Talents_Header
#------------------------------------------------------------------------------
# This window is a header for the Talents Window
#==============================================================================
class Talents_Header < Window_Base
def initialize()
super(142, 38, 170, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(15, 0, 150, 24, "TALENTS")
end
end
#==============================================================================
# ** Skills_Header
#------------------------------------------------------------------------------
# This window is a header for the Skills Window
#==============================================================================
class Skills_Header < Window_Base
def initialize()
super(182, 208, 170, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(18, 0, 150, 24, "SKILLS")
end
end
#==============================================================================
# ** Knowledges_Header
#------------------------------------------------------------------------------
# This window is a header for the Knowledges window
#==============================================================================
class Knowledges_Header < Window_Base
def initialize()
super(322, 278, 148, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(0, 0, 120, 24, "KNOWLEDGES")
end
end
#==============================================================================
# ** Equip_Window
#------------------------------------------------------------------------------
# This window displays what the actor has equipped(minus the icons)
# If you want to show the icons change @icons to true
#==============================================================================
class Equip_Window < Window_Base
def initialize(actor)
super(155,341,339,139)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
@actor = actor
@icons = false
self.contents.clear
self.contents.font.size = 15
self.contents.draw_text(0,5,70,22,"Weapon:")
if @icons
draw_item_name_icon($data_weapons[@actor.weapon_id], 25, 0)
else
draw_item_name_only($data_weapons[@actor.weapon_id], 25, 0)
end
self.contents.draw_text(0,25,70,22,"Shield:")
if @icons
draw_item_name_icon($data_armors[@actor.armor1_id],25,20)
else
draw_item_name_only($data_armors[@actor.armor1_id],25,20)
end
self.contents.draw_text(0,45,70,22,"Helmet:")
if @icons
draw_item_name_icon($data_armors[@actor.armor2_id],25,40)
else
draw_item_name_only($data_armors[@actor.armor2_id],25,40)
end
self.contents.draw_text(0,65,70,22,"Armor:")
if @icons
draw_item_name_icon($data_armors[@actor.armor3_id],25,60)
else
draw_item_name_only($data_armors[@actor.armor3_id],25,60)
end
self.contents.draw_text(0,85,70,22,"Acc. :")
if @icons
draw_item_name_icon($data_armors[@actor.armor4_id],25,60)
else
draw_item_name_only($data_armors[@actor.armor4_id],25,60)
end
end
end
#==============================================================================
# ** Sprite_Window
#------------------------------------------------------------------------------
# This window displays the actor's sprite
#==============================================================================
class Sprite_Window < Window_Base
def initialize(actor)
super(493, 341, 148, 139)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
draw_actor_graphic (@actor , 55, 69)
end
end
#==============================================================================
# ** Character_Sheet
#------------------------------------------------------------------------------
# This class is the bone of the Character Sheet.
#==============================================================================
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 = Actor_Info.new(@actor)
@status_window.x = 0
@status_window.y = 0
@physical_window = Physical_Window.new(@actor)
@physical_window.x = 0
@physical_window.y = 129
@social_window = Social_Window.new(@actor)
@social_window.x = 0
@social_window.y = 228
@mental_window = Mental_Window.new(@actor)
@mental_window.x = 0
@mental_window.y = 327
@humanity_window = Humanity_Window.new(@actor)
@humanity_window.x = 0
@humanity_window.y = 426
@abilities = Abilities_Header.new
@abilities.x = 155
@abilities.y = 0
@talents = Talents_Header.new
@talents.x = 155
@talents.y = 54
@skills = Skills_Header.new
@skills.x = 324
@skills.y = 54
@knowledges = Knowledges_Header.new
@knowledges.x = 493
@knowledges.y = 54
@talents_win = Talents_Window.new(@actor)
@skills_win = Skills_Window.new(@actor)
@knowledges_win = Knowledges_Window.new(@actor)
@equip = Equip_Window.new(@actor)
@sprite_window = Sprite_Window.new(@actor)
@willpower_window = Willpower_Window.new(@actor)
@conscience_window = Conscience_Window.new(@actor)
@slfctrl_window = Selfcontrol_Window.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
@physical_window.dispose
@social_window.dispose
@mental_window.dispose
@humanity_window.dispose
@abilities.dispose
@talents.dispose
@skills.dispose
@knowledges.dispose
@talents_win.dispose
@skills_win.dispose
@knowledges_win.dispose
@equip.dispose
@sprite_window.dispose
@willpower_window.dispose
@conscience_window.dispose
@slfctrl_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::R)
# 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::L)
# 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
Code:
#============================================================================
# ** (V:TM)Character Sheet
#----------------------------------------------------------------------------
# by Ludicus Maximus aka Ludicus
# Version 1.0
# 16 June 2009
#--------------
# Version 2.0 (1062 lines -> 884 lines)
# 29 August 2009
#--------------
# Version 2.1 (884 lines -> 679 lines)
# 31 August 2009
#----------------------------------------------------------------------------
# Instructions:
# The script is plug and play, although in-game you have to call:
# $game_actors[ACTOR_ID].STAT = NUMBER
# You can also subtract (instead of STAT = NUMBER it's STAT -= NUMBER)
# add (instead of STAT = NUMBER it's STAT += NUMBER)
# The stats are those that are written in the beginning of the script, after
# 'attr_accessor :' .
# Now, for example, you want the first character in the database to have 3 wits,
# the second to have 2 MORE charisma and the third to have 2 LESS brawl.
# In game you woud call script:
#" $game_actors[1].wits = 3
# $game_actors[2].charisma += 2
# $game_actors[3].brawl -= 2 "
# (without the quotes, of course). To verify a stat, call script in Conditional
# Branch: " $game_actors[WHATEVER].STAT == X"
# Instead of "==" you can have "<" (Less than), ">"(Greater than), ">="(Greater or
# equal to), or "<=" (Less than or equal to) or "!=" (Not equal to)
#----------------------------------------------------------------------------
# Notes:
# -Is obviously not compatible with other Custom Stat Scenes,but can be probably
# worked around.
#----------------------------------------------------------------------------
# Credits and Thanks:
#
# -White Wolf
# -Me,aka Ludicus Maximus/Ludicus
#
# Special thanks to Kain Nobel
#----------------------------------------------------------------------------
#Please give credit to me when using this script,preferably as Ludicus Maximus
#----------------------------------------------------------------------------
class Game_Actor
attr_accessor :generation
attr_accessor :humanity
attr_accessor :strength
attr_accessor :dexterity
attr_accessor :stamina
attr_accessor :charisma
attr_accessor :manipulation
attr_accessor :appearance
attr_accessor :perception
attr_accessor :intelligence
attr_accessor :wits
attr_accessor :alertness
attr_accessor :brawl
attr_accessor :dodge
attr_accessor :expression
attr_accessor :intimidation
attr_accessor :subterfuge
attr_accessor :animalken
attr_accessor :crafts
attr_accessor :etiquette
attr_accessor :melee
attr_accessor :performance
attr_accessor :stealth
attr_accessor :academics
attr_accessor :finance
attr_accessor :investigation
attr_accessor :law
attr_accessor :medicine
attr_accessor :occult
attr_accessor :willpower
attr_accessor :conscience
attr_accessor :selfcontrol
alias charascript_setup setup
def setup(actor_id)
charascript_setup(actor_id)
@generation = 0
@humanity = 0
@strength = 0
@dexterity = 0
@stamina = 0
@charisma = 0
@manipulation = 0
@appearance = 0
@perception = 0
@intelligence = 0
@wits = 0
@alertness = 0
@brawl = 0
@dodge = 0
@expression = 0
@intimidation = 0
@subterfuge = 0
@animalken = 0
@crafts = 0
@etiquette = 0
@melee = 0
@performance = 0
@stealth = 0
@academics = 0
@finance = 0
@investigation = 0
@law = 0
@medicine = 0
@occult = 0
@willpower = 0
@conscience = 0
@selfcontrol = 0
end
end
#========================================
#Adds more methods in Window_Base
#========================================
class Window_Base
#This will obviously draw the item name,but without the icon,is used in
# Equip_Window
def draw_item_name_only(item, x, y)
if item == nil
return
end
self.contents.font.color = crisis_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Actor_Info
#------------------------------------------------------------------------------
# This window displays the actor's info (name, clan(class), generation
#
#==============================================================================
class Actor_Info < Window_Base
def initialize(actor)
super(0, 0, 156, 130)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "Name: ")
draw_actor_name(@actor, 57,0)
self.contents.draw_text(0, 36, 50, 32, "Clan: ")
draw_actor_class(@actor, 56,36)
self.contents.draw_text(0, 72, 50, 32, "Gen: ")
self.contents.draw_text(56, 72, 50, 32, @actor.generation.to_s)
end #def
end #class
#==============================================================================
# ** Physical_Window
#------------------------------------------------------------------------------
# This window displays physical stats (strength,dexterity,stamina)
#==============================================================================
class Physical_Window < Window_Base
def initialize(actor)
super(0, 129, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
self.contents.draw_text(0, 0, 50, 32, "STR: ")
self.contents.draw_text(0, 22, 50, 32, "DEX: ")
self.contents.draw_text(0, 44, 50, 32, "STA: ")
self.contents.draw_text(52, 0, 50, 32, @actor.strength.to_s)
self.contents.font.color = normal_color
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.dexterity.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.stamina.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Social_Window
#------------------------------------------------------------------------------
# This window displays social stats (charisma,manipulation,appearance)
#==============================================================================
class Social_Window < Window_Base
def initialize(actor)
super(0, 228, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "CHA: ")
self.contents.draw_text(0, 22, 50, 32, "MAN: ")
self.contents.draw_text(0, 44, 50, 32, "APP: ")
@actor = actor
self.contents.draw_text(52, 0, 50, 32, @actor.charisma.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.manipulation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.appearance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Mental_Window
#------------------------------------------------------------------------------
# This window displays mental stats (perception,intelligence,wits)
#==============================================================================
class Mental_Window < Window_Base
def initialize(actor)
super(0, 327, 156, 100)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 50, 32, "PER: ")
self.contents.draw_text(0, 22, 50, 32, "INT: ")
self.contents.draw_text(0, 44, 50, 32, "WTS: ")
@actor = actor
self.contents.draw_text(52, 0, 50, 32, @actor.perception.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 22, 50, 32, @actor.intelligence.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(52, 44, 50, 32, @actor.wits.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(72, 44, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Humanity_Window
#------------------------------------------------------------------------------
# This window displays the Humanity stat
#==============================================================================
class Humanity_Window < Window_Base
def initialize(actor)
super(0, 426, 156, 55)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.draw_text(0, 0, 80, 24, "Humanity: ")
@actor = actor
self.contents.draw_text(70, 0, 50, 25, @actor.humanity.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(90, 0, 50, 25, '/10')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Talents_Window
#==============================================================================
class Talents_Window < Window_Base
def initialize(actor)
super(155, 105, 170, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 65, 32, "Alertness: ")
self.contents.draw_text(0, 22, 60, 32, "Brawl: ")
self.contents.draw_text(0, 44, 60, 32, "Dodge: ")
self.contents.draw_text(0, 66, 70, 32, "Expression: ")
self.contents.draw_text(0, 88, 75, 32, "Intimidation: ")
self.contents.draw_text(0, 110, 75, 32, "Subterfuge: ")
@actor = actor
self.contents.draw_text(72, 0, 50, 32, @actor.alertness.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 22, 50, 32, @actor.brawl.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 44, 50, 32, @actor.dodge.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 66, 50, 32, @actor.expression.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 88, 50, 32, @actor.intimidation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(72, 110, 50, 32, @actor.subterfuge.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(92, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end
end
#==============================================================================
# ** Self-Control_Window
#==============================================================================
class Selfcontrol_Window < Window_Base
def initialize(actor)
super(155, 269, 170, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 95, 32, "Self-Control: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.selfcontrol.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Skills_Window
#==============================================================================
class Skills_Window < Window_Base
def initialize(actor)
super(324, 105, 170, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Animal Ken: ")
self.contents.draw_text(0, 22, 63, 32, "Crafts: ")
self.contents.draw_text(0, 44, 70, 32, "Etiquette: ")
self.contents.draw_text(0, 66, 60, 32, "Melee: ")
self.contents.draw_text(0, 88, 90, 32, "Performance: ")
self.contents.draw_text(0, 110, 85, 32, "Stealth: ")
@actor = actor
self.contents.draw_text(79, 0, 50, 32, @actor.animalken.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 22, 50, 32, @actor.crafts.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 44, 50, 32, @actor.etiquette.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 66, 50, 32, @actor.melee.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 88, 50, 32, @actor.performance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(79, 110, 50, 32, @actor.stealth.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(99, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end#def
end
#==============================================================================
# ** Conscience_Window
#==============================================================================
class Conscience_Window < Window_Base
def initialize(actor)
super(324, 269, 170, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 95, 32, "Conscience: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.conscience.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Knowledges_Window
#==============================================================================
class Knowledges_Window < Window_Base
def initialize(actor)
super(493, 105, 148, 165)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Academics: ")
self.contents.draw_text(0, 22, 63, 32, "Finance: ")
self.contents.draw_text(0, 44, 85, 32, "Investigation: ")
self.contents.draw_text(0, 66, 60, 32, "Law: ")
self.contents.draw_text(0, 88, 80, 32, "Medicine: ")
self.contents.draw_text(0, 110, 70, 32, "Occult: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.academics.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 22, 50, 32, @actor.finance.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 22, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 44, 50, 32, @actor.investigation.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 44, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 66, 50, 32, @actor.law.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 66, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 88, 50, 32, @actor.medicine.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 88, 50, 32, '/5')
self.contents.font.color = normal_color
self.contents.draw_text(85, 110, 50, 32, @actor.occult.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 110, 50, 32, '/5')
self.contents.font.color = normal_color
end#def
end
#==============================================================================
# ** Willpower_Window
#==============================================================================
class Willpower_Window < Window_Base
def initialize(actor)
super(493, 269, 148, 73)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
self.contents.draw_text(0, 0, 85, 32, "Willpower: ")
@actor = actor
self.contents.draw_text(85, 0, 50, 32, @actor.willpower.to_s)
self.contents.font.color = disabled_color
self.contents.draw_text(100, 0, 50, 32, '/5')
end#def
end
#==============================================================================
# ** Abilities_Header
#------------------------------------------------------------------------------
# This window is a header for everything in the right part of the screen
#==============================================================================
class Abilities_Header < Window_Base
def initialize()
super(155, 0, 487, 55)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(193, 0, 150, 24, "ABILITIES")
end
end
#==============================================================================
# ** Talents_Header
#------------------------------------------------------------------------------
# This window is a header for the Talents Window
#==============================================================================
class Talents_Header < Window_Base
def initialize()
super(155, 54, 170, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(15, 0, 150, 24, "TALENTS")
end
end
#==============================================================================
# ** Skills_Header
#------------------------------------------------------------------------------
# This window is a header for the Skills Window
#==============================================================================
class Skills_Header < Window_Base
def initialize()
super(324, 54, 170, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(18, 0, 150, 24, "SKILLS")
end
end
#==============================================================================
# ** Knowledges_Header
#------------------------------------------------------------------------------
# This window is a header for the Knowledges window
#==============================================================================
class Knowledges_Header < Window_Base
def initialize()
super(493, 54, 148, 52)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.clear
self.contents.draw_text(0, 0, 120, 24, "KNOWLEDGES")
end
end
#==============================================================================
# ** Equip_Window
#------------------------------------------------------------------------------
# This window displays what the actor has equipped(minus the icons)
# If you want to show the icons change @icons to true
#==============================================================================
class Equip_Window < Window_Base
def initialize(actor)
super(155,341,339,139)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Arial"
@actor = actor
@icons = false
self.contents.clear
self.contents.font.size = 15
self.contents.draw_text(0,5,70,22,"Weapon:")
if @icons
draw_item_name_icon($data_weapons[@actor.weapon_id], 25, 0)
else
draw_item_name_only($data_weapons[@actor.weapon_id], 25, 0)
end
self.contents.draw_text(0,25,70,22,"Shield:")
if @icons
draw_item_name_icon($data_armors[@actor.armor1_id],25,20)
else
draw_item_name_only($data_armors[@actor.armor1_id],25,20)
end
self.contents.draw_text(0,45,70,22,"Helmet:")
if @icons
draw_item_name_icon($data_armors[@actor.armor2_id],25,40)
else
draw_item_name_only($data_armors[@actor.armor2_id],25,40)
end
self.contents.draw_text(0,65,70,22,"Armor:")
if @icons
draw_item_name_icon($data_armors[@actor.armor3_id],25,60)
else
draw_item_name_only($data_armors[@actor.armor3_id],25,60)
end
self.contents.draw_text(0,85,70,22,"Acc. :")
if @icons
draw_item_name_icon($data_armors[@actor.armor4_id],25,60)
else
draw_item_name_only($data_armors[@actor.armor4_id],25,60)
end
end
end
#==============================================================================
# ** Sprite_Window
#------------------------------------------------------------------------------
# This window displays the actor's sprite
#==============================================================================
class Sprite_Window < Window_Base
def initialize(actor)
super(493, 341, 148, 139)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
self.contents.clear
draw_actor_graphic (@actor , 55, 69)
end
end
#==============================================================================
# ** Character_Sheet
#------------------------------------------------------------------------------
# This class is the bone of the Character Sheet.
#==============================================================================
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 = Actor_Info.new(@actor)
@physical_window = Physical_Window.new(@actor)
@social_window = Social_Window.new(@actor)
@mental_window = Mental_Window.new(@actor)
@humanity_window = Humanity_Window.new(@actor)
@abilities = Abilities_Header.new
@talents = Talents_Header.new
@skills = Skills_Header.new
@knowledges = Knowledges_Header.new
@talents_win = Talents_Window.new(@actor)
@skills_win = Skills_Window.new(@actor)
@knowledges_win = Knowledges_Window.new(@actor)
@equip = Equip_Window.new(@actor)
@sprite_window = Sprite_Window.new(@actor)
@willpower_window = Willpower_Window.new(@actor)
@conscience_window = Conscience_Window.new(@actor)
@slfctrl_window = Selfcontrol_Window.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
@physical_window.dispose
@social_window.dispose
@mental_window.dispose
@humanity_window.dispose
@abilities.dispose
@talents.dispose
@skills.dispose
@knowledges.dispose
@talents_win.dispose
@skills_win.dispose
@knowledges_win.dispose
@equip.dispose
@sprite_window.dispose
@willpower_window.dispose
@conscience_window.dispose
@slfctrl_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::R)
# 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::L)
# 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
Instructions
Simply go in the script editor and check which variable corresponds to a player's ability and modify that variable where you need it.(Control Variables... in RMXP)
When you see this:
Everywhere you see the above,edit (variable) to the variable you want the (ability name) for actor(actor number) to be.
If you want more than 3 actors,you'll have to add more of the above(for example:
)
and below it the if clause copy-paste the two lines:the one with the elsifand the one below it.
When you see this:
Code:
@(ability name)_a(actor number) = $game_variables [(variable)]
If you want more than 3 actors,you'll have to add more of the above(for example:
Code:
@(ability name)_a13 = $game_variables [112]
and below it the if clause copy-paste the two lines:the one with the elsifand the one below it.
Code:
elsif @actor.index == (the actor's number in the database -1)
self.contents.draw_text([whatever the coordinates are, @(ability name)_a(actor number).to_s)[/spoiler]
[spoiler=2.0]# The script is plug and play, although in-game you have to call:
$game_actors[ACTOR_ID].STAT = NUMBER
You can also subtract (instead of STAT = NUMBER it's STAT -= NUMBER)
add (instead of STAT = NUMBER it's STAT += NUMBER)
The stats are those that are written in the beginning of the script, after
'attr_accessor :' .
Now, for example, you want the first character in the database to have 3 wits,
the second to have 2 MORE charisma and the third to have 2 LESS brawl.
In game you woud call script:
" $game_actors[1].wits = 3
$game_actors[2].charisma += 2
$game_actors[3].brawl -= 2 "
(without the quotes, of course). To verify a stat, call script in Conditional
Branch: " $game_actors[WHATEVER].STAT == X"
Instead of "==" you can have "<" (Less than), ">"(Greater than), ">="(Greater or
equal to), or "<=" (Less than or equal to) or "!=" (Not equal to)[/spoiler]
[size=5][b]FAQ[/b][/size]
* wat do
Check above.
[size=5][b]Credits and Thanks[/b][/size]
-White Wolf
-Me,aka Ludicus Maximus/Ludicus
Special thanks to Kain Nobel. :3
[size=5][b]Author's Notes[/b][/size]
lol w00t antediluvians will rise and kill everything lol
[size=5][b]Terms and Conditions[/b][/size]
Please give credit to me when using this script,preferably as Ludicus Maximus.
You can use this script in commercial projects.