#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# StormTronics CMS by Blizzard
# Version: 5.0b - Hybrid Edition
# Type: Enhanced Custom Menu System
# Date v5.0: 27.8.2007
# Date v5.0b: 12.9.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
# 97% compatible with SDK v1.x. 80% compatible with SDK v2.x. Glitchs with
# Fukuyama's Caterpillar script (but not with mine). Designed only for 8
# elements. WILL corrupt old savegames.
#
#
# Features:
#
# - completely animated and graphically optimized (lag-free)
# - own set of windowskins, fonts and icons for every status change and
# element
# - saves all changed options together with the savefile
# - menu commands "Item", "Equipment", "Skill", "Equip", "Status", "Options",
# "Save", "Load", "Exit"
# - Item submenu: "Items", "Sort" (by quantity or by alphabet), "Quest Items"
# - Equipment submenu shows information about equippable items for the chosen
# character, switch the character with LEFT and RIGHT
# - Skill submenu shows available skills for use for the chosen character,
# switch character with L and R, menu status window in background shows the
# chosen character
# - Equip submenu shows complete information about Status resistance/attack,
# Element resistance/attack and complete character stat changing (has
# even "max HP" and "max SP" available if you are using "Weapon/Armor HP/SP
# Plus")
# - Status screen with overall information about character status
# - Options submenu with "BGM Volume", "SFX Volume", "Battle BGM",
# "Battle Cam" (if using KGC's Pseudo 3D Battle Camera with my add-on for
# disabling), "Bar Style", "Bar Opacity" (if you are using Gradient Bar
# Styler), "Font" and "Windowskin" (both with preview)
# - Standard Save, Load and Exit commands
# - uses "Ultimate Font Override", so the font changes will affect RPG Maker
# XP versions 1.00, 1.01, 1.02 and 1.03 (including Dyna Edition and
# Postality Knights Edition Enhanced) and the font even gets saved with the
# savedata
#
# new in Hybrid Edition:
# - supports either windowskin background or custom images:
# >>> All StormTronics CMS Editions in one! <<<
# - compatible with all my scripts (even DREAM v4.0)
# - draws SR in the menu if CLRS was detected
# - supports any number of party members
# - removed some special add-ons, please get Tons of Add-ons if you want to
# continue using them, ST CMS will recognize Tons v4.98b and higher
# - more than 1500 code lines less than Nemesis Edition and almost 2000
# code lines less than Metal-Plate Edition
# - removes options from Options menu that are not / cannot being used at all
# - possibility to use a different equip system
# - doesn't need skin icons anymore, the icon is drawn from the skin directly
# - improved windowskins from "The Legend of Lexima™ IV - Chaos Project"
#
#
# Instructions:
#
# Copy your character faces into a the folder called "Characters". The
# facesets MUST have the same names as the character spritesets with a _face
# added at the end. Also copy the windowskins and the icons. Don't forget to
# include the font files used by the game in your game folder. Also change
# the variable ID in the conditional branches if you use another variable
# than 49.
#
#
# Configuration:
#
# CAM_AVAILABLE - set to true if you use KGC 3DPBC
# FACESETS - set to true if you want to use facesets
# BGM_Variable - ID number of the variable for the Battle BGM changer
# BGM_Lock - ID number of the switch used to temporarily disable
# the option of changing the Battle BGM, for that, just
# turn the switch on and off to disable and enable this
# option
# WEAPONS_AND_ARMORS - set to false to not show weapons and armors in the
# Item screen
# $quest_items - add any item IDs that are supposed to be quest items,
# so the CMS can separate them
# BATTLE_BGMS - add any battle BGMs you are using
# SKINS - add any skin name you are using
# SKINS - add any font name you are using, be sure to include
# the font install files in your game release as some
# people may not have those fonts installed
# SAVE_NAME - name of your savefiles (usually "Save")
# SAVE_EXTENSION - extension of your savefiles (usually "rxdata")
# SAVE_FILES_NUMBER - number of savefiles you are using (usually 4)
# MAP_BACKGROUND - set to true to show map as background, otherwise
# if CMS_EDITION is not nil or false the
# "CMSFullscreen" image will be displayed
# CUSTOM_EQUIP_SCENE - set this to true if you want to use a different equip
# scene and make this CMS compatible even with exotic
# Equipment Systems
# FONT_BACKGROUND_FIX - set this to true if you want dark font colors to be
# used in the menu, this comes in handy when the
# custom background images you use are bright
# MIRROR - flips all horizontal window positions
# CMS_EDITION - set this to false or nil if you want to use Nemesis
# Edition, set to folder name where in the Pictures/CMS
# the images should be loaded from if you want to use
# custom images as background
#
# The syntax $game_system.get_cam can be used by an event (Call script
# command) to restore the user's setting of the KGC 3DPBC if a forced cam
# control was initiated during an event.
#
# You can use $game_system.reset_battle_bgm to reset the battle BGM to the
# player's menu setting if you have changed it for i.e. a boss fight via
# event.
#
#
# FAQ:
#
# - Problem:
# I get an error that some icons can't be found. how do I solve this?
#
# - Solution:
# Copy the icons from the demo or download them and place the into the Icons
# folder into another folder called "CMS". Done.
#
# - Problem:
# I still get an error.
#
# - Solution:
# Rename the icons. If your elements were renamed and don't have the standard
# names, your icons need to be renamed as well. Same goes for status effects.
# Also be sure to add new icons with new names if you have more than the
# basic 8 elements and/or more than the basic 16 status effects in your
# database.
#
# - Question:
# Can I use my own skins, icons, fonts, battle BGMs, etc...?
#
# - Answer:
# Of course. Only be sure to change the appropriate options in the script and
# to use the appropriate names, so everything can function normally after
# that.
#
# - Question:
# Can this CMS be connected with other scripts? If yes, how and how much work
# is it?
#
# - Answer:
# Yes, it can. A little bit of scripting and enhancing the functions of the
# CMS are needed if it is going to be connected with other scripts. How much
# of additional work it can cause only depends how big the script merge is. A
# simple changing of the battle menu to display status effects in icons
# should take between 15~30 minutes of scripting and testing. Adding another
# option into the Options menu should also take only 15~30 minutes of
# scripting and testing. Even adding an entire series of new windows or
# implementing another Scene into the menu also won't take more than 30
# minutes, because the menu itself works with the "sub-scene" system, saving
# this way RAM and CPU.
#
# - Question:
# What is the "sub-scene" system? Also I have tried other animated CMS-es.
# Why is this one so lag-free?
#
# - Answer:
# It is lag-free just because of the "sub-scene" system. This system is also
# used in the "Scene_Battle". It only creates windows and handels them when
# they are needed or used, otherwise they get disposed or not created at all.
# In this script this method is being used to a possible maximum.
#
# - Question:
# Is this for real? This CMS doesn't even have 3000 lines of code!
#
# - Answer:
# Actually not even 2500 if you don't count the instructions.
#
# - Question:
# How is such a large collection of features possible with so relatively few
# lines of code?!
#
# - Answer:
# Smart coding. =P
#
#
# Additional scripts/snipplets/add-ons:
#
# - Ultimate Font Override v1.0b (by Blizzard)
# - BGM/SFX Volume Control with volume correction v1.0b (by Blizzard)
# - Map Name/Location v1.0b (by Blizzard)
# - Elemental Vulnerability Graph v1.0b (by Blizzard)
# - Battle BGM control v2.0b (by Blizzard)
# - Options control layout and funcionality v4.0b (by Blizzard)
# - CMS layout/funcionality v5.0b (by Blizzard)
# - optimized code and delagged by "sub-scene" window handling (by Blizzard)
#
# If you experience the "Stack level too deep" error, you may already have
# one of the scripts listed above and it conflicts with itself, because of
# aliased recursive calling. Try removing script by script and testing
# everything. Don't forget to backup you Scripts.rxdata before doing so.
# Scripts.rxdata is a file that contains your current scripts and is located
# in the Data folder of your game folder.
#
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# basic config
CAM_AVAILABLE = false
FACESETS = false
BGM_Variable = 49
BGM_Lock = 49
WEAPONS_AND_ARMORS = true
$quest_items = [23, 24, 25, 26, 27, 28, 29, 30, 31, 32]
# custom game configs
BATTLE_BGMS = [
# ['BGM_NAME', VOLUME, PITCH, 'DISPLAY_NAME']
['001-Battle01', 100, 100, 'BGM 1'],
['002-Battle02', 100, 100, 'BGM 2'],
['003-Battle03', 100, 100, 'BGM 3'],
['004-Battle04', 100, 100, 'BGM 4']]
SKINS = []
FONTS = []
# save file options
SAVE_NAME = 'Save'
SAVE_EXTENSION = 'rxdata'
SAVE_FILES_NUMBER = 4
# extra options
MAP_BACKGROUND = true
CUSTOM_EQUIP_SCENE = false
FONT_BACKGROUND_FIX = false
MIRROR = false
CMS_EDITION = false # 'Metal-Plate'
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
CAM_Variable = 25 if CAM_AVAILABLE # change only if changed in the 3DPBC script
#==============================================================================
# Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
def now_exp
return (@exp-@exp_list[@level])
end
def next_exp
return (@exp_list[@level+1] > 0 ? @exp_list[@level+1]-@exp_list[@level] : 0)
end
def test_equip(equip_type, id)
case equip_type
when 0 then old_id, @weapon_id = @weapon_id, id
when 1 then old_id, @armor1_id = @armor1_id, id
when 2 then old_id, @armor2_id = @armor2_id, id
when 3 then old_id, @armor3_id = @armor3_id, id
when 4 then old_id, @armor4_id = @armor4_id, id
end
tested = [self.maxhp, self.maxsp, self.atk, self.pdef, self.mdef, self.str,
self.dex, self.agi, self.int, self.eva]
case equip_type
when 0 then @weapon_id = old_id
when 1 then @armor1_id = old_id
when 2 then @armor2_id = old_id
when 3 then @armor3_id = old_id
when 4 then @armor4_id = old_id
end
return tested
end
end
#==============================================================================
# Bitmap
#==============================================================================
class Bitmap
if $tons_version == nil || $tons_version < 3.71
alias init_ultimate_font_override_later initialize
def initialize(w, h = nil)
if w.is_a?(Numeric) && h.is_a?(Numeric)
init_ultimate_font_override_later(w, h)
else
init_ultimate_font_override_later(w)
end
if $game_system != nil && $game_system.fontname != nil &&
!$scene.is_a?(Scene_Title)
self.font.name = $game_system.fontname
self.font.size = $game_system.fontsize
else
self.font.name = 'Arial'
self.font.size = 24
end
end
if !$crls || !BAR_STYLES
def gradient_bar(x, y, w, color1, color2, color3, rate)
offset = 5
x += offset
y += 26
(0...offset+3).each {|i| fill_rect(x-i, y+i-2, w+3, 1, Color.new(0, 0, 0))}
(0...offset+1).each {|i| fill_rect(x-i, y+i-1, w+1, 1, Color.new(255, 255, 255))}
(0...w+offset).each {|i|
red = color3.red * i / (w + offset)
green = color3.green * i / (w + offset)
blue = color3.blue * i / (w + offset)
oy = i < offset ? offset-i : 0
off = i < offset ? i : i > w ? w+offset-i : offset
fill_rect(x+i-offset+1, y+oy-1, 1, off, Color.new(red, green, blue))}
if (w*rate).to_i >= offset
(0...(w*rate).to_i+offset).each {|i|
red = color1.red + (color2.red-color1.red)*i/((w+offset)*rate)
green = color1.green + (color2.green-color1.green)*i/((w+offset)*rate)
blue = color1.blue + (color2.blue-color1.blue)*i/((w+offset)*rate)
oy = i < offset ? offset-i : 0
off = i < offset ? i : i > w*rate ? (w*rate).to_i+offset-i : offset
fill_rect(x+i-offset+1, y+oy-1, 1, off, Color.new(red, green, blue))}
else
(0...(w*rate).to_i).each {|i| (0...offset-1).each {|j|
red = color1.red + (color2.red-color1.red) * i / (w * rate)
green = color1.green + (color2.green-color1.green) * i / (w * rate)
blue = color1.blue + (color2.blue-color1.blue) * i / (w * rate)
set_pixel(x+i-j+1, y+j-1, Color.new(red, green, blue))}}
end
end
end
end
def draw_element_graph(x_plus, y_plus, rad, color, limit = -1)
(-rad-1...0).each {|r| (r...0).each {|x|
color.alpha = 255 * (rad+1.0-r.abs)/(rad+1)
y = (r.abs * Math.sin(Math.acos(x/r.to_f))).to_i
h = y * 2
case limit
when 1, 8 then h = (y < x.abs ? 0 : y - x.abs)
when 2, 7 then y > x.abs ? h = y = x.abs : h = y
when 3, 6
y > x.abs ? h = y = x.abs : h = y
y = 0 if y > 0
when 4, 5
h = (y < x.abs ? 0 : y - x.abs)
y = -x.abs
end
if limit < 5
fill_rect(rad*2-x + x_plus, rad-y + y_plus, 1, h, color)
else
fill_rect(rad*2+x+1 + x_plus, rad-y + y_plus, 1, h, color)
end}}
end
end
#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
alias draw_actor_graphic_st_cms_later draw_actor_graphic
def draw_actor_graphic(actor, x, y)
if actor != nil && actor.character_name != ''
if self.is_a?(Window_CMSMenuStatus) && FACESETS
bitmap = RPG::Cache.character("#{actor.character_name}_face", actor.character_hue)
x -= bitmap.width / 2
y -= bitmap.height
draw_actor_face_st_cms(actor, x, y)
else
draw_actor_graphic_st_cms_later(actor, x, y)
end
end
end
def draw_actor_face_st_cms(actor, x, y)
if $tons_version == nil || $tons_version < 3.71 || !FACE_HUE
hue = 0
else
hue = (FACE_HUE ? actor.character_hue : 0)
end
bitmap = RPG::Cache.character("#{actor.character_name}_face", hue)
src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
self.contents.blt(x, y, bitmap, src_rect)
end
def draw_actor_battler(actor, x, y)
if actor != nil && actor.battler_name != ''
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw,ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end
def draw_actor_exp(actor, x, y, width = 144)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 48, 32, 'EXP')
if actor.exp_s.to_i > 999999
w = self.contents.text_size('999999').width
else
w = self.contents.text_size(actor.exp_s).width
end
if actor.next_exp_s.to_i > 999999
w2 = self.contents.text_size('999999').width
else
w2 = self.contents.text_size(actor.next_exp_s).width
end
self.contents.font.color = normal_color
self.contents.draw_text(x + 108 - w2, y, w2, 32, actor.exp_s, 2)
self.contents.draw_text(x + 108, y, 12, 32, '/', 1)
self.contents.draw_text(x + 120, y, w2, 32, actor.next_exp_s)
end
def draw_actor_exp_alt(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 64, 32, 'next')
self.contents.font.color = normal_color
self.contents.draw_text(x + 56, y, 84, 32, actor.next_rest_exp_s, 2)
end
def draw_actor_name2(actor, x, y, w, a)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, w, 32, actor.name, a)
end
def up_color
return Color.new(0, 255, 0)
end
def down_color
return Color.new(255, 0, 0)
end
alias draw_actor_parameter_st_cms_later draw_actor_parameter
def draw_actor_parameter(actor, x, y, type)
if type == 7
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, 32, 'Evasion')
self.contents.font.color = normal_color
self.contents.draw_text(x + 120, y, 36, 32, actor.eva.to_s, 2)
else
draw_actor_parameter_st_cms_later(actor, x, y, type)
end
end
def draw_actor_element_vulnerability(actor, x, y, rad = 60)
colors = []
(1..8).each {|i|
rate = actor.element_rate(i)
if rate < 0
colors.push(Color.new(0, 255 * (100-rate.abs) / 200, 255))
elsif rate == 0
colors.push(Color.new(0, 128, 255))
elsif rate <= 50
colors.push(Color.new(0, 255 * (rate+50) / 100, 255 * (50-rate) / 50))
elsif rate <= 100
colors.push(Color.new(255 * (rate-50) / 50 , 255, 0))
elsif rate <= 200
colors.push(Color.new(255, 255 * (200-rate) / 100, 0))
else
colors.push(normal_color)
end}
(1..8).each {|i|
self.contents.draw_element_graph(x + 16, y + 32, rad, colors[i-1], i)}
save_color = self.contents.font.color.clone
(1..8).each {|i|
str1 = $data_system.elements[i]
str2 = "#{actor.element_rate(i)}%"
w1 = self.contents.text_size(str1).width
w2 = self.contents.text_size(str2).width
case i
when 1 then x2, y2, x3, y3 = x+152, y+20, x+168, y+4
when 2 then x2, y2, x3, y3 = x+176, y+56, x+192, y+40
when 3 then x2, y2, x3, y3 = x+176, y+92, x+192, y+108
when 4 then x2, y2, x3, y3 = x+152, y+128, x+168, y+144
when 5 then x2, y2, x3, y3 = x+120-w1, y+128, x+104-w2, y+144
when 6 then x2, y2, x3, y3 = x+96-w1, y+92, x+80-w2, y+108
when 7 then x2, y2, x3, y3 = x+96-w1, y+56, x+80-w2, y+40
when 8 then x2, y2, x3, y3 = x+120-w1, y+20, x+104-w2, y+4
end
self.contents.font.color = save_color
self.contents.draw_text(x2, y2, w1, 32, str1)
self.contents.font.color = colors[i-1]
self.contents.draw_text(x3, y3, w2, 32, str2)}
self.contents.font.color = save_color
end
if $Blizz_Art
alias draw_actor_exp_blizzart_later draw_actor_exp
def draw_actor_exp(actor, x, y, w = 148)
if $game_system.BARS
w -= 12
rate = (actor.next_exp != 0 ? actor.now_exp.to_f / actor.next_exp : 1)
if rate < 0.5
color1 = Color.new(20 * rate, 60, 80, 192)
color2 = Color.new(60 * rate, 180, 240, 192)
elsif rate >= 0.5
color1 = Color.new(20 + 120 * (rate-0.5), 60 + 40 * (rate-0.5), 80, 192)
color2 = Color.new(60 + 360 * (rate-0.5), 180 + 120 * (rate-0.5), 240, 192)
end
color3 = Color.new(80, 80, 80, 192)
self.contents.gradient_bar(x, y, w, color1, color2, color3, rate)
end
draw_actor_exp_blizzart_later(actor, x, y)
end
alias draw_actor_exp_new2 draw_actor_exp_alt
def draw_actor_exp_alt(actor, x, y, w = 148)
w -= 12
rate = (actor.next_exp != 0 ? actor.now_exp.to_f / actor.next_exp : 1)
if rate < 0.5
color1 = Color.new(20 * rate, 60, 80)
color2 = Color.new(60 * rate, 180, 240)
elsif rate >= 0.5
color1 = Color.new(20 + 120 * (rate-0.5), 60 + 40 * (rate-0.5), 80)
color2 = Color.new(60 + 360 * (rate-0.5), 180 + 120 * (rate-0.5), 240)
end
color3 = Color.new(80, 80, 80, 192)
self.contents.gradient_bar(x, y, w, color1, color2, color3, rate)
draw_actor_exp_new2(actor, x, y)
end
end
end
#==============================================================================
# Window_CMSStatus
#==============================================================================
class Window_Status < Window_Base
def initialize(actor)
@background = 'CMSFullscreen'
super(0, 512, 640, 480)
self.contents = Bitmap.new(width - 32, height - 32)
@actor, self.active, self.z = actor, true, 2999
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(224, 0, 120, 32, @actor, 1)
draw_actor_battler(@actor, 284, 232)
draw_actor_class(@actor, 400, 32)
draw_actor_level(@actor, 400, 0)
draw_actor_state(@actor, 400, 64, 168)
draw_actor_hp(@actor, 400, 92, 172)
draw_actor_sp(@actor, 400, 122, 172)
if $crls
if DRAW_BAR
draw_actor_sr_with_bar(@actor, 400, 152, 172)
else
draw_actor_sr(@actor, 400, 152, 172)
end
draw_actor_exp(@actor, 400, 182, 172)
else
draw_actor_exp(@actor, 400, 152, 172)
end
(0..7).each {|i| draw_actor_parameter(@actor, 4, i*28, i)}
self.contents.font.color = system_color
w = self.contents.text_size('Resistances').width
self.contents.draw_text(365, 244, w, 32, 'Resistances')
self.contents.font.size -= 4
draw_actor_element_vulnerability(@actor, 320, 268)
self.contents.font.size += 4
self.contents.font.color = system_color
self.contents.draw_text(84, 244, 96, 32, 'Equipment')
self.contents.draw_text(4, 276, 96, 32, $data_system.words.weapon)
self.contents.draw_text(4, 308, 96, 32, $data_system.words.armor1)
self.contents.draw_text(4, 340, 96, 32, $data_system.words.armor2)
self.contents.draw_text(4, 372, 96, 32, $data_system.words.armor3)
self.contents.draw_text(4, 404, 96, 32, $data_system.words.armor4)
equips = [$data_weapons[@actor.weapon_id], $data_armors[@actor.armor1_id],
$data_armors[@actor.armor2_id], $data_armors[@actor.armor3_id],
$data_armors[@actor.armor4_id]]
equips.each_index {|i|
if @actor.equippable?(equips[i])
draw_item_name(equips[i], 108, 276 + i*32)
else
self.contents.font.color = (i == 0 ? knockout_color : crisis_color)
self.contents.draw_text(108, 276 + i*32, 192, 32, 'Nothing equipped')
end}
end
def update_actor(actor)
@actor = actor
refresh
end
end
#==============================================================================
# Scene_Menu
#==============================================================================
class Window_Status
del_status if @playerstatus_window != nil
def del_status
@playerstatus_window.dispose
@playerstatus_window = nil
end
move_da_status if @playerstatus_window != nil && @playerstatus_window.y > 0
if @moved
@moved = false
return
end
def move_windows(wins, border, mdiff, lead, xy, acc = false)
if acc
diff = [[((xy ? lead.x : lead.y)-border).abs, mdiff].min, 1].max
else
diff = [[((xy ? lead.x : lead.y)-border).abs/2, mdiff].min, 1].max
end
wins[0].each {|win| win.x += diff if win != nil}
wins[1].each {|win| win.x -= diff if win != nil}
wins[2].each {|win| win.y += diff if win != nil}
wins[3].each {|win| win.y -= diff if win != nil}
@moved = true
end
def move_da_outro
@flag = true
lead = @status_windows[0]
x_plus = [@command_window]
x_minus = @status_windows + @target_windows + [@skill_window, @help_window]
y_plus = [@info_window]
y_minus = [@item_choose_window, @items_window1, @items_window2, @help_window]
move_windows([x_plus, x_minus, y_plus, y_minus], 0, 128, lead, true, true)
end
def move_da_selection(lead = @status_windows[@actor_index])
if lead.dir == 1
move_windows([[], [], [], @status_windows], 360, 32, lead, false)
else
move_windows([[], [], @status_windows, []], 0, 32, lead, false)
end
end
def move_da_status(win = @playerstatus_window)
move_windows([[], [], [], [win]], 0, 64, win, false)
end
@playerstatus_window = Window_Status.new(@actor)
@status_windows.each {|win| win.active = false}
def update_playerstatus
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@actor_index = -1
del_status
elsif Input.trigger?(Input::R) || Input.trigger?(Input::RIGHT) ||
Input.trigger?(Input::L) || Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
if Input.trigger?(Input::R) || Input.trigger?(Input::RIGHT)
@actor_index = (@actor_index+1) % $game_party.actors.size
elsif Input.trigger?(Input::L) || Input.trigger?(Input::LEFT)
@actor_index += $game_party.actors.size-1
@actor_index %= $game_party.actors.size
end
@actor = $game_party.actors[@actor_index]
@playerstatus_window.update_actor(@actor)
end
end
end