Код:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Battle Command List v1.08
# -- Last Updated: 2012.01.10
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-BattleCommandList"] = true
#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.01.10 - Compatibility Update: Battle System FTB
# 2011.12.30 - Bug Fixed: Disappearing windows when no confirm window is used.
# 2011.12.26 - Bug Fixed: Actor Command Window disappears without Battle Engine
# Ace installed.
# 2011.12.19 - Compatibility Update: Class System
# - New Actor Command: Subclass List
# 2011.12.17 - Bug Fixed: Item command from Actor Command Window fixed.
# 2011.12.15 - Bug Fixed: Prevented multiple actions per battler.
# 2011.12.13 - Compatibility Update: Command Equip
# Compatibility Update: Add-On: Command Party
# 2011.12.12 - Compatibility Update: Command Autobattle
# 2011.12.10 - Started Script and Finished.
# - Compatibility Update: Combat Log Display
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script allows you to change the order to commands that appear in battle
# for the Party Command Window and Actor Command Window. In addition to the
# ability to change the order commands appear, you may also add commands to the
# Actor Command Window that can trigger the usage of skills and/or items. The
# Confirm Command Window is also a new addition that appears at the end of the
# action select phase (after the last actor has made a choice) before entering
# the battle phase.
#
#==============================================================================
# ▼ 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.
#
# -----------------------------------------------------------------------------
# Actor Notetags - These notetags go in the actors notebox in the database.
# -----------------------------------------------------------------------------
# <command list>
# string
# string
# </command list>
# These lines go inside of an actor's notebox to adjust the battle commands
# that appear in the actor's Actor Command Window. Refer to the module as to
# what to use for the strings. If a custom command list is used for an actor,
# it will take priority over its class's custom command list, which takes place
# over the default command list.
#
# -----------------------------------------------------------------------------
# Class Notetags - These notetags go in the class notebox in the database.
# -----------------------------------------------------------------------------
# <command list>
# string
# string
# </command list>
# These lines go inside of a class's notebox to adjust the battle commands
# that appear in the actor's Actor Command Window. Refer to the module as to
# what to use for the strings. A custom command list for a class does not take
# priority over an actor's custom command list, but it does take priority over
# the default command list.
#
# -----------------------------------------------------------------------------
# Skill Notetags - These notetags go in the skill notebox in the database.
# -----------------------------------------------------------------------------
# <command name: string>
# If this skill is being used as a command, it will use "string" to replace the
# skill's name in the command list window.
#
# <command hide until learn>
# This hides the command until the actor has learned the respective skill for
# the command to appear in the actor's command list.
#
# <command hide until usable>
# This hides the command until the actor is capable of using the command by
# meeting TP costs or MP costs.
#
# <command hide until switch: x>
# This switch x is OFF, then the command remains hidden. If the switch is ON,
# then the command becomes enabled and appears in the command list.
#
# -----------------------------------------------------------------------------
# Item Notetags - These notetags go in the item notebox in the database.
# -----------------------------------------------------------------------------
# <command name: string>
# If this item is being used as a command, it will use "string" to replace the
# item's name in the command list window.
#
# <command hide until usable>
# This hides the command until the actor is capable of using the command as
# long as that item is usable normally.
#
# <command hide until switch: x>
# This switch x is OFF, then the command remains hidden. If the switch is ON,
# then the command becomes enabled and appears in the command list.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
# For maximum compatibility with Yanfly Engine Ace - Ace Battle Engine, place
# this script under Ace Battle Engine.
#
#==============================================================================
module YEA
module BATTLE_COMMANDS
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Party Command Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This section adjusts the commands for the Party Command Window. Rearrange
# commands as you see fit or add in new ones. Here's a list of which
# command does what:
#
# -------------------------------------------------------------------------
# :command Description
# -------------------------------------------------------------------------
# :fight Enters the command selection phase for actors. Default.
# :escape Party attempts to escape from battle. Default.
#
# :combatlog Requires YEA - Combat Log Display.
# :autobattle Requires YEA - Command Autobattle.
# :party Requires YEA - Party System Add-On: Command Party.
#
# And that's all of the currently available commands. This list will be
# updated as more scripts become available.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This array arranges the order of which the commands appear in the Party
# Command window.
PARTY_COMMANDS =[
:fight,
:autobattle,
:party,
# :custom1,
# :custom2,
:escape,
] # Do not remove this.
#--------------------------------------------------------------------------
# - Party Command Custom Commands -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# For those who use scripts to that may produce unique effects in battle,
# use this hash to manage the custom commands for the Party Command Window.
# You can disable certain commands or prevent them from appearing by using
# switches. If you don't wish to bind them to a switch, set the proper
# switch to 0 for it to have no impact.
#--------------------------------------------------------------------------
CUSTOM_PARTY_COMMANDS ={
# :command => ["Display Name", EnableSwitch, ShowSwitch, Handler Method],
:custom1 => [ "Custom Name", 0, 0, :command_name1],
:custom2 => [ "Custom Name", 13, 0, :command_name2],
} # Do not remove this.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Actor Command Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This section only adjusts the default commands for actors. If you wish
# for an actor to have a unique command list, use the notetags listed in
# the instructions to apply them. The custom command lists for actors will
# override this command list.
#
# Here's a list of which command does what:
#
# -------------------------------------------------------------------------
# :command Description
# -------------------------------------------------------------------------
# "ATTACK" Normal attack for actor. Default.
# "SKILL LIST" All of the skill types the actor can use. Default.
# "DEFEND" Set defend action for actor. Default.
# "ITEMS" Opens up the item menu for the actor. Default.
#
# "SKILL TYPE X" Specifically puts in skill type X if actor has it.
# "SKILL X" Uses Skill X in that slot.
# "ITEM X" Uses Item X in that slot.
#
# "AUTOBATTLE" Requires YEA - Command Autobattle.
# "EQUIP" Requires YEA - Command Equip
# "SUBCLASS LIST" Requires YEA - Class System. Adds subclass skill types.
#
# And that's all of the currently available commands. This list will be
# updated as more scripts become available.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# This array arranges the order of which the commands appear in the Actor
# Command window if the actor does not have a custom command list.
DEFAULT_ACTOR_COMMANDS =[
# "AUTOBATTLE",
"ATTACK",
"SKILL LIST",
"SUBCLASS LIST",
"DEFEND",
"ITEMS",
"EQUIP",
] # Do not remove this.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Confirm Command Window Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# The confirm window is something new that's been added. It shows after the
# last actor has made a decision as to what actions the player wishes to
# take for the turn Here's a list of which command does what:
#
# -------------------------------------------------------------------------
# :command Description
# -------------------------------------------------------------------------
# :execute Start the battle turn. Comes with this script.
#
# :combatlog Requires YEA - Combat Log Display.
#
# And that's all of the currently available commands. This list will be
# updated as more scripts become available.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
USE_CONFIRM_WINDOW = true # Set to false if you don't wish to use it.
# This array arranges the order of which the commands appear in the Party
# Command window.
CONFIRM_COMMANDS =[
:execute,
:combatlog,
# :custom1,
# :custom2,
] # Do not remove this.
# This sets what text appears for the execute command.
EXECUTE_VOCAB = "Execute"
#--------------------------------------------------------------------------
# - Confirm Command Custom Commands -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# For those who use scripts to that may produce unique effects in battle,
# use this hash to manage the custom commands for the Confirm Command
# Window. You can disable certain commands or prevent them from appearing
# by using switches. If you don't wish to bind them to a switch, set the
# proper switch to 0 for it to have no impact.
#--------------------------------------------------------------------------
CUSTOM_CONFIRM_COMMANDS ={
# :command => ["Display Name", EnableSwitch, ShowSwitch, Handler Method],
:custom1 => [ "Custom Name", 0, 0, :command_name1],
:custom2 => [ "Custom Text", 13, 0, :command_name2],
} # Do not remove this.
end # BATTLE_COMMANDS
end # YEA
#==============================================================================
# ▼ 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.
#==============================================================================
module YEA
module REGEXP
module BASEITEM
COMMAND_LIST_ON = /<(?:COMMAND_LIST|command list)>/i
COMMAND_LIST_OFF = /<\/(?:COMMAND_LIST|command list)>/i
end # BASEITEM
module USABLEITEM
COMMAND_NAME = /<(?:COMMAND NAME|command name):[ ](.*)>/i
COMMAND_HIDE_LEARN =
/<(?:COMMAND_HIDE_UNTIL_LEARN|command hide until learn)>/i
COMMAND_HIDE_USABLE =
/<(?:COMMAND_HIDE_UNTIL_USABLE|command hide until usable)>/i
COMMAND_HIDE_SWITCH =
/<(?:COMMAND_HIDE_UNTIL_SWITCH|command hide until switch):[ ](\d+)>/i
end # USABLEITEM
end # REGEXP
end # YEA
#==============================================================================
# ■ DataManager
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <<self; alias load_database_bcl load_database; end
def self.load_database
load_database_bcl
load_notetags_bcl
end
#--------------------------------------------------------------------------
# new method: load_notetags_bcl
#--------------------------------------------------------------------------
def self.load_notetags_bcl
groups = [$data_actors, $data_classes, $data_skills, $data_items]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_bcl
end
end
end
end # DataManager
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :battle_commands
#--------------------------------------------------------------------------
# common cache: load_notetags_bcl
#--------------------------------------------------------------------------
def load_notetags_bcl
@battle_commands = []
@command_list = false
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::BASEITEM::COMMAND_LIST_ON
@command_list = true
when YEA::REGEXP::BASEITEM::COMMAND_LIST_OFF
@command_list = false
else
next unless @command_list
@battle_commands.push(line.to_s.upcase)
#---
end
} # self.note.split
#---
if @battle_commands == [] and self.is_a?(RPG::Class)
@battle_commands = YEA::BATTLE_COMMANDS::DEFAULT_ACTOR_COMMANDS
end
end
end # RPG::BaseItem
#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem < RPG::BaseItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :command_name
attr_accessor :command_hide_until_learn
attr_accessor :command_hide_until_usable
attr_accessor :command_hide_until_switch
#--------------------------------------------------------------------------
# common cache: load_notetags_bcl
#--------------------------------------------------------------------------
def load_notetags_bcl
@command_name = @name.clone
@command_hide_until_switch = 0
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::USABLEITEM::COMMAND_NAME
@command_name = $1.to_s
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_LEARN
@command_hide_until_learn = true
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_USABLE
@command_hide_until_usable = true
when YEA::REGEXP::USABLEITEM::COMMAND_HIDE_USABLE
command_hide_until_switch = $1.to_i
#---
end
} # self.note.split
#---
end
end # RPG::UsableItem
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# new method: battle_commands
#--------------------------------------------------------------------------
def battle_commands
return self.actor.battle_commands unless actor.battle_commands == []
return self.class.battle_commands
end
#--------------------------------------------------------------------------
# new method: next_command_valid?
#--------------------------------------------------------------------------
def next_command_valid?
if $imported["YEA-BattleSystem-FTB"] && BattleManager.btype?(:ftb)
return false
end
return false if @action_input_index >= @actions.size - 1
return true
end
end # Game_Actor
#==============================================================================
# ■ Window_PartyCommand
#==============================================================================
class Window_PartyCommand < Window_Command
#--------------------------------------------------------------------------
# overwrite method: make_command_list
#--------------------------------------------------------------------------
def make_command_list
for command in YEA::BATTLE_COMMANDS::PARTY_COMMANDS
case command
when :fight
add_command(Vocab::fight, :fight)
when :escape
add_command(Vocab::escape, :escape, BattleManager.can_escape?)
when :combatlog
next unless $imported["YEA-CombatLogDisplay"]
add_command(YEA::COMBAT_LOG::COMMAND_NAME, :combatlog)
when :autobattle
next unless $imported["YEA-CommandAutobattle"]
add_autobattle_command
when :party
next unless $imported["YEA-PartySystem"]
next unless $imported["YEA-CommandParty"]
add_party_command
else
process_custom_command(command)
end
end
end
#--------------------------------------------------------------------------
# new method: process_custom_command
#--------------------------------------------------------------------------
def process_custom_command(command)
return unless YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS.include?(command)
show = YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS[command][2]
continue = show <= 0 ? true : $game_switches[show]
return unless continue
text = YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS[command][0]
switch = YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS[command][1]
enabled = switch <= 0 ? true : $game_switches[switch]
add_command(text, command, enabled)
end
end # Window_PartyCommand
#==============================================================================
# ■ Window_ConfirmCommand
#==============================================================================
class Window_ConfirmCommand < Window_Command
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0)
deactivate
hide
end
#--------------------------------------------------------------------------
# window_width
#--------------------------------------------------------------------------
def window_width; return 128; end
#--------------------------------------------------------------------------
# visible_line_number
#--------------------------------------------------------------------------
def visible_line_number; return 4; end
#--------------------------------------------------------------------------
# overwrite method: make_command_list
#--------------------------------------------------------------------------
def make_command_list
for command in YEA::BATTLE_COMMANDS::CONFIRM_COMMANDS
case command
when :execute
text = YEA::BATTLE_COMMANDS::EXECUTE_VOCAB
add_command(text, :execute)
when :combatlog
next unless $imported["YEA-CombatLogDisplay"]
add_command(YEA::COMBAT_LOG::COMMAND_NAME, :combatlog)
else
process_custom_command(command)
end
end
end
#--------------------------------------------------------------------------
# new method: process_custom_command
#--------------------------------------------------------------------------
def process_custom_command(command)
return unless YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS.include?(command)
show = YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS[command][2]
continue = show <= 0 ? true : $game_switches[show]
return unless continue
text = YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS[command][0]
switch = YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS[command][1]
enabled = switch <= 0 ? true : $game_switches[switch]
add_command(text, command, enabled)
end
#--------------------------------------------------------------------------
# setup
#--------------------------------------------------------------------------
def setup
clear_command_list
make_command_list
refresh
select(0)
activate
self.openness = 255
show
end
#--------------------------------------------------------------------------
# process_handling
#--------------------------------------------------------------------------
if $imported["YEA-BattleEngine"]
def process_handling
return unless open? && active
return process_dir4 if Input.repeat?(:LEFT)
return super
end
#--------------------------------------------------------------------------
# process_dir4
#--------------------------------------------------------------------------
def process_dir4
Sound.play_cursor
Input.update
deactivate
call_handler(:dir4)
end
end # $imported["YEA-BattleEngine"]
end # Window_ConfirmCommand
#==============================================================================
# ■ Window_ActorCommand
#==============================================================================
class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# alias method: setup
#--------------------------------------------------------------------------
alias window_actorcommand_setup_bcl setup
def setup(actor)
window_actorcommand_setup_bcl(actor)
show
end
#--------------------------------------------------------------------------
# overwrite method: make_command_list
#--------------------------------------------------------------------------
def make_command_list
return if @actor.nil?
@stype_list = []
for command in @actor.battle_commands
case command.upcase
#---
when /ATTACK/i
add_attack_command
when /SKILL LIST/i
add_skill_commands
when /DEFEND/i
add_guard_command
when /ITEMS/i
add_item_command
#---
when /SKILL TYPE[ ](\d+)/i
add_skill_type_command($1.to_i)
when /SKILL[ ](\d+)/i
add_skill_id_command($1.to_i)
when /ITEM[ ](\d+)/i
add_item_id_command($1.to_i)
#---
when /AUTOBATTLE/i
next unless $imported["YEA-CommandAutobattle"]
add_autobattle_command
when /EQUIP/i
next unless $imported["YEA-CommandEquip"]
add_equip_command
when /SUBCLASS LIST/i
add_subclass_skill_types
#---
else; next
end
end
end
#--------------------------------------------------------------------------
# overwrite method: add_skill_commands
#--------------------------------------------------------------------------
def add_skill_commands
@actor.added_skill_types.each do |stype_id|
next if @stype_list.include?(stype_id)
next if include_subclass_type?(stype_id)
add_skill_type_command(stype_id)
end
end
#--------------------------------------------------------------------------
# new method: include_subclass_type?
#--------------------------------------------------------------------------
def include_subclass_type?(stype_id)
return false unless $imported["YEA-ClassSystem"]
return @actor.subclass_skill_types.include?(stype_id)
end
#--------------------------------------------------------------------------
# new method: add_subclass_skill_types
#--------------------------------------------------------------------------
def add_subclass_skill_types
return unless $imported["YEA-ClassSystem"]
return if @actor.subclass.nil?
@actor.subclass_skill_types.sort.each do |stype_id|
next if @stype_list.include?(stype_id)
add_skill_type_command(stype_id)
end
end
#--------------------------------------------------------------------------
# new method: add_skill_type_command
#--------------------------------------------------------------------------
def add_skill_type_command(stype_id)
return unless @actor.added_skill_types.include?(stype_id)
return if @stype_list.include?(stype_id)
@stype_list.push(stype_id)
name = $data_system.skill_types[stype_id]
add_command(name, :skill, true, stype_id)
end
#--------------------------------------------------------------------------
# new method: add_skill_id_command
#--------------------------------------------------------------------------
def add_skill_id_command(skill_id)
return if $data_skills[skill_id].nil?
return unless add_use_skill?(skill_id)
name = $data_skills[skill_id].command_name
add_command(name, :use_skill, use_skill_valid?(skill_id), skill_id)
end
#--------------------------------------------------------------------------
# new method: add_use_skill?
#--------------------------------------------------------------------------
def add_use_skill?(skill_id)
skill = $data_skills[skill_id]
return false if hide_until_learn?(skill)
return false if hide_until_usable?(skill)
return false if hide_until_switch?(skill)
return true
end
#--------------------------------------------------------------------------
# new method: hide_until_learn?
#--------------------------------------------------------------------------
def hide_until_learn?(skill)
return false unless skill.command_hide_until_learn
return false if @actor.skill_learn?(skill)
return false if @actor.added_skills.include?(skill.id)
return true
end
#--------------------------------------------------------------------------
# new method: hide_until_usable?
#--------------------------------------------------------------------------
def hide_until_usable?(skill)
return false unless skill.command_hide_until_usable
return false if @actor.usable?(skill)
return true
end
#--------------------------------------------------------------------------
# new method: hide_until_switch?
#--------------------------------------------------------------------------
def hide_until_switch?(skill)
return false unless skill.command_hide_until_switch > 0
return false if $game_switches[skill.command_hide_until_switch]
return true
end
#--------------------------------------------------------------------------
# new method: use_skill_valid?
#--------------------------------------------------------------------------
def use_skill_valid?(skill_id)
skill = $data_skills[skill_id]
return false unless @actor.skill_conditions_met?(skill)
return true
end
#--------------------------------------------------------------------------
# new method: add_item_id_command
#--------------------------------------------------------------------------
def add_item_id_command(item_id)
return if $data_items[item_id].nil?
return unless add_use_item?(item_id)
name = $data_items[item_id].command_name
add_command(name, :use_item, use_item_valid?(item_id), item_id)
end
#--------------------------------------------------------------------------
# new method: add_use_item?
#--------------------------------------------------------------------------
def add_use_item?(item_id)
item = $data_items[item_id]
return false if hide_until_usable?(item)
return false if hide_until_switch?(item)
return true
end
#--------------------------------------------------------------------------
# new method: use_item_valid?
#--------------------------------------------------------------------------
def use_item_valid?(item_id)
item = $data_items[item_id]
return false unless @actor.item_conditions_met?(item)
return true
end
end # Window_ActorCommand
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# alias method: create_all_windows
#--------------------------------------------------------------------------
alias scene_battle_create_all_windows_bcl create_all_windows
def create_all_windows
scene_battle_create_all_windows_bcl
create_confirm_command_window
end
#--------------------------------------------------------------------------
# alias method: create_party_command_window
#--------------------------------------------------------------------------
alias create_party_command_window_bcl create_party_command_window
def create_party_command_window
create_party_command_window_bcl
process_custom_party_commands
end
#--------------------------------------------------------------------------
# new method: process_custom_party_commands
#--------------------------------------------------------------------------
def process_custom_party_commands
for command in YEA::BATTLE_COMMANDS::PARTY_COMMANDS
next unless YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS.include?(command)
called_method = YEA::BATTLE_COMMANDS::CUSTOM_PARTY_COMMANDS[command][3]
@party_command_window.set_handler(command, method(called_method))
end
end
#--------------------------------------------------------------------------
# alias method: create_actor_command_window
#--------------------------------------------------------------------------
alias create_actor_command_window_bcl create_actor_command_window
def create_actor_command_window
create_actor_command_window_bcl
@actor_command_window.set_handler(:use_skill, method(:command_use_skill))
@actor_command_window.set_handler(:use_item, method(:command_use_item))
end
#--------------------------------------------------------------------------
# alias method: start_actor_command_selection
#--------------------------------------------------------------------------
alias start_actor_command_selection_bcl start_actor_command_selection
def start_actor_command_selection
@confirm_command_window.hide unless @confirm_command_window.nil?
start_actor_command_selection_bcl
@actor_command_window.show
end
#--------------------------------------------------------------------------
# new method: command_use_skill
#--------------------------------------------------------------------------
def command_use_skill
@skill = $data_skills[@actor_command_window.current_ext]
BattleManager.actor.input.set_skill(@skill.id)
BattleManager.actor.last_skill.object = @skill
status_redraw_target(BattleManager.actor)
if $imported["YEA-BattleEngine"]
$game_temp.battle_aid = @skill
if @skill.for_opponent?
select_enemy_selection
elsif @skill.for_friend?
select_actor_selection
else
next_command
$game_temp.battle_aid = nil
end
else
if !@skill.need_selection?
next_command
elsif @skill.for_opponent?
select_enemy_selection
else
select_actor_selection
end
end
end
#--------------------------------------------------------------------------
# new method: command_use_item
#--------------------------------------------------------------------------
def command_use_item
@item = $data_items[@actor_command_window.current_ext]
BattleManager.actor.input.set_item(@item.id)
status_redraw_target(BattleManager.actor)
if $imported["YEA-BattleEngine"]
$game_temp.battle_aid = @item
if @item.for_opponent?
select_enemy_selection
elsif @item.for_friend?
select_actor_selection
else
next_command
$game_temp.battle_aid = nil
end
else
if !@item.need_selection?
next_command
elsif @item.for_opponent?
select_enemy_selection
else
select_actor_selection
end
end
end
#--------------------------------------------------------------------------
# alias method: on_actor_ok
#--------------------------------------------------------------------------
alias scene_battle_on_actor_ok_bcl on_actor_ok
def on_actor_ok
scene_battle_on_actor_ok_bcl
return if !@confirm_command_window.nil? && @confirm_command_window.visible
@actor_command_window.show
end
#--------------------------------------------------------------------------
# alias method: on_actor_cancel
#--------------------------------------------------------------------------
alias scene_battle_on_actor_cancel_bcl on_actor_cancel
def on_actor_cancel
scene_battle_on_actor_cancel_bcl
case @actor_command_window.current_symbol
when :use_skill, :use_item
@help_window.hide
@status_window.show
@actor_command_window.activate
status_redraw_target(BattleManager.actor)
end
end
#--------------------------------------------------------------------------
# alias method: on_enemy_ok
#--------------------------------------------------------------------------
alias scene_battle_on_enemy_ok_bcl on_enemy_ok
def on_enemy_ok
scene_battle_on_enemy_ok_bcl
return if !@confirm_command_window.nil? && @confirm_command_window.visible
@actor_command_window.show
end
#--------------------------------------------------------------------------
# alias method: on_enemy_cancel
#--------------------------------------------------------------------------
alias scene_battle_on_enemy_cancel_bcl on_enemy_cancel
def on_enemy_cancel
scene_battle_on_enemy_cancel_bcl
case @actor_command_window.current_symbol
when :use_skill, :use_item
@help_window.hide
@status_window.show
@actor_command_window.activate
status_redraw_target(BattleManager.actor)
end
end
#--------------------------------------------------------------------------
# new method: status_redraw_target
#--------------------------------------------------------------------------
def status_redraw_target(target)
return unless target.actor?
@status_window.draw_item($game_party.battle_members.index(target))
end
#--------------------------------------------------------------------------
# new method: create_confirm_command_window
#--------------------------------------------------------------------------
def create_confirm_command_window
return unless YEA::BATTLE_COMMANDS::USE_CONFIRM_WINDOW
@confirm_command_window = Window_ConfirmCommand.new
@confirm_command_window.viewport = @info_viewport
@confirm_command_window.set_handler(:execute, method(:command_execute))
@confirm_command_window.set_handler(:cancel, method(:on_confirm_cancel))
@confirm_command_window.set_handler(:dir4, method(:on_confirm_cancel))
@confirm_command_window.unselect
@confirm_command_window.x = Graphics.width
process_custom_confirm_commands
process_confirm_compatibility_commands
end
#--------------------------------------------------------------------------
# new method: process_custom_confirm_commands
#--------------------------------------------------------------------------
def process_custom_confirm_commands
for command in YEA::BATTLE_COMMANDS::CONFIRM_COMMANDS
next unless YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS.include?(command)
called_method = YEA::BATTLE_COMMANDS::CUSTOM_CONFIRM_COMMANDS[command][3]
@party_command_window.set_handler(command, method(called_method))
end
end
#--------------------------------------------------------------------------
# new method: process_confirm_compatibility_commands
#--------------------------------------------------------------------------
def process_confirm_compatibility_commands
#---
if $imported["YEA-CombatLogDisplay"]
@confirm_command_window.set_handler(:combatlog, method(:open_combatlog))
end
#---
end
#--------------------------------------------------------------------------
# new method: start_confirm_command_selection
#--------------------------------------------------------------------------
def start_confirm_command_selection
if $imported["YEA-BattleEngine"]
@status_window.show
redraw_current_status
@status_aid_window.hide
end
@status_window.unselect
@actor_command_window.hide
@confirm_command_window.setup
end
#--------------------------------------------------------------------------
# new method: on_confirm_cancel
#--------------------------------------------------------------------------
def on_confirm_cancel
@confirm_command_window.hide unless @confirm_command_window.nil?
@actor_command_window.show
@actor_command_window.setup(BattleManager.actor)
@status_window.select(BattleManager.actor.index)
prior_command unless BattleManager.actor.inputable?
end
#--------------------------------------------------------------------------
# alias method: next_command
#--------------------------------------------------------------------------
alias scene_battle_next_command_bcl next_command
def next_command
if prompt_next_actor?
scene_battle_next_command_bcl
elsif YEA::BATTLE_COMMANDS::USE_CONFIRM_WINDOW
start_confirm_command_selection
else
turn_start
end
end
#--------------------------------------------------------------------------
# new method: prompt_next_actor?
#--------------------------------------------------------------------------
def prompt_next_actor?
index = @status_window.index
last_index = $game_party.battle_members.size - 1
for member in $game_party.battle_members.reverse
break if member.inputable?
last_index -= 1
end
if index >= last_index
actor = $game_party.battle_members[index]
return true if prompt_ftb_action?(actor)
return true if actor.next_command_valid?
return false if YEA::BATTLE_COMMANDS::USE_CONFIRM_WINDOW
end
return true
end
#--------------------------------------------------------------------------
# new method: prompt_ftb_action?
#--------------------------------------------------------------------------
def prompt_ftb_action?(actor)
return false unless $imported["YEA-BattleEngine"]
return false unless $imported["YEA-BattleSystem-FTB"]
return false unless BattleManager.btype?(:ftb)
return actor.current_action.valid?
end
#--------------------------------------------------------------------------
# new method: command_execute
#--------------------------------------------------------------------------
def command_execute
@confirm_command_window.close
turn_start
end
#--------------------------------------------------------------------------
# new method: command_name1
#--------------------------------------------------------------------------
def command_name1
# Do nothing.
end
#--------------------------------------------------------------------------
# new method: command_name2
#--------------------------------------------------------------------------
def command_name2
# Do nothing.
end
end # Scene_Battle
#==============================================================================
#
# ▼ End of File
#
#==============================================================================
ссылку на такентай щас дам
Социальные закладки