10-22-2006, 01:00 PM
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
This is my first script at Creation Asylum, and the third script I've made.
This is the RX-Stats screen. All you need to is add the following script above the script "main" in the script database and put a picture in you "pictures" folder, or you can download the demo.
Here is the demo:
Demo
Heres the script:
Code:
#==============================================================================
# This is the RX-Status Screen by Marked(22.10.06) Script No.:03
# This is a simple script thats different from most other custom screens
# because it dosent contain any visible windows.
# The script is free for all, with credit to Marked.
# The script should be easy to read and understand as there are comments
# through most of it.
# For more scripts go to: www.rmxp.110mb.com/forums/index.php
#==============================================================================
#==============================================================================
# ** Scene_Status
#------------------------------------------------------------------------------
# This class performs status screen processing.
#==============================================================================
class Scene_Status
#--------------------------------------------------------------------------
# * Object Initialization
# actor_index : actor index
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
#==============================================
# Setting up Background Image
#==============================================
@background = Sprite.new
@background.bitmap = RPG::Cache.picture("background")
@background.x = 0
@background.y = 0
dispose = [@background]
# Get actor
@actor = $game_party.actors[@actor_index]
# Make status window
@status_window_rx = Window_StatusRX.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_rx.dispose
@background.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
#==============================================================================
# ** Window_RXStatus
#------------------------------------------------------------------------------
# This is the window for the scene
#==============================================================================
class Window_StatusRX < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.windowskin = RPG::Cache.windowskin("")
self.contents.clear
$defaultfont = "Tahoma"
#--------------------------------------------------------------------------
# * Define font and font size for numbers
#--------------------------------------------------------------------------
self.contents.font.name = $defaultfont
self.contents.font.size = 20
#--------------------------------------------------------------------------
# * Number Strings - Status
#--------------------------------------------------------------------------
self.contents.draw_text(62, 113, 84, 32, @actor.hp.to_s, 5)
self.contents.draw_text(62, 113+51, 84, 32, @actor.sp.to_s, 5)
self.contents.draw_text(62, 113+51+52+52, 84, 32, @actor.level.to_s, 5)
self.contents.draw_text(-10, 113+51+52+52+52, 84, 32, @actor.exp_s, 2)
self.contents.draw_text(-5, 113+52+52+52+52+52, 84, 32, @actor.next_rest_exp_s, 2)
#--------------------------------------------------------------------------
# * Number Strings - Parameters
#--------------------------------------------------------------------------
self.contents.draw_text(62+208, 113, 84, 32, @actor.atk.to_s, 5)
self.contents.draw_text(62+208, 113+52, 84, 32, @actor.pdef.to_s, 5)
self.contents.draw_text(62+208, 113+52+52, 84, 32, @actor.mdef.to_s, 5)
self.contents.draw_text(62+208, 113+52+52+52, 84, 32, @actor.str.to_s, 5)
self.contents.draw_text(62+208, 113+52+52+52+52, 84, 32, @actor.dex.to_s, 5)
self.contents.draw_text(62+208, 113+52+52+52+52+53, 84, 32, @actor.agi.to_s, 5)
self.contents.draw_text(62+208, 113+52+52+52+52+52+54, 84, 30, @actor.int.to_s, 5)
#--------------------------------------------------------------------------
# * Word Strings - Status
#--------------------------------------------------------------------------
draw_actor_name(@actor, 4, 13)
draw_actor_class(@actor, 52, 35)
draw_actor_state(@actor, 62, 113+51+51)
#--------------------------------------------------------------------------
# * Setting up word strings
# This part was taken from window base and edited so the icons dont show
# up beside the weapons name.
#--------------------------------------------------------------------------
def draw_item_name_stats(item, x, y)
if item == nil
return
end
self.contents.font.color = normal_color
self.contents.draw_text(x + 28, y, 212, 32, item.name)
end
#--------------------------------------------------------------------------
# * Word Strings - Weapons and armour
#--------------------------------------------------------------------------
draw_item_name_stats($data_weapons[@actor.weapon_id], 457, 113)
draw_item_name_stats($data_armors[@actor.armor1_id], 457, 113+51)
draw_item_name_stats($data_armors[@actor.armor2_id], 457, 113+52+51)
draw_item_name_stats($data_armors[@actor.armor3_id], 457, 113+52+52+51)
draw_item_name_stats($data_armors[@actor.armor4_id], 457, 114+52+52+52+50)
end
end
Put the following picture in your "Pictures" folder.
(Background <--- Dead link)
You will have to rename that picture "background" because when I uploaded it to imageshack, the name changed.
I know that its only one screen, and dosent fit with the rest of the menu. But if people like it, I may make a complete menu similar to this. Please leave your comments.