http://pogugli.com/?6222
Вид для печати
Спасибо)
в XAS есть система бегу, прыга и т.д....А найти его можно на Atelier RGSS...
http://atelier-rgss.com/Image/Links/Mog_Banner.gif
Всем доброго времени суток!
ищу скрипт на VX Ace который поможет реализовать мою задумку!
Мне нужно чтобы область видимости была не больше 6 клеток(хочу типо хоррор сделать)
Лазил я по разным сайтам и проектам и подобного не нашел наверное слепой я!
Заранее спасибо!
И еще такой вопрос помогите пережевать этот скрипт (http://victorscripts.wordpress.com/r.../actor-events/) что то не пойму как его использовать =)
Иногда кажется выбор персонаже через ивенты легче =)
Хочу использовать в своем проекте Zer0 CMS, но для его работы требуется Tons of Add-ons и на выбор CCTS или ATES. Насчет CCTS ничего не имею против, так как ее тоже хочу использовать, но Tons of Add-ons мне не нужен, там много лишнего. Можно ли как-нибудь убрать привязку CMS к ToA? Если нет, то можно ли вычленить то, что необходимо для работы CMS, и в отдельный скрипт убрать?
Можно, смотришь какие скрипты CMS оттуда использует и удаляешь остальные.
true, значит что скрипт нужен для работы. Там все разделы очень хорошо организованы, но все равно надо понимать что удаляешь.PHP код:
@BETTER_TILEMAP_UPDATE = false
@CENTER_BATTLER = false
@BARS = true # Required for CMS
@LOCATION_NAMES = false
@BLACKFADE = false
@SHADED_TEXT = true # Required for CMS
@HUD = false
@TREMBLE = false
@ANIMATION_STACK = false
@FACESETS = false
@CATERPILLAR = false
@ARROW_OVER_PLAYER = false
@ANIMATED_BATTLE_BACKGROUND = false
@MAP_AS_BATTLEBACK = false
@FACESETS_DSS = false
@STATUS_ICONS = true #
@ANIBATTLERS_NON_ACTION_BS = false
@DEATH_IMAGE = false
@TERRAIN_BATTLEBACKS = false
Значит, придется посидеть и помозговать, потому как полезные мне скрипты надо оставить. Сейчас и займусь.
Arnon, спасибо)
Доброго времени суток)
Вот такая проблема есть скрипт нужно убрать лишнее:
А именно биографию персонажей и описание классов.Код:#==============================================================================
#
# Yanfly 6 - Status Menu
# --- Last Date Updated: 2011.09.26
# --- Level: Easy, Normal
# Requires: n/a
#
#==============================================================================
$imported = {} if $imported == nil
$imported["Y6-StatusMenu"] = true
#==============================================================================
# Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# o 2011.09.26 - Updated window positions.
# o 2011.09.09 - Updated compatibility for Y6 Performance Screen.
# o 2011.09.05 - Finished Script after many distractions.
# o 2011.09.02 - Started Script.
#
#==============================================================================
# Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# For those who use Yanfly Engine 6 scripts, you may have realized that sooner
# or later, the Status window isn't sufficient at displaying data and stats
# provided by those scripts. This updated status menu will allow players access
# to the data and information regarding the new features.
#
#==============================================================================
# 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.
#
# Adjust the module as you see fit. Everything else is plug and play.
#
#==============================================================================
# Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Note: This script may not work with former Yanfly Engine scripts.
# Use Yanfly Engine 6 scripts to work with this if available.
#==============================================================================
module Y6
module STATUS
#--------------------------------------------------------------------------
# - Command Menu -
#--------------------------------------------------------------------------
# This section will adjust what commands appear in the upper left corner
# of the status scene and the vocabulary used with it. It will also adjust
# parts of the EXP Gauge shown in the upper right window.
#--------------------------------------------------------------------------
# This array determines what items will appear in the status scene and
# what order they appear in. Remove them if you don't want them to appear.
COMMANDS =[
:general, # Shows general overview of character.
:parameters, # Shows basic parameters with a gauge comparison.
:statistics, # Shows secondary bonuses. Requires Y6 Battle Stats.
:performance, # Shows battle performance. Requires Y6 Performance Screen.
:background, # Shows character's story if any is used.
] # Do not remove this.
# This hash determines how the vocabulary appears in your game. Modify them
# as you see fit if you wish to rename certain aspects.
COMMAND_VOCAB ={
# :command => String
:general => "Общее данные",
:parameters => "Параметры",
:statistics => "Статистика",
:performance => "Performance",
:background => "Биография",
} # Do not remove this.
# This determines the colour of the EXP bars used for the actor's exp
# gauge in the status menu.
EXP_TEXT = "Опыт" # Text used for EXP
PERCENT_EXP = "%1.2f%%" # Text format used for EXP percentage
EXP_GAUGE_1 = 20 # Colour 1 for the EXP Gauge
EXP_GAUGE_2 = 21 # Colour 2 for the EXP Gauge
# Use the EXP bar on the main menu selection?
USE_FOR_MAIN_MENU = true
#--------------------------------------------------------------------------
# - General Status Window -
#--------------------------------------------------------------------------
# This section adjusts the general window and how it appears. The general
# window displays basic information for the player regarding the actor.
#--------------------------------------------------------------------------
# This array shows the stats for the left side of the window. Simply remove
# a stat from this list if you don't want it to appear or reaarnage them as
# you see fit. You may place other stats here, too. Note that stats that
# require special scripts won't appear unless that script is installed.
# Legal Stats:
# :atk, :def, :spi, :res, :dex, :foc, :luk, :agi
SHOWN_STATS = [:atk, :def, :spi, :res, :dex, :foc, :luk, :agi]
# How the text for MaxHP and MaxMP will show up and if they show up at all.
SHOW_MAXHP = true
MAXHP_TEXT = "МаксHP"
SHOW_MAXMP = true
MAXMP_TEXT = "МаксMP"
# How the text will appear for the equipment listing.
EQUIPMENT = "Доспехи"
#--------------------------------------------------------------------------
# - Parameters Status Window -
#--------------------------------------------------------------------------
# This window here compares the basic parameters to each other in a gauge
# fashion. In this section, you may adjust the colours of the gauges that
# appear for each stat and the font size of the stats.
#--------------------------------------------------------------------------
STAT_GAUGE_COLOURS ={
# Stat => [Red1, Grn1, Blu1, Red2, Grn2, Blu2],
:atk => [ 240, 50, 80, 240, 150, 150],
:def => [ 50, 240, 50, 150, 240, 150],
:spi => [ 50, 180, 240, 150, 200, 240],
:res => [ 240, 110, 50, 240, 200, 150],
:dex => [ 200, 200, 200, 240, 240, 240],
:foc => [ 80, 80, 80, 130, 130, 130],
:luk => [ 180, 50, 240, 220, 150, 240],
:agi => [ 240, 200, 80, 240, 240, 140],
} # Do not remove this.
# This adjusts the title that appears above the chart.
PARAM_CHART_TITLE = "График параметров персонажа"
# This adjusts the font size used for the chart stats.
PARAM_FONT_SIZE = 16
#--------------------------------------------------------------------------
# - Statistics Status Window -
#--------------------------------------------------------------------------
# For those who have the Yanfly Engine 6 Battle Stats script installed and
# have selected using stats like DEX, FOC, LUK, etc. and/or their secondary
# bonuses, this statistics status window will show what bonuses are offered
# for the battler.
#--------------------------------------------------------------------------
# This adjusts the title that appears above the list.
STATISTICS_LIST_TITLE = "Statistics List"
# If you are using the Yanfly Engine 6 Iconview Module script, you may
# choose to have the stat icon to show the text of the corresponding stat
# with "true" or not with "false"
ICONS_SHOW_ORIGINAL_STAT_TEXT = false
#--------------------------------------------------------------------------
# - Background Status Window -
#--------------------------------------------------------------------------
# Here, you may enter in text about an actor's background. If no info is
# available for an actor, then the class info will take place. If no actor
# and no class info are present, then the Background option will not appear
# for the Status Scene.
#--------------------------------------------------------------------------
# Here are the settings used for the background window. Adjust it as you
# see fit.
BIOGRAPHY ={
:font_size => 18,
:actor_bio => "%s's Background",
:class_des => "%s Description",
:noneavail => "No Information Available",
} # Do not remove this.
# When typing out biographies and descriptions, use \\N[x] to write out
# the actor's name if the game allows renaming. For line splits, use |
# at the each position you would want the description to start a new line.
# Use \\V[x] to display variables. Use \' and \" to write out quotation
# marks without disrupting the string quotes.
ACTOR_BIOS ={ # If an actor ID is not listed here, then refer to class bio.
# ID => Background
1 => '\\N[1] is a very hot blooded young male whom ' +
'embarked on a|journey to save Don Miguel. ' +
'But given his reckless behaviour|and actions, ' +
'\\N[1] is known to give his team lots of trouble.',
2 => '\\N[2] trained as a warrior since she was ' +
'quite young. Due|to her militant past, she has ' +
'developed a rather tomboy-ish|personality. ' +
'\\N[2] loves training and is also a health nut.',
3 => '\\N[3] is the overzealous priest of \\N[1]\'s ' +
'party. His|actions speak louder than his words ' +
'and his words are|already loud enough. \\N[3] ' +
'is definitely one who choose|the wrong class.',
4 => '\\N[4] is the team\'s walking encyclopedia. ' +
'She just about|knows everything for each and ' +
'every situation. But aside|from that, \\N[4] ' +
'just doesn\'t have the actual life experience.',
} # Do not remove this.
CLASS_BIOS ={
# ID => Bio
1 => 'Knights are quick and powerful characters ' +
'that excel in|both melee and magic.',
2 => 'Defenders are very dedicated to defending ' +
'their party.',
3 => 'Priests focus on healing and aiding their ' +
"party members.|Don't let \\N[3] fool you.",
4 => 'Magicians excel in the magical arts and also ' +
'excel at|blasting their enemies to bits.',
} # Do not remove this.
end # STATUS
end # Y6
#==============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis
# so edit at your own risk.
#==============================================================================
#==============================================================================
# ** Numeric
#==============================================================================
class Numeric
#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["Y6-Core"]
def group(decimal = 2); return self; end
end # $imported["Y6-Core"]
end # Numeric
#==============================================================================
# ** Vocab
#==============================================================================
module Vocab
#--------------------------------------------------------------------------
# new method: self.exp
#--------------------------------------------------------------------------
def self.exp; return Y6::STATUS::EXP_TEXT; end
#--------------------------------------------------------------------------
# new method: self.exp_format
#--------------------------------------------------------------------------
def self.exp_format; return Y6::STATUS::PERCENT_EXP; end
end # Vocab
#===============================================================================
# ** Game_Battler
#===============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# anti-crash method: maxmp_limit
#--------------------------------------------------------------------------
unless method_defined?(:maxmp_limit)
def maxmp_limit; return 9999; end
end # method_defined?(:maxmp_limit)
#--------------------------------------------------------------------------
# anti-crash method: parameter_limit
#--------------------------------------------------------------------------
unless method_defined?(:parameter_limit)
def maxmp_limit; return 999; end
end # method_defined?(:parameter_limit)
end # Game_Battler
#==============================================================================
# ** Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# anti-crash method: parameter_limit
#--------------------------------------------------------------------------
unless $imported["Y6-BattleStats"]
def parameter_limit
return 999
end
end # $imported["Y6-BattleStats"]
#--------------------------------------------------------------------------
# new method: now_exp
#--------------------------------------------------------------------------
def now_exp
return @exp - @exp_list[@level]
end
#--------------------------------------------------------------------------
# new method: next_exp
#--------------------------------------------------------------------------
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end # Game_Actor
#==============================================================================
# ** Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :last_status_index
attr_accessor :status_oy
end # Game_Temp
#==============================================================================
# ** Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# new method: draw_actor_exp
#--------------------------------------------------------------------------
def draw_actor_exp(actor, x, y, width = 120)
draw_actor_exp_gauge(actor, x, y, width)
contents.font.color = system_color
contents.draw_text(x+2, y, 30, WLH, Vocab.exp)
contents.font.color = normal_color
last_font_size = contents.font.size
xr = x + width
if actor.next_exp == 0
text = sprintf(Vocab.exp_format, 100.0)
else
text = sprintf(Vocab.exp_format, actor.now_exp * 100.0 / actor.next_exp)
end
contents.draw_text(x+32, y, width-33, WLH, text, 1)
end
#--------------------------------------------------------------------------
# new method: draw_actor_exp_gauge
#--------------------------------------------------------------------------
def draw_actor_exp_gauge(actor, x, y, width = 120)
gc0 = gauge_back_color
gc1 = text_color(Y6::STATUS::EXP_GAUGE_1)
gc2 = text_color(Y6::STATUS::EXP_GAUGE_2)
gh = $imported["Y6-Core"] ? Y6::SETTING::GAUGE_HEIGHT : 6
gh += 2 if $imported["Y6-Core"] and Y6::SETTING::OUTLINE
gy = y + WLH - 8 - (gh - 6)
contents.fill_rect(x, gy, width, gh, gc0)
if $imported["Y6-Core"] and Y6::SETTING::OUTLINE
gy += 1
gh -= 2
width -= 2
end
if actor.next_exp == 0
gbw = width
else
gbw = width * actor.now_exp / [actor.next_exp, 1].max
end
x += 1 if $imported["Y6-Core"] and Y6::SETTING::OUTLINE
contents.gradient_fill_rect(x, gy, gbw, gh, gc1, gc2)
end
end # Window_Base
#==============================================================================
# ** Window_Command_Centered
#==============================================================================
class Window_Command_Centered < Window_Command
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index, enabled = true)
rect = item_rect(index)
rect.x += 4
rect.width -= 8
contents.clear_rect(rect)
contents.font.color = normal_color
contents.font.color.alpha = enabled ? 255 : 128
contents.draw_text(rect, @commands[index], 1)
end
end # Window_Command_Centered
#==============================================================================
# ** Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
if Y6::STATUS::USE_FOR_MAIN_MENU
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
@data = []
for member in $game_party.members do @data.push(member) end
@item_max = @data.size
create_contents
for i in 0...@item_max do draw_item(i) end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
actor = @data[index]
return if actor.nil?
draw_actor_face(actor, 2, actor.index * 96 + 2, 92)
dx = 108; dy = WLH * 4 * index
dw = contents.width - dx - 120 - 4
draw_actor_name(actor, dx, dy)
draw_actor_class(actor, dx + 120, dy, dw)
draw_actor_level(actor, dx, dy + WLH * 1)
draw_actor_state(actor, dx, dy + WLH * 2)
draw_actor_hp(actor, dx + 120, dy + WLH * 1, dw)
draw_actor_mp(actor, dx + 120, dy + WLH * 2, dw)
draw_actor_exp(actor, dx + 120, dy + WLH * 3, dw)
end
#--------------------------------------------------------------------------
# draw_actor_class
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y, dw = 108)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, dw, WLH, actor.class.name)
end
end # Y6::STATUS::USE_FOR_MAIN_MENU
end # Window_MenuStatus
#==============================================================================
# ** Window_Actor_Status
#==============================================================================
class Window_Actor_Status < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor)
super(160, 0, Graphics.width - 160, 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(new_actor)
return if new_actor == @actor
@actor = new_actor
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_actor_face(@actor, 0, 0)
dx = 108; dy = 0
dw = contents.width - dx - 120 - 4
draw_actor_name(@actor, dx, dy)
draw_actor_class(@actor, dx + 120, dy, dw)
draw_actor_level(@actor, dx, dy + WLH * 1)
draw_actor_state(@actor, dx, dy + WLH * 2)
draw_actor_hp(@actor, dx + 120, dy + WLH * 1, dw)
draw_actor_mp(@actor, dx + 120, dy + WLH * 2, dw)
draw_actor_exp(@actor, dx + 120, dy + WLH * 3, dw)
end
#--------------------------------------------------------------------------
# draw_actor_class
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y, dw = 108)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, dw, WLH, actor.class.name)
end
end # Window_Actor_Status
#==============================================================================
# ** Window_Status_General
#==============================================================================
class Window_Status_General < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 128, Graphics.width, Graphics.height - 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(new_actor)
return if new_actor == @actor
@actor = new_actor
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
stats = Y6::STATUS::SHOWN_STATS
dx = 24; dy = 0
dx = draw_icons(dx, dy, stats)
dx = draw_parameter_names(dx, dy, stats)
dx = draw_parameter_stats(dx, dy, stats)
draw_exp_information(dx, dy)
draw_equipments(dx, dy + WLH * 9 / 2)
end
#--------------------------------------------------------------------------
# draw_icons
#--------------------------------------------------------------------------
def draw_icons(dx, dy, stats)
return dx unless $imported["Y6-Iconview"]
if Y6::STATUS::SHOW_MAXHP
icon = Icon.stat_notext(:hp)
draw_icon(icon, dx, dy); dy += WLH
end
if Y6::STATUS::SHOW_MAXMP
icon = Icon.stat_notext(:mp)
draw_icon(icon, dx, dy); dy += WLH
end
dy += WLH / 2 if Y6::STATUS::SHOW_MAXHP or Y6::STATUS::SHOW_MAXMP
for stat in stats
case stat
when :atk, :def, :spi, :agi
# Do nothing!
when :res, :dex, :foc, :luk
next unless $imported["Y6-BattleStats"]
next if stat == :res and !Y6::STATS::RES_STAT_ENABLE
next if stat == :dex and !Y6::STATS::DEX_STAT_ENABLE
next if stat == :foc and !Y6::STATS::FOC_STAT_ENABLE
next if stat == :luk and !Y6::STATS::LUK_STAT_ENABLE
else; next
end
icon = Icon.stat_notext(stat)
draw_icon(icon, dx, dy); dy += WLH
end
return dx + 24
end
#--------------------------------------------------------------------------
# draw_parameter_names
#--------------------------------------------------------------------------
def draw_parameter_names(dx, dy, stats)
dw = 60
contents.font.color = system_color
if Y6::STATUS::SHOW_MAXHP
text = Y6::STATUS::MAXHP_TEXT
contents.draw_text(dx, dy, dw, WLH, text, 0); dy += WLH
end
if Y6::STATUS::SHOW_MAXMP
text = Y6::STATUS::MAXMP_TEXT
contents.draw_text(dx, dy, dw, WLH, text, 0); dy += WLH
end
dy += WLH / 2 if Y6::STATUS::SHOW_MAXHP or Y6::STATUS::SHOW_MAXMP
for stat in stats
case stat
when :atk, :def, :spi, :agi
# Do nothing!
when :res, :dex, :foc, :luk
next unless $imported["Y6-BattleStats"]
next if stat == :res and !Y6::STATS::RES_STAT_ENABLE
next if stat == :dex and !Y6::STATS::DEX_STAT_ENABLE
next if stat == :foc and !Y6::STATS::FOC_STAT_ENABLE
next if stat == :luk and !Y6::STATS::LUK_STAT_ENABLE
else; next
end
text = eval("Vocab." + stat.to_s)
contents.draw_text(dx, dy, dw, WLH, text, 0); dy += WLH
end
return dx + dw
end
#--------------------------------------------------------------------------
# draw_parameter_stats
#--------------------------------------------------------------------------
def draw_parameter_stats(dx, dy, stats)
maximum = [@actor.maxhp_limit, @actor.maxmp_limit,
@actor.parameter_limit].max
contents.font.color = normal_color
dw = contents.text_size(maximum.group).width + 24
if Y6::STATUS::SHOW_MAXHP
value = @actor.maxhp.group
contents.draw_text(dx, dy, dw, WLH, value, 2); dy += WLH
end
if Y6::STATUS::SHOW_MAXMP
value = @actor.maxmp.group
contents.draw_text(dx, dy, dw, WLH, value, 2); dy += WLH
end
dy += WLH / 2 if Y6::STATUS::SHOW_MAXHP or Y6::STATUS::SHOW_MAXMP
for stat in stats
case stat
when :atk, :def, :spi, :agi
# Do nothing!
when :res, :dex, :foc, :luk
next unless $imported["Y6-BattleStats"]
next if stat == :res and !Y6::STATS::RES_STAT_ENABLE
next if stat == :dex and !Y6::STATS::DEX_STAT_ENABLE
next if stat == :foc and !Y6::STATS::FOC_STAT_ENABLE
next if stat == :luk and !Y6::STATS::LUK_STAT_ENABLE
else; next
end
value = eval("@actor." + stat.to_s + ".group")
contents.draw_text(dx, dy, dw, WLH, value, 2); dy += WLH
end
dx += dw + 24
dx = contents.width / 2 + 24 unless dx > contents.width / 2
return dx
end
#--------------------------------------------------------------------------
# draw_exp_information
#--------------------------------------------------------------------------
def draw_exp_information(dx, dy)
contents.font.color = system_color
s1 = @actor.exp_s
s2 = @actor.next_rest_exp_s
s_next = sprintf(Vocab::ExpNext, Vocab::level)
dw = contents.width - dx - 28
contents.draw_text(dx, dy + WLH * 0, dw, WLH, Vocab::ExpTotal)
contents.draw_text(dx, dy + WLH * 2, dw, WLH, s_next)
contents.font.color = normal_color
contents.draw_text(dx, dy + WLH * 1, dw, WLH, s1, 2)
self.contents.draw_text(dx, dy + WLH * 3, dw, WLH, s2, 2)
end
#--------------------------------------------------------------------------
# draw_equipments
#--------------------------------------------------------------------------
def draw_equipments(dx, dy)
contents.font.color = system_color
dw = contents.width - dx - 28
contents.draw_text(dx, dy, dw, WLH, Y6::STATUS::EQUIPMENT)
for i in 0..4
draw_item_name(@actor.equips[i], dx + 16, dy + WLH * (i + 1))
end
end
end # Window_Status_General
#==============================================================================
# ** Window_Status_Background
#==============================================================================
class Window_Status_Background < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 128, Graphics.width, Graphics.height - 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(new_actor)
return if new_actor == @actor
@actor = new_actor
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
if Y6::STATUS::ACTOR_BIOS.include?(@actor.id)
draw_actor_bio
elsif Y6::STATUS::CLASS_BIOS.include?(@actor.class_id)
draw_class_bio
else
draw_nothing_available
end
end
#--------------------------------------------------------------------------
# draw_actor_bio
#--------------------------------------------------------------------------
def draw_actor_bio
contents.font.size = Font.default_size
contents.font.color = normal_color; dy = 0
text = sprintf(Y6::STATUS::BIOGRAPHY[:actor_bio], @actor.name)
contents.draw_text(0, dy, self.width-32, WLH*2, text, 1)
contents.font.size = Y6::STATUS::BIOGRAPHY[:font_size]
text = Y6::STATUS::ACTOR_BIOS[@actor.id]
txsize = Y6::STATUS::BIOGRAPHY[:font_size] + 4
nwidth = Graphics.width * 8
dx = 48; dy = WLH*2
text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
lines = text.split(/(?:[|]|\\n)/i)
lines.each_with_index { |l, i|
l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
self.contents.draw_text(dx, i * txsize + dy, nwidth, WLH, l, 0)}
end
#--------------------------------------------------------------------------
# draw_class_bio
#--------------------------------------------------------------------------
def draw_class_bio
contents.font.size = Font.default_size
contents.font.color = normal_color; dy = 0
text = sprintf(Y6::STATUS::BIOGRAPHY[:class_des], @actor.class.name)
contents.draw_text(0, dy, self.width-32, WLH*2, text, 1)
contents.font.size = Y6::STATUS::BIOGRAPHY[:font_size]
text = Y6::STATUS::CLASS_BIOS[@actor.class.id]
txsize = Y6::STATUS::BIOGRAPHY[:font_size] + 4
nwidth = Graphics.width * 8
dx = 48; dy = WLH*2
text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
lines = text.split(/(?:[|]|\\n)/i)
lines.each_with_index { |l, i|
l.gsub!(/\\__(\[\d+\])/i) { "\\N#{$1}" }
contents.draw_text(dx, i * txsize + dy, nwidth, WLH, l, 0)}
end
#--------------------------------------------------------------------------
# draw_nothing_available
#--------------------------------------------------------------------------
def draw_nothing_available
contents.font.color = normal_color
contents.font.size = Font.default_size
text = Y6::STATUS::BIOGRAPHY[:noneavail]
dy = contents.height / 2 - WLH
contents.draw_text(0, dy, contents.width, WLH, text, 1)
end
end # Window_Status_Background
#==============================================================================
# ** Window_Status_Parameters
#==============================================================================
class Window_Status_Parameters < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 128, Graphics.width, Graphics.height - 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(new_actor)
return if new_actor == @actor
@actor = new_actor
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
calculate_settings
draw_stat_gauges
end
#--------------------------------------------------------------------------
# draw_background
#--------------------------------------------------------------------------
def draw_background
colour = gauge_back_color
colour.alpha = 128
dh = contents.height - WLH * 3 / 2
contents.fill_rect(0, WLH * 3 / 2, contents.width, dh, colour)
contents.font.size = Font.default_size
contents.font.color = normal_color
text = Y6::STATUS::PARAM_CHART_TITLE
contents.draw_text(0, 0, contents.width, WLH, text, 1)
end
#--------------------------------------------------------------------------
# calculate_settings
#--------------------------------------------------------------------------
def calculate_settings
array = []
for stat in Y6::STATUS::SHOWN_STATS
case stat
when :atk, :def, :spi, :agi
# Do nothing!
when :res, :dex, :foc, :luk
next unless $imported["Y6-BattleStats"]
next if stat == :res and !Y6::STATS::RES_STAT_ENABLE
next if stat == :dex and !Y6::STATS::DEX_STAT_ENABLE
next if stat == :foc and !Y6::STATS::FOC_STAT_ENABLE
next if stat == :luk and !Y6::STATS::LUK_STAT_ENABLE
else; next
end
array.push(eval("@actor." + stat.to_s))
end
@maximum = array.max
@minimum = array.min
end
#--------------------------------------------------------------------------
# draw_stat_gauges
#--------------------------------------------------------------------------
def draw_stat_gauges
dx = 4; dy = WLH * 2 + 3
for stat in Y6::STATUS::SHOWN_STATS
case stat
when :atk, :def, :spi, :agi
# Do nothing!
when :res, :dex, :foc, :luk
next unless $imported["Y6-BattleStats"]
next if stat == :res and !Y6::STATS::RES_STAT_ENABLE
next if stat == :dex and !Y6::STATS::DEX_STAT_ENABLE
next if stat == :foc and !Y6::STATS::FOC_STAT_ENABLE
next if stat == :luk and !Y6::STATS::LUK_STAT_ENABLE
else; next
end
draw_visual_gauge(dx, dy, stat)
dy += WLH
end
end
#--------------------------------------------------------------------------
# draw_visual_gauge
#--------------------------------------------------------------------------
def draw_visual_gauge(dx, dy, stat)
array = Y6::STATUS::STAT_GAUGE_COLOURS[stat]
gc0 = gauge_back_color
gc1 = Color.new(array[0], array[1], array[2])
gc2 = Color.new(array[3], array[4], array[5])
value = eval("@actor." + stat.to_s)
gh = 22
gy = dy + WLH - 8 - (gh - 6)
gfw = @maximum - @minimum
modifier = (contents.width / 3)
dw = contents.width - 8 - modifier
dw -= 24 if $imported["Y6-Iconview"]
gw = dw * (value - @minimum) / gfw + modifier
contents.fill_rect(dx, gy, gw, gh, gc0)
dx += 1
gy += 1
gh -= 2
gw -= 2
contents.gradient_fill_rect(dx, gy, gw, gh, gc1, gc2)
draw_gauge_icons(dx, dy, stat, gw) if $imported["Y6-Iconview"]
draw_param_names(dx, dy, stat, gw)
draw_param_values(dx, dy, stat, gw)
end
#--------------------------------------------------------------------------
# draw_gauge_icons
#--------------------------------------------------------------------------
def draw_gauge_icons(dx, dy, stat, gw)
icon = Icon.stat(stat, @actor)
draw_icon(icon, dx + gw, dy - 1)
end
#--------------------------------------------------------------------------
# draw_param_names
#--------------------------------------------------------------------------
def draw_param_names(dx, dy, stat, gw)
contents.font.color = normal_color
contents.font.size = Y6::STATUS::PARAM_FONT_SIZE
if $imported["Y6-BattleStats"]
text = eval("Vocab." + stat.to_s + "_name")
else
text = eval("Vocab." + stat.to_s)
end
contents.draw_text(dx + 1, dy, gw - 2, WLH, text, 0)
end
#--------------------------------------------------------------------------
# draw_param_values
#--------------------------------------------------------------------------
def draw_param_values(dx, dy, stat, gw)
contents.font.color = normal_color
contents.font.size = Y6::STATUS::PARAM_FONT_SIZE
value = eval("@actor." + stat.to_s + ".group")
contents.draw_text(dx, dy, gw - 2, WLH, value, 2)
end
end # Window_Status_Parameters
#==============================================================================
# ** Window_Status_Statistics
#==============================================================================
class Window_Status_Statistics < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 128, Graphics.width, Graphics.height - 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(new_actor)
return if new_actor == @actor
@actor = new_actor
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_statistics_title
dy = WLH * 3 / 2
dy = draw_major_statistics(dy)
draw_bonus_statistics(dy)
end
#--------------------------------------------------------------------------
# draw_statistics_title
#--------------------------------------------------------------------------
def draw_statistics_title
@show_text = Y6::STATUS::ICONS_SHOW_ORIGINAL_STAT_TEXT
text = Y6::STATUS::STATISTICS_LIST_TITLE
contents.draw_text(0, 0, contents.width, WLH, text, 1)
end
#--------------------------------------------------------------------------
# draw_major_statistics
#--------------------------------------------------------------------------
def draw_major_statistics(dy)
stats = Y6::STATUS::SHOWN_STATS
dx = 0
mx = 0
dw = contents.width / 2 - 6
new_line = false
for stat in stats
case stat
when :dex
next unless Y6::STATS::DEX_STAT_ENABLE
text = Vocab.apn_name
value = @actor.apn * 100.0
when :foc
next unless Y6::STATS::FOC_STAT_ENABLE
text = Vocab.mpn_name
value = @actor.mpn * 100.0
when :luk
next unless Y6::STATS::LUK_STAT_ENABLE
text = Vocab.crm_name
value = @actor.crm * 100.0
else; next
end
if $imported["Y6-Iconview"]
icon = @show_text ? Icon.stat(stat, @actor) : Icon.stat_notext(stat)
draw_icon(icon, 0, dy)
mx = 24
end
contents.font.color = system_color
contents.draw_text(dx+mx, dy, dw, WLH, text, 0)
contents.font.color = normal_color
text = sprintf("%1.2f%%", value)
contents.draw_text(0, dy, dw, WLH, text, 2)
new_line = true
dy += WLH
end
dy += WLH / 2 if new_line
return dy
end
#--------------------------------------------------------------------------
# draw_bonus_statistics
#--------------------------------------------------------------------------
def draw_bonus_statistics(dy)
stats = Y6::STATUS::SHOWN_STATS
dx = 0
mx = 0
dw = contents.width / 2 - 6
for stat in stats
case stat
when :atk
next unless Y6::STATS::ATK_PDM_ENABLE
text = Vocab.pdm_name
value = @actor.pdm * 100.0
when :def
next unless Y6::STATS::DEF_PDR_ENABLE
text = Vocab.pdr_name
value = @actor.pdr * 100.0
when :spi
next unless Y6::STATS::INT_MDM_ENABLE
text = Vocab.mdm_name
value = @actor.mdm * 100.0
when :res
next unless Y6::STATS::RES_STAT_ENABLE
next unless Y6::STATS::RES_MDR_ENABLE
text = Vocab.mdr_name
value = @actor.mdr * 100.0
when :dex
next unless Y6::STATS::DEX_STAT_ENABLE
next unless Y6::STATS::DEX_HIT_ENABLE
text = Vocab.hit_name
value = @actor.hit
when :foc
next unless Y6::STATS::FOC_STAT_ENABLE
next unless Y6::STATS::FOC_TEN_ENABLE
text = Vocab.ten_name
value = @actor.ten * 100.0
when :luk
next unless Y6::STATS::LUK_STAT_ENABLE
next unless Y6::STATS::LUK_CRI_ENABLE
text = Vocab.cri_name
value = @actor.cri
when :agi
next unless Y6::STATS::AGI_EVA_ENABLE
text = Vocab.eva_name
value = @actor.eva
else; next
end
if $imported["Y6-Iconview"]
icon = @show_text ? Icon.stat(stat, @actor) : Icon.stat_notext(stat)
draw_icon(icon, dx, dy)
mx = 24
end
contents.font.color = system_color
contents.draw_text(dx+mx, dy, dw-mx, WLH, text, 0)
contents.font.color = normal_color
text = sprintf("%1.2f%%", value)
contents.draw_text(dx+mx, dy, dw-mx, WLH, text, 2)
if dx > dw
dy += WLH
dx = 0
else
dx = dw + 12
end
end
end
end # Window_Status_Statistics
#==============================================================================
# ** Scene_Status
#==============================================================================
class Scene_Status < Scene_Base
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :help_window
#--------------------------------------------------------------------------
# overwrite method: start
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_party.members[@actor_index]
@status_window = Window_Actor_Status.new(@actor)
@help_window = Window_Help.new
@help_window.y = @status_window.height
create_command_window
end
#--------------------------------------------------------------------------
# overwrite method: terminate
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@status_window.dispose
@help_window.dispose
@command_window.dispose
for window in @windows; window.dispose unless window.disposed?; end
end
#--------------------------------------------------------------------------
# new method: create_command_window
#--------------------------------------------------------------------------
def create_command_window
@data = []
commands = []
@windows = []
for command in Y6::STATUS::COMMANDS
case command
when :general
@general_window = Window_Status_General.new(@actor)
@windows.push(@general_window)
when :background
@background_window = Window_Status_Background.new(@actor)
@windows.push(@background_window)
when :parameters
@parameters_window = Window_Status_Parameters.new(@actor)
@windows.push(@parameters_window)
when :statistics
next unless $imported["Y6-BattleStats"]
@statistics_window = Window_Status_Statistics.new(@actor)
@windows.push(@statistics_window)
when :performance
next unless $imported["Y6-Performance"]
@performance_window = Window_Status_Performance.new(@actor)
@performance_window.help_window = @help_window
@windows.push(@performance_window)
else; next
end
@data.push(command)
commands.push(Y6::STATUS::COMMAND_VOCAB[command])
end
@command_window = Window_Command_Centered.new(160, commands)
@command_window.height = 128
@command_window.active = true
#---
if $game_temp.last_status_index != nil
@command_window.oy = $game_temp.status_oy
@command_window.index = $game_temp.last_status_index
end
#---
update_visible_windows
end
#--------------------------------------------------------------------------
# new method: update_visible_windows
#--------------------------------------------------------------------------
def update_visible_windows
@help_window.y = Graphics.height * 8
for window in @windows; window.y = Graphics.height * 8; end
case @data[@command_window.index]
when :general
@general_window.y = @command_window.height
when :background
@background_window.y = @command_window.height
when :parameters
@parameters_window.y = @command_window.height
when :statistics
@statistics_window.y = @command_window.height
when :performance
@help_window.y = Graphics.height - @help_window.height
@performance_window.y = @command_window.height
@performance_window.update_help
end
end
#--------------------------------------------------------------------------
# overwrite method: next_actor
#--------------------------------------------------------------------------
def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
set_new_actor
end
#--------------------------------------------------------------------------
# overwrite method: prev_actor
#--------------------------------------------------------------------------
def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
set_new_actor
end
#--------------------------------------------------------------------------
# new method: set_new_actor
#--------------------------------------------------------------------------
def set_new_actor
$game_party.last_actor_index = @actor_index
@actor = $game_party.members[@actor_index]
@status_window.actor = @actor
for window in @windows; window.actor = @actor; end
end
#--------------------------------------------------------------------------
# overwrite method: update
#--------------------------------------------------------------------------
def update
super
update_menu_background
if @command_window.active
update_command_window
elsif !@performance_window.nil? and @performance_window.active
update_performance_window
end
end
#--------------------------------------------------------------------------
# new method: update_command_window
#--------------------------------------------------------------------------
def update_command_window
@command_window.update
if $game_temp.last_status_index != @command_window.index
$game_temp.last_status_index = @command_window.index
$game_temp.status_oy = @command_window.oy
update_visible_windows
end
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
$game_temp.last_status_index = nil
$game_temp.status_oy = nil
elsif Input.repeat?(Input::LEFT)
Sound.play_cursor
prev_actor
elsif Input.repeat?(Input::RIGHT)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::C)
case @data[@command_window.index]
when :performance
Sound.play_decision
@performance_window.active = true
@performance_window.index = 0 if @performance_window.index < 0
@command_window.active = false
end
end
end
end # Scene_Status
#===============================================================================
#
# END OF FILE
#
#===============================================================================
Одним словом выризать раздел биография.