#==============================================================================
# ■ 個別戦闘コマンド
# 制作:はりー
# ホームページ:魔法使いの古書店 [url]http://sbow.xxxxxxxx.jp/[/url]
# ソフト:RPGツクールVX Ace(RGSS3)
# Last Update:2012/11/10
# Current Version:1.00
#------------------------------------------------------------------------------
# キャラクター毎に個別の戦闘コマンドを追加します。
#==============================================================================
=begin
■ 更新情報
2012/11/10 個別戦闘コマンドを公開しました。
=end
#==============================================================================
# ■ 使い方
#------------------------------------------------------------------------------
# ActorIndividualCommand[id] = [skill1,skill2,・・・]
# ・idにコマンドを追加したいアクターのIDを入れてください。
# ・skill1(skill2,・・・)に追加したいスキルのIDを入れてください。
#
# 例)アクターID5のアクターにスキルID8と15を追加する場合、
# ActorIndividualCommand[5] = [8,15]
# としてください。
#
# また、コマンドは攻撃コマンドの下に追加されていきます。
#==============================================================================
#==============================================================================
# ■ カスタマイズ項目
#------------------------------------------------------------------------------
module WSB
module INDIVIDUALCOMMAND
ActorIndividualCommand = [] # ここは変更・削除しないでください
#ここから追加してください。
ActorIndividualCommand[] = []
end
end
#==============================================================================
# ■ BattleManager
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# ● コマンド入力中のアクターIDを取得
#--------------------------------------------------------------------------
def self.actor_id
actor.id
end
end
#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
# バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle
include WSB::INDIVIDUALCOMMAND
#--------------------------------------------------------------------------
# ● アクターコマンドウィンドウの作成
#--------------------------------------------------------------------------
alias individual_create_actor_command_window create_actor_command_window
def create_actor_command_window
individual_create_actor_command_window
@actor_command_window.set_handler(:symbol, method(:command_individual))
end
#--------------------------------------------------------------------------
# ● 個別コマンド
#--------------------------------------------------------------------------
def command_individual
now_index = @actor_command_window.index - 1
skill_id = ActorIndividualCommand[BattleManager.actor_id][now_index]
@skill = $data_skills[skill_id]
BattleManager.actor.input.set_skill(@skill.id)
if !@skill.need_selection?
next_command
elsif @skill.for_opponent?
select_enemy_selection
else
select_actor_selection
end
end
#--------------------------------------------------------------------------
# ● 敵キャラ選択[キャンセル]
#--------------------------------------------------------------------------
alias individual_on_enemy_cancel on_enemy_cancel
def on_enemy_cancel
individual_on_enemy_cancel
case @actor_command_window.current_symbol
when :attack
when :skill
when :item
else
@actor_command_window.activate
end
end
#--------------------------------------------------------------------------
# ● アクター選択[キャンセル]
#--------------------------------------------------------------------------
alias individual_on_actor_cancel on_actor_cancel
def on_actor_cancel
individual_on_actor_cancel
case @actor_command_window.current_symbol
when :attack
when :skill
when :item
else
@actor_command_window.activate
end
end
end
#==============================================================================
# ■ Window_ActorCommand
#------------------------------------------------------------------------------
# バトル画面で、アクターの行動を選択するウィンドウです。
#==============================================================================
class Window_ActorCommand
include WSB::INDIVIDUALCOMMAND
#--------------------------------------------------------------------------
# ● コマンドリストの作成
#--------------------------------------------------------------------------
def make_command_list
return unless @actor
add_attack_command
add_individual_command
add_skill_commands
add_guard_command
add_item_command
end
#-------------------------------------------------------------------------
# ● 特殊コマンドの追加
#-------------------------------------------------------------------------
def add_individual_command
return unless ActorIndividualCommand[BattleManager.actor_id]
ActorIndividualCommand[BattleManager.actor_id].each do |skill_id|
add_command("#{$data_skills[skill_id].name}", :symbol)
end
end
end