Cozziekuns' Status Screen
Version: 1.2
Author: cozziekuns
Date: May 3, 2010
Version History
- <Version 1.2> 07.18.2011 - Updated with watermark viewing (press Shift).
- <Version 1.1> 11.28.2010 - Updated with Paragraph Formatting
- <Version 1.0> 05.03.2010 - Original Release
Planned Future Versions
Description
A touched up version of the dull scene status. By the way, the watermarks that I used are Yggdra Union ones. They're
probably definitely copyrighted, so if you're gonna make a commercial game or whatever, I don't recommend using them. They're crappy quality because I didn't spend much time photoshopping them.
You can find the Yggdra Union pictures attached to this post. I just used them because I had nothing better to use.
Features
- Easily customizable.
- A watermark at the back. The screenshot will probably explain it better.
- A biography similar to the one in Yanfly's Scene Status Redux.
- Icons! Everyone likes Icons...
- A exp bar. I mean come on, this should be in every status screen.
- Paragaph Formatting.
Screenshots Instructions
See header. Make sure that you have
MA's Paragraph Formatter, included in the demo.
Script
#===============================================================================
#
# Cozziekuns' Status Screen
# Last Date Updated: 11/28/2010
#
# A status screen. A nice looking one at that.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 18/07/11 - Updated Script.
# o 11/28/10 - Started Script.
#===============================================================================
# What's to come?
# -----------------------------------------------------------------------------
# o I dunno. You tell me!
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save. You can
# edit the modules as you wish.
#
# The background images should be of size 544 * 416. When importing a background
# image, import it to the folder Graphics/Pictures. The name of the actor should
# be on the name of the file, followed by _bg.
#
# Example: Raven_bg
#===============================================================================
module COZZIEKUNS
BACKGROUND_OPACITY = 100
HP_ICON = 99
MP_ICON = 100
EXP_ICON = 98
LEVEL_ICON = 62
ATTACK_ICON = 26
DEFENSE_ICON = 52
SPIRIT_ICON = 20
AGILITY_ICON = 49
CLASS_ICONS ={
0 => 0,
1 => 16,
2 => 32,
3 => 21,
4 => 8,
}
BIOGRAPHIES ={
# Actor => Biography
0 => "I like pie.",
1 => "Our average hero who hails from a family that lives in poverty.",
2 => "Our hero's best friend, but sometimes worst rival. Can be irrational at times.",
3 => "Our 3rd hero, a magician with a nice personality, and has powerful skills to boot.",
4 => "Our 4th hero, a thief shrouded in mystery. Not much is known about Sora, except she's damn pro.",
}
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This is a superclass of all windows in the game.
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Get Exp Gauge Colour 1
#--------------------------------------------------------------------------
def exp_gauge_colour1
return text_color(7)
end
#--------------------------------------------------------------------------
# * Get Exp Gauge Colour 2
#--------------------------------------------------------------------------
def exp_gauge_colour2
return text_color(8)
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Status < Window_Base
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_back(@actor, 0, 0)
unless Input.press?(Input::A)
@hp_icon = COZZIEKUNS::HP_ICON
@mp_icon = COZZIEKUNS::MP_ICON
@exp_icon = COZZIEKUNS::EXP_ICON
@level_icon = COZZIEKUNS::LEVEL_ICON
@atk_icon = COZZIEKUNS::ATTACK_ICON
@def_icon = COZZIEKUNS::DEFENSE_ICON
@spi_icon = COZZIEKUNS::SPIRIT_ICON
@agi_icon = COZZIEKUNS::AGILITY_ICON
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 160, 0)
draw_icon(62, 128, 32)
draw_icon(98, 128, WLH * 3 + 32)
draw_icon(99, 128, WLH + 32)
draw_icon(100, 128, WLH * 2 + 32)
draw_icon(26, 320, 33)
draw_icon(52, 320, 33 + WLH + 1)
draw_icon(20, 320, 33 + WLH * 2 + 2)
draw_icon(49, 320, 33 + WLH * 3 + 3)
if COZZIEKUNS::CLASS_ICONS.include?(@actor.id)
@icon_number = COZZIEKUNS::CLASS_ICONS[@actor.id]
else
@icon_number = COZZIEKUNS::CLASS_ICONS[0]
end
draw_icon(@icon_number, 128, 0)
draw_actor_face(@actor, 8, 32)
draw_basic_info(160, 32)
draw_parameters(352, 32)
draw_actor_tnl(@actor, 160, WLH * 3 + 32)
draw_equipments(288, 154)
self.contents.font.color = system_color
self.contents.draw_text(320, 0, 80, WLH, "Status:", 0)
end
end
#--------------------------------------------------------------------------
# * Draw Basic Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x, y + WLH * 0)
draw_actor_state(@actor, 400, 0)
draw_actor_hp(@actor, x, y + WLH * 1)
draw_actor_mp(@actor, x, y + WLH * 2)
end
#--------------------------------------------------------------------------
# * Draw Actor Back
# actor : the actor you want
# x : draw spot x-coordinate
# y : draw spot y-coordinate
#--------------------------------------------------------------------------
def draw_actor_back(actor, x, y)
@background_opacity = COZZIEKUNS::BACKGROUND_OPACITY
bitmap = Cache.picture(actor.name + "_bg")
rect = Rect.new(0, 0, 544,416)
self.contents.blt(x, y, bitmap, rect, @background_opacity)
bitmap.dispose
end
#--------------------------------------------------------------------------
# * Draw Equipment
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_equipments(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, Vocab::equip + "s:")
for i in 0..4
draw_item_name(@actor.equips[i], x + 16, y + 11 + WLH * (i + 1))
end
end
#--------------------------------------------------------------------------
# * Draw TNL (To next level)
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : Width
#--------------------------------------------------------------------------
def draw_actor_tnl(actor, x, y, width = 120)
draw_actor_tnl_gauge(actor, x, y, width)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, "E")
self.contents.font.color = hp_color(actor)
last_font_size = self.contents.font.size
xr = x + width
if width < 120
self.contents.draw_text(xr - 44, y, 44, WLH, actor.exp_s, 2)
else
self.contents.draw_text(xr - 99, y, 44, WLH, actor.exp_s, 2)
self.contents.font.color = normal_color
self.contents.draw_text(xr - 55, y, 11, WLH, "/", 2)
self.contents.draw_text(xr - 44, y, 44, WLH, actor.next_exp_s, 2)
end
end
#--------------------------------------------------------------------------
# * Draw TNL gauge
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# width : Width
#--------------------------------------------------------------------------
def draw_actor_tnl_gauge(actor, x, y, width = 120)
gw = width * actor.exp_s / actor.next_exp_s
gc1 = exp_gauge_colour1
gc2 = exp_gauge_colour2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
super
refresh
end
end
#==============================================================================
# ** Window_Biography
#------------------------------------------------------------------------------
# Basically what Yanfly did. Kudos to you, Yanfly.
#==============================================================================
class Window_Biography < Window_Base
#--------------------------------------------------------------------------
# * Initalize
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 154, 288, 416)
@actor = actor
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
unless Input.press?(Input::A)
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 284, WLH, "Biography:", 0)
self.contents.font.color = normal_color
self.contents.font.size = 20
if COZZIEKUNS::BIOGRAPHIES.include?(@actor.id)
text = COZZIEKUNS::BIOGRAPHIES[@actor.id]
else
text = COZZIEKUNS::BIOGRAPHIES[0]
end
self.contents.draw_paragraph(4, 32, 252, WLH * 4, text)
end
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
super
refresh
end
end
#==============================================================================
# ** Window_Status_Help
#------------------------------------------------------------------------------
# Helps you out, I guess...
#==============================================================================
class Window_StatusHelp < Window_Base
#--------------------------------------------------------------------------
# * Initalize
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 544, 60)
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.draw_text(4, 0, 544, WLH, "Press Q and W to switch characters. Press X to exit.")
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Get Experience String
#--------------------------------------------------------------------------
def exp_s
return @exp_list[@level+1] > 0 ? @exp : 1
end
#--------------------------------------------------------------------------
# * Get String for Next Level Experience
#--------------------------------------------------------------------------
def next_exp_s
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] : 1
end
#--------------------------------------------------------------------------
# * Get String for Experience to Next Level
#--------------------------------------------------------------------------
def next_rest_exp_s
return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp) : 1
end
end
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
# This class performs the status screen processing.
#==============================================================================
class Scene_Status < Scene_Base
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
alias coz_ssw_ss_start start
def start
coz_ssw_ss_start
@bio_window = Window_Biography.new(@actor)
@statushelp_window = Window_StatusHelp.new(0, 356)
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
alias coz_ssw_ss_terminate terminate
def terminate
coz_ssw_ss_terminate
@bio_window.dispose
@statushelp_window.dispose
end
#--------------------------------------------------------------------------
# * Update Processing
#--------------------------------------------------------------------------
alias coz_ssw_ss_update update
def update
coz_ssw_ss_update
@bio_window.update
@statushelp_window.update
end
end
Credit
- Cozziekuns
- Modern Algebra, Paragraph Formatter
Thanks
- Yanfly's Scene Stauts Redux, a great inspiration and a great script overall.
- mittenrc, for suggesting a feature.
Support
Just post down here.
Known Compatibility Issues
Guess it won't work with other status screens. But otherwise, none as of yet.