Okay, well, here, this is exactly the code that works properly for me.
#==============================================================================
# ? Window_PlayTime
#------------------------------------------------------------------------------
# This window displays play time on the menu screen.
#==============================================================================
#==============================================================================
# ? Window_PlayTime
#------------------------------------------------------------------------------
# This window displays play time on the menu screen.
#==============================================================================
class Window_PlayTime < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 140, 80)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, -5, 120, 32, "Play Time")
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(-15, 15, 120, 32, text, 2)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
#==============================================================================
# ** Window_Gold
#------------------------------------------------------------------------------
# This window displays amount of gold.
#==============================================================================
class Window_Gold < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 140, 54)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(-20, -5, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(104-cx, -5, cx, 32, $data_system.words.gold, 2)
end
end
#Displays Real Time
class Window_RealTime < Window_Base
#Object Initialization
def initialize
super(0, 0, 140, 80)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
#Refresh
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(10, -5, 120, 32, "Real Time")
@time_string = Time.now
text = @time_string.strftime("%A %H:%M:%S")
self.contents.font.color = normal_color
self.contents.draw_text(-3, 20, 110, 32, text, 2)
end
#Time changes in menu
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
# Displays Location in Menu
class Window_Location < Window_Base
def initialize
super(0, 0, 500, 50)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 20
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
$data_location = load_data("Data/MapInfos.rxdata")
self.contents.draw_text(200, -9, 124, 32, $data_location[$game_map.map_id].name, 2)
self.contents.font.color = system_color
self.contents.draw_text(0, -9, 120, 32, "Location")
end
end
# Displays Game Name
class Window_GameName < Window_Base
def initialize
super(0, 0, 500, 50)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.draw_text(100, -9, 120, 32, "Light's Shadow")
end
end
# Displays the Word "Menu"
class Window_MenuWord < Window_Base
def initialize
super(0, 0, 140, 50)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = crisis_color
self.contents.draw_text(10, -10, 120, 32, "Menu")
end
end
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
# This window displays party member status on the menu screen.
#==============================================================================
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 500, 400)
self.contents = Bitmap.new(width - 32, height - 32) # "Main" window font
self.contents.font.size = 20
refresh
self.active = false
self.index = -1
end
def draw_actor_battler(actor, x, y, opacity = 255)
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
x = i * 120
y = 180
self.contents.blt(x, y, bitmap, src_rect, opacity)
end
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = i * 118
y = 0
actor = $game_party.actors[i]
draw_actor_battler(actor, x, y - 10)
self.contents.font.color = knockout_color
self.contents.draw_text(x, -9, 45, 32, actor.name, 2)
self.contents.font.color = normal_color
draw_actor_class(actor, x, 15)
draw_actor_state(actor, x, 40)
draw_actor_level(actor, x, 110)
# draw exp
self.contents.font.color = system_color
self.contents.draw_text(x, 130, 80, 32, "Exp")
self.contents.draw_text(x, 150, 80, 32, "Next Level")
self.contents.font.color = normal_color
self.contents.draw_text(x + 20, 130, 84, 32, actor.exp_s, 2)
self.contents.draw_text(x + 20, 150, 84, 32, actor.next_rest_exp_s, 2)
# draw hp
self.contents.font.color = system_color
self.contents.draw_text(x, 65, 32, 32, "HP")
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 10, 65, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = normal_color
self.contents.draw_text(x + 60, 65, 12, 32, "/", 1)
self.contents.draw_text(x + 75, 65, 48, 32, actor.maxhp.to_s)
#draw sp
self.contents.font.color = system_color
self.contents.draw_text(x, 85, 32, 32, "SP")
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 10, 85, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = normal_color
self.contents.draw_text(x + 60, 85, 12, 32, "/", 1)
self.contents.draw_text(x + 75, 85, 48, 32, actor.maxsp.to_s)
end
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(@index * 118, 0, 118, 400)
end
end
end
#==============================================================================
# **Scene_StatRef and Window_StatRef
#------------------------------------------------------------------------------
# This class show status reference
#==============================================================================
class Window_StatRef < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.size = 18
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
src_rect = Rect.new(0, 0, 36, 36) # pictures can be 16x16
self.contents.font.color = crisis_color
self.contents.draw_text(250,0,200,32, "Status Reference")
#--------------------------------------------------------------------------
# Change the part where it says "049-Skill06" to whatever Icon you want.
# They have to be in your Icon Folder and it has to be the exact name of
# the picture you want to show
#--------------------------------------------------------------------------
self.contents.blt(0,22, RPG::Cache.icon("050-Skill07"), src_rect, 255)
self.contents.blt(0,44, RPG::Cache.icon("047-Skill04"), src_rect, 255)
self.contents.blt(0,66, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,88, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,110, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,132, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,154, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,176, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,198, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,220, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,242, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,264, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,286, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,308, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,330, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,352, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,374, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,396, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.blt(0,418, RPG::Cache.icon("049-Skill06"), src_rect, 255)
self.contents.font.color = system_color
#--------------------------------------------------------------------------
# Change the part where it says "Status Effect n" to the name of the Status
# Effects you want to display info on.
#--------------------------------------------------------------------------
for i in 1...$data_states.length
self.contents.draw_text(30, 22*i, 170, 32, $data_states[i].name)
end
self.contents.font.color = normal_color
#--------------------------------------------------------------------------
# Change the part where it says "Status Effect n Description" to the description
# of the corresponding Status Effect
#--------------------------------------------------------------------------
self.contents.draw_text(200, 22, 400, 32, "Deals damage over time")
self.contents.draw_text(200, 44, 400, 32, "Buy Head n' Shoulders NOW!!!!!!!!")
self.contents.draw_text(200, 66, 400, 32, "Status Effect 3 Description")
self.contents.draw_text(200, 88, 400, 32, "Status Effect 4 Description")
self.contents.draw_text(200, 110, 400, 32, "Status Effect 5 Description")
self.contents.draw_text(200, 132, 400, 32, "Status Effect 6 Description")
self.contents.draw_text(200, 154, 400, 32, "Status Effect 7 Description")
self.contents.draw_text(200, 176, 400, 32, "Status Effect 8 Description")
self.contents.draw_text(200, 198, 400, 32, "Status Effect 9 Description")
self.contents.draw_text(200, 220, 400, 32, "Status Effect 10 Description")
self.contents.draw_text(200, 242, 400, 32, "Status Effect 11 Description")
self.contents.draw_text(200, 264, 400, 32, "Status Effect 12 Description")
self.contents.draw_text(200, 286, 400, 32, "Status Effect 13 Description")
self.contents.draw_text(200, 308, 400, 32, "Status Effect 14 Description")
self.contents.draw_text(200, 330, 400, 32, "Status Effect 15 Description")
self.contents.draw_text(200, 352, 400, 32, "Status Effect 16 Description")
self.contents.draw_text(200, 374, 400, 32, "Status Effect 17 Description")
self.contents.draw_text(200, 396, 400, 32, "Status Effect 18 Description")
self.contents.draw_text(200, 418, 400, 32, "Status Effect 19 Description")
end
end
class Scene_StatRef
def main
@StatRef_window = Window_StatRef.new
Graphics.transition
# Main loop
loop do
# Update Game Screen
Graphics.update
# Update Input Information
Input.update
# Frame Update
update
# Abort loop if screen changes
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of window
@StatRef_window.dispose
end
def update
# If pressing ESC
if Input.trigger?(Input::B)
# Play SE
$game_system.se_play($data_system.cancel_se)
# Return to Status Window
$scene = Scene_Menu.new(3)
return
end
if Input.trigger?(Input::LEFT)
# Play SE
$game_system.se_play($data_system.cancel_se)
# Return to Status Window
$scene = Scene_Menu.new(3)
return
end
end
end
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs menu screen processing.
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# ????????????
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status ->"
s5 = "Save"
s6 = "Exit"
@command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
# If # Party Members = 0
if $game_party.actors.size == 0
# Disable Items, Skills, Equipment, and Status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# If Save is Forbidden
if $game_system.save_disabled
# Disable Save
@command_window.disable_item(4)
end
# Displays Play Time
@playtime_window = Window_PlayTime.new
@playtime_window.x = 500
@playtime_window.y = 50
# Displays the "Word Menu" Window
@wordmenu_window = Window_MenuWord.new
@wordmenu_window.x = 500
@wordmenu_window.y = 0
# Displays the Gold Window
@gold_window = Window_Gold.new
@gold_window.x = 500
@gold_window.y = 426
# The Menu Status Screen
@status_window = Window_MenuStatus.new
@status_window.x = 0
@status_window.y = 0
# Game Name Window
@gamename_window = Window_GameName.new
@gamename_window.x = 0
@gamename_window.y = 400
# Location Window
@map_window = Window_Location.new
@map_window.x = 0
@map_window.y = 440
# Real Time Window
@realtime_window = Window_RealTime.new
@realtime_window.x = 500
@realtime_window.y = 130
# 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
@command_window.dispose
@playtime_window.dispose
@gold_window.dispose
@status_window.dispose
@wordmenu_window.dispose
@map_window.dispose
@realtime_window.dispose
@gamename_window.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@command_window.update
@playtime_window.update
@gold_window.update
@status_window.update
@map_window.update
@realtime_window.update
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If status window is active: call update_status
if @status_window.active
update_status
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when command window is active)
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::RIGHT)
case @command_window.index
when 3
# Play decision SE
$game_system.se_play($data_system.decision_se)
$scene = Scene_StatRef.new
end
end
# If C button was pressed
if Input.trigger?(Input::C)
# If command other than save or end game, and party members = 0
if $game_party.actors.size == 0 and @command_window.index < 4
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Branch by command window cursor position
case @command_window.index
when 0 # item
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
when 1 # skill
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4 # save
# If saving is forbidden
if $game_system.save_disabled
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to save screen
$scene = Scene_Save.new
when 5 # end game
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when status window is active)
#--------------------------------------------------------------------------
def update_status
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Make command window active
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 1 # skill
# If this actor's action limit is 2 or more
if $game_party.actors[@status_window.index].restriction >= 2
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to skill screen
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to equipment screen
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to status screen
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
This has both the CMS and Scene_StatRef (and Window_StatRef). If it still doesn't work, load the script into a new project and test it. If it doesn't work in he new project, then send that project to me.