#============================================================================== # □ 特殊オートバトルコマンド Ver 1.0(11/12/18) #------------------------------------------------------------------------------ #  さまざまなステートを付加するオートバトルコマンドを追加します。 #============================================================================== module SceneManager class << self alias cc_party_command_run run def run DataManager.init $trans_command = {} $command_set = [] $command_set << [Vocab::fight, []] $command_set << [Vocab::escape, []] #============================================================================== # ☆ カスタマイズここから。 #============================================================================== # cc_pt_cmd_list = ["コマンド名", "コマンド名", ...] # のように、パーティコマンドを並べてください。 $command_list = ["戦う", "オート", "逃げる"] # cc_pt_cmd_st << ["コマンド名", ["ステート名", "ステート名", ...] # のように、コマンド名とアクターに追加するステート名を記述してください。 # コマンド名は上で書いたものと対応させてください。 $command_set << ["オート", []] #============================================================================== # ☆ カスタマイズここまで。 #============================================================================== $command_set.each_index do |i| $trans_command[$command_set[i][0]] = i $trans_command[i] = i end $trans_state = {} $data_states.each do |state| state == nil ? next : $trans_state[state.name] = state.id $trans_state[state.id] = state.id end cc_party_command_run end end end #============================================================================== # □ Window_PartyCommand #------------------------------------------------------------------------------ #  バトル画面で、戦うか逃げるかを選択するウィンドウです。 #============================================================================== class Window_PartyCommand < Window_Command #-------------------------------------------------------------------------- # ○ コマンドリストの作成 #-------------------------------------------------------------------------- def make_command_list $command_list.each do |cmd| command_id = $trans_command[cmd] case command_id when 0 add_command(Vocab::fight, :fight) when 1 add_command(Vocab::escape, :escape, BattleManager.can_escape?) when nil else add_command($command_set[command_id][0], :special, true, command_id) end end end end #============================================================================== # □ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ○ パーティコマンドウィンドウの作成 #-------------------------------------------------------------------------- def create_party_command_window @party_command_window = Window_PartyCommand.new @party_command_window.viewport = @info_viewport $command_list.each do |cmd| i = $trans_command[cmd] case i when 0 @party_command_window.set_handler(:fight, method(:command_fight)) when 1 @party_command_window.set_handler(:escape, method(:command_escape)) else @party_command_window.set_handler(:special, method(:command_special)) end end @party_command_window.unselect end #-------------------------------------------------------------------------- # ○ パーティコマンド定義 #-------------------------------------------------------------------------- def command_special command_id = @party_command_window.current_ext $game_party.members.each do |member| member.result.clear $command_set[command_id][1].each do |state_name| state_name == nil ? next : member.add_state($trans_state[state_name]) end member.make_auto_battle_actions end @party_command_window.deactivate turn_start end end