- Joined
- Oct 13, 2014
- Messages
- 362
- Reaction score
- 102
- First Language
- Enlish
Hello,
I'm using Yami Skill Equip and i'm hitting a hurdle when trying to use Forced Actions with my party.
Basically, the forced actions I'm trying to get the party to use are skills that they don't know in their movesets.
So whenever I try to call this force action with a script call I get the following error:

which refers me to this line:

I'm pretty sure the issue is that it's not finding the skill within the equipped skills, but I'm not sure how to address.
I tried the <non equipped skills> tag but that didn't work.
Can someone help me get around this hurdle? Is there anyway to call a forced action without having that specific skill equipped?
My only other solution would be maybe to have every single forced action learned by the player characters and then hide those skills so they aren't selected or shown in the menu, but it doesn't really feel like a clean solution.
Yami's Skill Equip for reference
I'm using Yami Skill Equip and i'm hitting a hurdle when trying to use Forced Actions with my party.
Basically, the forced actions I'm trying to get the party to use are skills that they don't know in their movesets.
So whenever I try to call this force action with a script call I get the following error:

which refers me to this line:

I'm pretty sure the issue is that it's not finding the skill within the equipped skills, but I'm not sure how to address.
I tried the <non equipped skills> tag but that didn't work.
Can someone help me get around this hurdle? Is there anyway to call a forced action without having that specific skill equipped?
My only other solution would be maybe to have every single forced action learned by the player characters and then hide those skills so they aren't selected or shown in the menu, but it doesn't really feel like a clean solution.
Yami's Skill Equip for reference
Ruby:
#==============================================================================
#
# �� Yami Engine Symphony - Skill Equip
# -- Last Updated: 2013.01.02
# -- Level: Easy
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YES-SkillEquip"] = true
#==============================================================================
# �� Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2013.01.02 - Fixed: Added Skills.
# - Added: Non equip skill, notetag: <non equip skill>.
# Non equip skills will always be usable in battle.
# 2012.12.17 - Fixed: Big slots list.
# 2012.12.12 - Fixed: Reverting slots issue.
# 2012.12.08 - Compatible with: YEA - Victory Aftermath.
# 2012.12.05 - Finished Script.
# 2012.12.03 - Started Script.
#
#==============================================================================
# �� Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script requires the player to make decisions as to which skills to bring
# into battle for each character.
#
#==============================================================================
# �� Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below �� Materials/�f�� but above �� Main. Remember to save.
#
#==============================================================================
# �� Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjustments.
#
#==============================================================================
#==============================================================================
# �� Configuration
#==============================================================================
module YES
module SKILL_EQUIP
#===========================================================================
# - Basic Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# The following below will adjust the basic ruleset that the skill equip
# system will use. Visual settings will also be adjusted here.
#===========================================================================
COMMAND = "Equip Skill" # This is the category title that appears for
# the skill equip option.
EQUIP_SKILL_SWITCH = 43 # This switch must be enabled in order for the
# Equip Skill command to appear in the skill menu.
# These are the visual settings used when a skill isn't equipped.
EMPTY_SKILL_HELP = "No skill is equipped in this slot.\n
Press Enter to assign skill."
EMPTY_SKILL_TEXT = "<Empty Slot>" # Text used for no skill equipped.
EMPTY_SKILL_ICON = 185 # Icon used for no skill equipped.
# This constant adjusts the default maximum amount of equipped skills that
# an actor can have without modifications.
DEFAULT_MAX_EQUIPS = 6
#===========================================================================
# - Description Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# The following below will adjust the description window, which includes
# skill's properties and description.
# Here's the list of default properties:
# -------------------------------------------------------------------------
# :symbol Description
# -------------------------------------------------------------------------
# :stype Skill Type.
# :cost Skill Cost.
# :speed Speed Fix.
# :success Success Rate.
#===========================================================================
# Default displayed properties of each skill.
DEFAULT_PROPERTIES = [ # Start.
:stype, # Skill Type
:cost, # Mana/TP Cost
:speed, # Speed Fix
:success, # Success Rate
] # End.
# Default displaying texts for properties.
PROPERTIES = { # Start.
:stype => "Skill Type",
:cost => "Skill Cost",
:speed => "Priority",
:success => "Hit Rate",
} # End.
end
end
#==============================================================================
# �� 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.
#==============================================================================
#==============================================================================
# �� Regular Expression
#==============================================================================
module REGEXP
module SKILL_EQUIP
MAX_EQUIPS = /<(?:SKILL_SLOTS|skill slots):[ ]*(\d+)>/i
CHANGE_EQUIPS = /<(?:CHANGE_SLOTS|change slots):[ ]*([\+\-]?\d+)>/i
VALUE_DESCRIPTION = /<(?:SKILL_INFO|skill info)[ ](.*):[ ]*(.*)>/i
NON_EQUIP = /<(?:NON_EQUIP_SKILL|non equip skill)>/i
end # SKILL_EQUIP
end # REGEXP
#==============================================================================
# �� DataManager
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <<self; alias load_database_skill_equip load_database; end
def self.load_database
load_database_skill_equip
initialize_skill_equip
end
#--------------------------------------------------------------------------
# alias method: create_game_objects
#--------------------------------------------------------------------------
class <<self; alias create_game_objects_skill_equip create_game_objects; end
def self.create_game_objects
create_game_objects_skill_equip
$game_switches[YES::SKILL_EQUIP::EQUIP_SKILL_SWITCH] = true
end
#--------------------------------------------------------------------------
# new method: initialize_skill_equip
#--------------------------------------------------------------------------
def self.initialize_skill_equip
groups = [$data_actors, $data_classes, $data_weapons, $data_armors, $data_skills]
groups.each { |group|
group.each { |obj|
next if obj.nil?
obj.initialize_skill_equip
}
}
end
end # DataManager
#==============================================================================
# �� RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :skill_slots
attr_accessor :change_slots
attr_accessor :slot_properties
attr_accessor :non_equip_skill
#--------------------------------------------------------------------------
# new method: initialize_skill_equip
#--------------------------------------------------------------------------
def initialize_skill_equip
@change_slots = 0
@slot_properties = []
self.note.split(/[\r\n]+/).each { |line|
case line
when REGEXP::SKILL_EQUIP::MAX_EQUIPS
@skill_slots = $1.to_i
when REGEXP::SKILL_EQUIP::CHANGE_EQUIPS
@change_slots = $1.to_i
when REGEXP::SKILL_EQUIP::VALUE_DESCRIPTION
@slot_properties.push([$1.to_s, $2.to_s])
when REGEXP::SKILL_EQUIP::NON_EQUIP
@non_equip_skill = true
end
}
end
end # RPG::BaseItem
#==============================================================================
# �� Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :equip_skills
#--------------------------------------------------------------------------
# alias method: setup
#--------------------------------------------------------------------------
alias yes_skill_equip_setup setup
def setup(actor_id)
yes_skill_equip_setup(actor_id)
correct_equip_skills
end
#--------------------------------------------------------------------------
# alias method: refresh
#--------------------------------------------------------------------------
alias yes_skill_equip_refresh refresh
def refresh
yes_skill_equip_refresh
correct_equip_skills
correct_skill_slots
end
#--------------------------------------------------------------------------
# new method: base_skill_slots
#--------------------------------------------------------------------------
def base_skill_slots
array = [self.class.skill_slots, self.actor.skill_slots]
default = YES::SKILL_EQUIP::DEFAULT_MAX_EQUIPS
array.compact.size > 0 ? array.compact[0] : default
end
#--------------------------------------------------------------------------
# new method: change_slots
#--------------------------------------------------------------------------
def change_slots
array = self.equips + [self.class, self.actor]
array.compact.inject(0) { |r, o| r += o.change_slots }
end
#--------------------------------------------------------------------------
# new method: skill_slots
#--------------------------------------------------------------------------
def skill_slots
[base_skill_slots + change_slots, 0].max
end
#--------------------------------------------------------------------------
# new method: correct_skill_slots
#--------------------------------------------------------------------------
def correct_skill_slots
if @equip_skills.size < skill_slots
@equip_skills = @equip_skills + Array.new(skill_slots - @equip_skills.size, 0)
else
@equip_skills = @equip_skills[0, skill_slots]
end
end
#--------------------------------------------------------------------------
# new method: correct_equip_skills
#--------------------------------------------------------------------------
def correct_equip_skills
if @equip_skills.nil?
@equip_skills = Array.new(skill_slots, 0)
#---
j = 0
all_skills.each_index { |i|
break if i == @equip_skills.size
while all_skills[j] && $data_skills[all_skills[j]].non_equip_skill
j += 1
end
@equip_skills[i] = all_skills[j]
j += 1
}
end
#---
@equip_skills.each_index { |i|
id = @equip_skills[i]
next if id == 0
@equip_skills[i] = 0 unless all_skills.include?(id)
}
end
#--------------------------------------------------------------------------
# new method: all_skills
#--------------------------------------------------------------------------
def all_skills
(@skills | added_skills).sort
end
#--------------------------------------------------------------------------
# new method: equip_skill
#--------------------------------------------------------------------------
def equip_skill(index, id)
return false unless skill_equippable?(id)
if @equip_skills.include?(id) && id != 0
@equip_skills[@equip_skills.index(id)] = @equip_skills[index]
end
@equip_skills[index] = id
end
#--------------------------------------------------------------------------
# new method: skill_equippable?
#--------------------------------------------------------------------------
def skill_equippable?(id)
return true
end
#--------------------------------------------------------------------------
# new method: equipped_skills
#--------------------------------------------------------------------------
def equipped_skills
@equip_skills.select{|id|id != 0}.collect{|id|$data_skills[id]} + yes_skill_equip_skills.select{|s|s.non_equip_skill}
end
#--------------------------------------------------------------------------
# alias method: skills
# Overwrite in Battle
#--------------------------------------------------------------------------
alias yes_skill_equip_skills skills
def skills
if $game_party.in_battle && !$game_troop.all_dead?
return equipped_skills + yes_skill_equip_skills.select{|s|s.non_equip_skill}
else
return yes_skill_equip_skills
end
end
end # Game_Actor
#==============================================================================
# �� Window_SkillSlots
#==============================================================================
class Window_SkillSlots < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y, height)
super(x, y, Graphics.width / 2, height)
self.index = 0
self.hide
end
#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max
@actor.nil? ? 1 : @actor.skill_slots
end
#--------------------------------------------------------------------------
# current_item_enabled?
#--------------------------------------------------------------------------
def current_item_enabled?
@actor && @actor.skill_slots > 0
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
update_padding
create_contents
refresh
self.oy = 0
@index = 0
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
skill_id = @actor.equip_skills[index]
#---
return if skill_id.nil?
reset_font_settings
draw_item_none(index) if skill_id <= 0
draw_item_name(index, skill_id) if skill_id > 0
end
#--------------------------------------------------------------------------
# draw_item_none
#--------------------------------------------------------------------------
def draw_item_none(index)
rect = item_rect(index)
#---
change_color(normal_color, false)
draw_icon(YES::SKILL_EQUIP::EMPTY_SKILL_ICON, rect.x, rect.y, false)
rect.x += 24
draw_text(rect, YES::SKILL_EQUIP::EMPTY_SKILL_TEXT, 0)
end
#--------------------------------------------------------------------------
# draw_item_name
#--------------------------------------------------------------------------
def draw_item_name(index, skill_id, enabled = true)
rect = item_rect(index)
item = $data_skills[skill_id]
#---
change_color(normal_color, enabled)
draw_icon(item.icon_index, rect.x, rect.y, enabled)
rect.x += 24
draw_text(rect, item.name, 0)
end
#--------------------------------------------------------------------------
# propertise_window=
#--------------------------------------------------------------------------
def properties_window=(properties_window)
@properties_window = properties_window
id = @actor.equip_skills[index]
item = id.nil? ? nil : $data_skills[id]
@properties_window.set_item(item)
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
id = @actor.equip_skills[index]
item = id.nil? ? nil : $data_skills[id]
empty_text = YES::SKILL_EQUIP::EMPTY_SKILL_HELP
item.nil? ? @help_window.set_text(empty_text) : @help_window.set_item(item)
@properties_window.set_item(item) if @properties_window
end
end # Window_SkillSlots
#==============================================================================
# �� Window_SkillList_Equip
#==============================================================================
class Window_SkillList_Equip < Window_SkillList
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super
self.hide
self.index = 0
end
#--------------------------------------------------------------------------
# col_max
#--------------------------------------------------------------------------
def col_max
return 1
end
#--------------------------------------------------------------------------
# enable?
#--------------------------------------------------------------------------
def enable?(item)
@actor
end
#--------------------------------------------------------------------------
# include?
#--------------------------------------------------------------------------
def include?(item)
item
end
#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
super
@data = [0] + @data.select{|s|!s.non_equip_skill}
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
skill = @data[index]
if skill && skill.is_a?(RPG::Skill)
rect = item_rect(index)
rect.width -= 4
draw_item_name(skill, rect.x, rect.y, enable?(skill))
else
rect = item_rect(index)
rect.width -= 4
change_color(normal_color, false)
draw_icon(YES::SKILL_EQUIP::EMPTY_SKILL_ICON, rect.x, rect.y, false)
rect.x += 24
draw_text(rect, YES::SKILL_EQUIP::EMPTY_SKILL_TEXT, 0)
end
end
#--------------------------------------------------------------------------
# item
#--------------------------------------------------------------------------
def item
@data && @data[index] == 0 ? @data[index] : super
end
#--------------------------------------------------------------------------
# properties_window=
#--------------------------------------------------------------------------
def properties_window=(properties_window)
@properties_window = properties_window
end
#--------------------------------------------------------------------------
# update_help
#--------------------------------------------------------------------------
def update_help
empty_text = YES::SKILL_EQUIP::EMPTY_SKILL_HELP
item == 0 ? @help_window.set_text(empty_text) : @help_window.set_item(item)
@properties_window.set_item(item) if @properties_window
end
end # Window_SkillList_Equip
#==============================================================================
# �� Window_Properties_Slot
#==============================================================================
class Window_Properties_Slot < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
@item = nil
@actor = nil
self.hide
refresh
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
return unless @actor
if @item.nil? || @item == 0
reset_font_settings
change_color(normal_color, false)
draw_icon(YES::SKILL_EQUIP::EMPTY_SKILL_ICON, 0, 0, false)
draw_text(24, 0, contents.width, line_height, YES::SKILL_EQUIP::EMPTY_SKILL_TEXT)
end
return if @item.nil? || @item == 0
reset_font_settings
#---
draw_item_name(@item, 0, 0)
#---
i = 0; hash = YES::SKILL_EQUIP::DEFAULT_PROPERTIES
contents.font.size -= 2
hash.each { |p| h = (i + 1) * line_height
case p
when :stype
draw_skill_type(h)
when :cost
draw_skill_cost(h)
when :speed
draw_skill_speed(h)
when :success
draw_skill_rate(h)
end
i += 1
}
#---
i = hash.size
@item.slot_properties.each { |a| h = (i + 1) * line_height
draw_skill_properties(a, h)
i += 1 }
end
#--------------------------------------------------------------------------
# draw_skill_type
#--------------------------------------------------------------------------
def draw_skill_type(y)
w = contents.width
change_color(system_color)
draw_text(0, y, w, line_height, YES::SKILL_EQUIP::PROPERTIES[:stype])
change_color(normal_color)
draw_text(0, y, w, line_height, $data_system.skill_types[@item.stype_id], 2)
end
#--------------------------------------------------------------------------
# draw_skill_cost
#--------------------------------------------------------------------------
def draw_skill_cost(h)
if $imported["YEA-SkillCostManager"]
draw_skill_cost_advanced(h)
else
rect = Rect.new(0,h,contents.width,line_height)
#---
change_color(system_color)
draw_text(rect, YES::SKILL_EQUIP::PROPERTIES[:cost])
#---
if @actor.skill_tp_cost(@item) > 0
change_color(tp_cost_color)
text = @actor.skill_tp_cost(@item).to_s + Vocab.tp_a
draw_text(rect, text, 2)
rect.width -= text_size(text).width + 4
end
#---
if @actor.skill_mp_cost(@item) > 0
change_color(mp_cost_color)
text = @actor.skill_mp_cost(@item).to_s + Vocab.mp_a
draw_text(rect, text, 2)
end
end
end
#--------------------------------------------------------------------------
# draw_skill_cost_advanced
#--------------------------------------------------------------------------
def draw_skill_cost_advanced(h)
rect = Rect.new(0,h,contents.width,line_height)
#---
change_color(system_color)
draw_text(rect, YES::SKILL_EQUIP::PROPERTIES[:cost])
#---
draw_tp_skill_cost(rect, @item) unless $imported["YEA-BattleEngine"]
draw_mp_skill_cost(rect, @item)
draw_tp_skill_cost(rect, @item) if $imported["YEA-BattleEngine"]
draw_hp_skill_cost(rect, @item)
draw_gold_skill_cost(rect, @item)
draw_custom_skill_cost(rect, @item)
end
#--------------------------------------------------------------------------
# draw_skill_speed
#--------------------------------------------------------------------------
def draw_skill_speed(y)
w = contents.width
change_color(system_color)
draw_text(0, y, w, line_height, YES::SKILL_EQUIP::PROPERTIES[:speed])
change_color(normal_color)
draw_text(0, y, w, line_height, @item.speed.to_s, 2)
end
#--------------------------------------------------------------------------
# draw_skill_rate
#--------------------------------------------------------------------------
def draw_skill_rate(y)
w = contents.width
change_color(system_color)
draw_text(0, y, w, line_height, YES::SKILL_EQUIP::PROPERTIES[:success])
change_color(normal_color)
draw_text(0, y, w, line_height, @item.success_rate.to_s + "%", 2)
end
#--------------------------------------------------------------------------
# draw_skill_properties
#--------------------------------------------------------------------------
def draw_skill_properties(a, y)
w = contents.width
change_color(system_color)
draw_text(0, y, w, line_height, a[0])
change_color(normal_color)
draw_text(0, y, w, line_height, a[1], 2)
end
#--------------------------------------------------------------------------
# set_item
#--------------------------------------------------------------------------
def set_item(item)
if @item != item
@item = item
refresh
end
end
#--------------------------------------------------------------------------
# actor=
#--------------------------------------------------------------------------
def actor=(actor)
@actor = actor
end
#--------------------------------------------------------------------------
# Yanfly Engine Ace - Skill Cost Manager
#--------------------------------------------------------------------------
if $imported["YEA-SkillCostManager"]
#--------------------------------------------------------------------------
# new method: draw_mp_skill_cost
#--------------------------------------------------------------------------
def draw_mp_skill_cost(rect, skill)
return unless @actor.skill_mp_cost(skill) > 0
contents.font.size -= 2
change_color(mp_cost_color)
#---
icon = Icon.mp_cost
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y)
rect.width -= 24
end
#---
contents.font.size = YEA::SKILL_COST::MP_COST_SIZE
cost = @actor.skill_mp_cost(skill)
text = sprintf(YEA::SKILL_COST::MP_COST_SUFFIX, cost.group)
draw_text(rect, text, 2)
cx = text_size(text).width + 4
rect.width -= cx
reset_font_settings
end
#--------------------------------------------------------------------------
# new method: draw_tp_skill_cost
#--------------------------------------------------------------------------
def draw_tp_skill_cost(rect, skill)
return unless @actor.skill_tp_cost(skill) > 0
contents.font.size -= 2
change_color(tp_cost_color)
#---
icon = Icon.tp_cost
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y)
rect.width -= 24
end
#---
contents.font.size = YEA::SKILL_COST::TP_COST_SIZE
cost = @actor.skill_tp_cost(skill)
text = sprintf(YEA::SKILL_COST::TP_COST_SUFFIX, cost.group)
draw_text(rect, text, 2)
cx = text_size(text).width + 4
rect.width -= cx
reset_font_settings
end
#--------------------------------------------------------------------------
# new method: draw_hp_skill_cost
#--------------------------------------------------------------------------
def draw_hp_skill_cost(rect, skill)
return unless @actor.skill_hp_cost(skill) > 0
contents.font.size -= 2
change_color(hp_cost_color)
#---
icon = Icon.hp_cost
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y)
rect.width -= 24
end
#---
contents.font.size = YEA::SKILL_COST::HP_COST_SIZE
cost = @actor.skill_hp_cost(skill)
text = sprintf(YEA::SKILL_COST::HP_COST_SUFFIX, cost.group)
draw_text(rect, text, 2)
cx = text_size(text).width + 4
rect.width -= cx
reset_font_settings
end
#--------------------------------------------------------------------------
# new method: draw_gold_skill_cost
#--------------------------------------------------------------------------
def draw_gold_skill_cost(rect, skill)
return unless @actor.skill_gold_cost(skill) > 0
contents.font.size -= 2
change_color(gold_cost_color)
#---
icon = Icon.gold_cost
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y)
rect.width -= 24
end
#---
contents.font.size = YEA::SKILL_COST::GOLD_COST_SIZE
cost = @actor.skill_gold_cost(skill)
text = sprintf(YEA::SKILL_COST::GOLD_COST_SUFFIX, cost.group)
draw_text(rect, text, 2)
cx = text_size(text).width + 4
rect.width -= cx
reset_font_settings
end
#--------------------------------------------------------------------------
# new method: draw_custom_skill_cost
#--------------------------------------------------------------------------
def draw_custom_skill_cost(rect, skill)
return unless skill.use_custom_cost
contents.font.size -= 2
change_color(text_color(skill.custom_cost_colour))
icon = skill.custom_cost_icon
if icon > 0
draw_icon(icon, rect.x + rect.width-24, rect.y)
rect.width -= 24
end
contents.font.size = skill.custom_cost_size
text = skill.custom_cost_text
draw_text(rect, text, 2)
cx = text_size(text).width + 4
rect.width -= cx
reset_font_settings
end
end
end # Window_Properties_Slot
#==============================================================================
# �� Window_SkillCommand
#==============================================================================
class Window_SkillCommand < Window_Command
#--------------------------------------------------------------------------
# alias method: make_command_list
#--------------------------------------------------------------------------
unless $imported["YEA-SkillMenu"]
alias yes_skill_equip_make_command_list make_command_list
def make_command_list
yes_skill_equip_make_command_list
add_command(YES::SKILL_EQUIP::COMMAND, :equip_skill, $game_switches[YES::SKILL_EQUIP::EQUIP_SKILL_SWITCH])
end
end
end # Window_SkillCommand
#==============================================================================
# �� Scene_Skill
#==============================================================================
class Scene_Skill < Scene_ItemBase
#--------------------------------------------------------------------------
# alias method: start
#--------------------------------------------------------------------------
alias yes_skill_equip_start start
def start
yes_skill_equip_start
create_slots_window
create_skill_equip_window
create_properties_window
end
#--------------------------------------------------------------------------
# alias method: create_command_window
#--------------------------------------------------------------------------
alias yes_skill_equip_create_command_window create_command_window
def create_command_window
yes_skill_equip_create_command_window
@command_window.set_handler(:equip_skill, method(:command_equip_skill))
end
#--------------------------------------------------------------------------
# new method: create_slots_window
#--------------------------------------------------------------------------
def create_slots_window
wx = 0
wy = @status_window.y + @status_window.height
wh = Graphics.height - wy
@slots_window = Window_SkillSlots.new(wx, wy, wh)
@slots_window.viewport = @viewport
@slots_window.help_window = @help_window
@slots_window.actor = @actor
@slots_window.set_handler(:ok, method(:on_slot_ok))
@slots_window.set_handler(:cancel, method(:on_slot_cancel))
end
#--------------------------------------------------------------------------
# new method: create_skill_equip_window
#--------------------------------------------------------------------------
def create_skill_equip_window
wx = 0
wy = @status_window.y + @status_window.height
ww = Graphics.width / 2
wh = Graphics.height - wy
@skill_equip = Window_SkillList_Equip.new(wx, wy, ww, wh)
@skill_equip.viewport = @viewport
@skill_equip.help_window = @help_window
@skill_equip.actor = @actor
@skill_equip.set_handler(:ok, method(:on_skill_equip_ok))
@skill_equip.set_handler(:cancel, method(:on_skill_equip_cancel))
end
#--------------------------------------------------------------------------
# new method: create_properties_window
#--------------------------------------------------------------------------
def create_properties_window
wx = @slots_window.width
wy = @status_window.y + @status_window.height
ww = Graphics.width / 2
wh = Graphics.height - wy
@properties_window = Window_Properties_Slot.new(wx, wy, ww, wh)
@properties_window.viewport = @viewport
@properties_window.actor = @actor
@slots_window.properties_window = @properties_window
@skill_equip.properties_window = @properties_window
end
#--------------------------------------------------------------------------
# new method: command_equip_skill
#--------------------------------------------------------------------------
def command_equip_skill
@slots_window.activate
end
#--------------------------------------------------------------------------
# new method: on_slot_ok
#--------------------------------------------------------------------------
def on_slot_ok
@slots_window.deactivate.hide
@skill_equip.show.activate
end
#--------------------------------------------------------------------------
# new method: on_slot_cancel
#--------------------------------------------------------------------------
def on_slot_cancel
@slots_window.deactivate
@command_window.activate
end
#--------------------------------------------------------------------------
# new method: on_skill_equip_ok
#--------------------------------------------------------------------------
def on_skill_equip_ok
id = @skill_equip.item == 0 ? 0 : @skill_equip.item.id
@actor.equip_skill(@slots_window.index, id)
@slots_window.refresh
@skill_equip.deactivate.hide
@slots_window.show.activate
end
#--------------------------------------------------------------------------
# new method: on_skill_equip_cancel
#--------------------------------------------------------------------------
def on_skill_equip_cancel
@skill_equip.deactivate.hide
@slots_window.show.activate
end
#--------------------------------------------------------------------------
# super method: update
#--------------------------------------------------------------------------
def update
super
if @command_window.active
if @command_window.current_symbol == :equip_skill
@item_window.hide
@slots_window.show
@properties_window.show
else
@slots_window.hide
@properties_window.hide
@item_window.show
end
end
end
#--------------------------------------------------------------------------
# alias method: on_actor_change
#--------------------------------------------------------------------------
alias yes_skill_equip_on_actor_change on_actor_change
def on_actor_change
yes_skill_equip_on_actor_change
@slots_window.index = 0
@skill_equip.index = 0
@slots_window.actor = @actor
@skill_equip.actor = @actor
@properties_window.actor = @actor
@slots_window.properties_window = @properties_window
end
end # Scene_Skill
#==============================================================================
#
# �� End of File
#
#==============================================================================