赞 | 0 |
VIP | 110 |
好人卡 | 0 |
积分 | 1 |
经验 | 20413 |
最后登录 | 2016-12-8 |
在线时间 | 192 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 192 小时
- 注册时间
- 2007-7-14
- 帖子
- 2746
|
把以下脚本替换掉Scene_Battle 2的内容
然后在Main之前插入下面这段脚本,里面包括“攻击、特技、防守、物品、装备、逃跑”6个选项,可以任君删改,当然我已经把“装备”项弄掉了了~~
- #==============================================================================
- # 可直接添在 Scene_Battle (分割定义 3)下,或者在Main之前插入
- #------------------------------------------------------------------------------
- # 处理战斗画面的类。
- #==============================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● メイン處理
- #--------------------------------------------------------------------------
- def main
- # 戰鬥用の各種一時データを初期化
- $game_temp.in_battle = true
- $game_temp.battle_turn = 0
- $game_temp.battle_event_flags.clear
- $game_temp.battle_abort = false
- $game_temp.battle_main_phase = false
- $game_temp.battleback_name = $game_map.battleback_name
- $game_temp.forcing_battler = nil
- # バトルイベント用インタプリタを初期化
- $game_system.battle_interpreter.setup(nil, 0)
- # トループを準備
- @troop_id = $game_temp.battle_troop_id
- $game_troop.setup(@troop_id)
- # アクターコマンドウィンドウを作成
- s1 = $data_system.words.attack
- s2 = $data_system.words.skill
- s3 = $data_system.words.guard
- s4 = $data_system.words.item
- #s4= $data_system.words.equip #装备
- @actor_command_window = Window_Command.new(150, [s1, s2, s3, s4, "逃跑"])
- #@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
- @actor_command_window.y =150
- @actor_command_window.back_opacity = 160
- @actor_command_window.active = false
- @actor_command_window.visible = false
- # その他のウィンドウを作成
- @party_command_window = Window_PartyCommand.new
- @help_window = Window_Help.new
- @help_window.back_opacity = 160
- @help_window.visible = false
- @status_window = Window_BattleStatus.new
- @message_window = Window_Message.new
- # スプライトセットを作成
- @spriteset = Spriteset_Battle.new
- # ウェイトカウントを初期化
- @wait_count = 0
- # トランジション实行
- if $data_system.battle_transition == ""
- Graphics.transition(20)
- else
- Graphics.transition(40, "Graphics/Transitions/" +
- $data_system.battle_transition)
- end
- # プレバトルフェーズ开始
- start_phase1
- # メインループ
- loop do
- # ゲーム畫面を更新
- Graphics.update
- # 入力情報を更新
- Input.update
- # フレーム更新
- update
- # 畫面が切り替わったらループを中斷
- if $scene != self
- break
- end
- end
- # マップをリフレッシュ
- $game_map.refresh
- # トランジション準備
- Graphics.freeze
- # ウィンドウを解放
- @actor_command_window.dispose
- @party_command_window.dispose
- @help_window.dispose
- @status_window.dispose
- @message_window.dispose
- if @skill_window != nil
- @skill_window.dispose
- end
- if @item_window != nil
- @item_window.dispose
- end
- if @result_window != nil
- @result_window.dispose
- end
- # スプライトセットを解放
- @spriteset.dispose
- # タイトル畫面に切り替え中の場合
- if $scene.is_a?(Scene_Title)
- # 畫面をフェードアウト
- Graphics.transition
- Graphics.freeze
- end
- # 戰鬥テストからゲームオーバー畫面以外に切り替え中の場合
- if $BTEST and not $scene.is_a?(Scene_Gameover)
- $scene = nil
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合) [フレーム更新 (アクターコマンドフェーズ)]
- #--------------------------------------------------------------------------
- def update_phase3
- # 敌人光标有效的情况下 [エネミーアローが有效の場合]
- if @enemy_arrow != nil
- update_phase3_enemy_select
- # 角色光标有效的情况下 [アクターアローが有效の場合]
- elsif @actor_arrow != nil
- update_phase3_actor_select
- # 特技窗口有效的情况下 [スキルウィンドウが有效の場合]
- elsif @skill_window != nil
- update_phase3_skill_select
- # 物品窗口有效的情况下 [アイテムウィンドウが有效の場合]
- elsif @item_window != nil
- update_phase3_item_select
- # ★追加 装备变更有效的情况下 [裝備變更ウィンドウが有效の場合]
- elsif @right_window != nil
- update_phase3_equip_select
- # 角色指令窗口有效的情况下 [アクターコマンドウィンドウが有效の場合]
- elsif @actor_command_window.active
- update_phase3_basic_command
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面 (角色命令回合 : 基本命令) [フレーム更新 (アクターコマンドフェーズ : 基本コマンド)]
- #--------------------------------------------------------------------------
- def update_phase3_basic_command
- # 按下 B 键的情况下 [B ボタンが押された場合]
- if Input.trigger?(Input::B)
- # 演奏取消 SE [キャンセル SE を演奏]
- $game_system.se_play($data_system.cancel_se)
- # 转向前一个角色的指令输入 [前のアクターのコマンド入力へ]
- phase3_prior_actor
- return
- end
- # 按下 C 键的情况下 [C ボタンが押された場合]
- if Input.trigger?(Input::C)
- # 角色指令窗口光标位置分之 [アクターコマンドウィンドウのカーソル位置で分岐]
- case @actor_command_window.index
- when 0 # 攻击 [攻擊]
- # 演奏确定 SE [決定 SE を演奏]
- $game_system.se_play($data_system.decision_se)
- # 设置行动 [アクションを設定]
- @active_battler.current_action.kind = 0
- @active_battler.current_action.basic = 0
- # 开始选择敌人 [エネミーの選擇を開始]
- start_enemy_select
- when 1 # 特技 [スキル]
- # 演奏确定 SE [決定 SE を演奏]
- $game_system.se_play($data_system.decision_se)
- # 设置行动 [アクションを設定]
- @active_battler.current_action.kind = 1
- # 开始选择特技 [スキルの選擇を開始]
- start_skill_select
- when 2 # 防御 [防禦]
- # 演奏确定 SE [決定 SE を演奏]
- $game_system.se_play($data_system.decision_se)
- # 设置行动 [アクションを設定]
- @active_battler.current_action.kind = 0
- @active_battler.current_action.basic = 1
- # 转向下一位角色的指令输入 [次のアクターのコマンド入力へ]
- phase3_next_actor
- when 3# 物品 [アイテム]
- # 演奏确定 SE [決定 SE を演奏]
- $game_system.se_play($data_system.decision_se)
- # 设置行动 [アクションを設定]
- @active_battler.current_action.kind = 2
- # 开始选择物品 [アイテムの選擇を開始]
- start_item_select
- =begin
- when 3 # 装备 [裝備]
- # 演奏确定 SE [決定 SE を演奏]
- $game_system.se_play($data_system.decision_se)
- # 设置行动 [アクションを設定]
- @active_battler.current_action.kind = 0
- # 选择开始 [アイテムの選擇を開始]
- start_equip_select
- =end
- when 4
- if $game_temp.battle_can_escape == false
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 逃走处理
- update_phase2_escape
- end
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 變更裝備選擇)
- #--------------------------------------------------------------------------
- def update_phase3_equip_select
- # スキルウィンドウを可視狀態にする
- @right_window.visible = true
- # ウィンドウを更新
- @right_window.update
- if @right_window.index != @now_right_window
- @now_right_window =@right_window.index
- if @equip_item_window.index == -1
- @equip_item_window.index = 0
- @equip_item_window.refresh
- @equip_item_window.index = -1
- end
- end
- @equip_item_window.update
- equip_item_window_select
- # アイテムウィンドウがアクティブの場合
- if @equip_item_window.active
- update_phase3_equip_i_select
- return
- end
- # B ボタンが押された場合
- if Input.trigger?(Input::B)
- # キャンセル SE を演奏
- $game_system.se_play($data_system.cancel_se)
- # 裝備選擇を終了
- end_equip_select
- return
- end
- # C ボタンが押された場合
- if Input.trigger?(Input::C)
- # 裝備固定の場合
- if @active_battler.equip_fix?(@right_window.index)
- # ブザー SE を演奏
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アイテムウィンドウをアクティブ化
- @right_window.active = false
- @equip_item_window.active = true
- @equip_item_window.index = 0
- @now_right_window = -1
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 裝備アイテム選擇)
- #--------------------------------------------------------------------------
- def update_phase3_equip_i_select
- item1 = @right_window.item
- item2 = @equip_item_window.item
- last_hp = @active_battler.hp
- last_sp = @active_battler.sp
- @active_battler.equip(@right_window.index, item2 == nil ? 0 : item2.id)
- new_atk = @active_battler.atk
- new_pdef = @active_battler.pdef
- new_mdef = @active_battler.mdef
- @active_battler.equip(@right_window.index, item1 == nil ? 0 : item1.id)
- @active_battler.hp = last_hp
- @active_battler.sp = last_sp
- @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
- # B ボタンが押された場合
- if Input.trigger?(Input::B)
- # キャンセル SE を演奏
- $game_system.se_play($data_system.cancel_se)
- # 裝備アイテム選擇を終了
- @now_item_window = -1
- @right_window.active = true
- @equip_item_window.active = false
- @equip_item_window.index = -1
- return
- end
- # C ボタンが押された場合
- if Input.trigger?(Input::C)
- $game_system.se_play($data_system.equip_se)
- # アイテムウィンドウで現在選擇されているデータを取得
- item = @equip_item_window.item
- # 裝備を變更
- @active_battler.equip(@right_window.index, item == nil ? 0 : item.id)
- # ライトウィンドウをアクティブ化
- @right_window.active = true
- @equip_item_window.active = false
- @equip_item_window.index = -1
- # ライトウィンドウ、アイテムウィンドウの內容を再作成
- @right_window.refresh
- @equip_item_window.refresh
- @left_window.refresh
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 裝備選擇開始
- #--------------------------------------------------------------------------
- def start_equip_select
- # 裝備ウィンドウを作成
- #パラメータを呼び出したい時は註釋消す
- @left_window = Window_EquipLeft.new(@active_battler)
- @right_window = Window_EquipRight.new(@active_battler)
- @item_window1 = Window_EquipItem.new(@active_battler, 0)
- @item_window2 = Window_EquipItem.new(@active_battler, 1)
- @item_window3 = Window_EquipItem.new(@active_battler, 2)
- @item_window4 = Window_EquipItem.new(@active_battler, 3)
- @item_window5 = Window_EquipItem.new(@active_battler, 4)
- @item_window1.z = 9999
- @item_window2.z = 9999
- @item_window3.z = 9999
- @item_window4.z = 9999
- @item_window5.z = 9999
- # ヘルプウィンドウを關連付け
- @right_window.help_window = @help_window
- @item_window1.help_window = @help_window
- @item_window2.help_window = @help_window
- @item_window3.help_window = @help_window
- @item_window4.help_window = @help_window
- @item_window5.help_window = @help_window
- @now_right_window = -1
- @right_window.index = 0
- equip_item_window_select
- # アクターコマンドウィンドウを無效化
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ★● 追加 裝備選擇終了
- #--------------------------------------------------------------------------
- def end_equip_select
- # アイテムウィンドウを解放
- #パラメータを呼び出したい時は註釋消す
- @left_window.dispose
- @right_window.dispose
- @item_window1.dispose
- @item_window2.dispose
- @item_window3.dispose
- @item_window4.dispose
- @item_window5.dispose
- @right_window= nil
- @item_window1= nil
- @item_window2= nil
- @item_window3= nil
- @item_window4= nil
- @item_window5= nil
- # ヘルプウィンドウを隱す
- @help_window.visible = false
- # アクターコマンドウィンドウを有效化
- @actor_command_window.active = true
- @actor_command_window.visible = true
- end
- #--------------------------------------------------------------------------
- # ★● 追加 裝備アイテムウインドウのチェック
- #--------------------------------------------------------------------------
- def equip_item_window_select
- @left_window.set_new_parameters(nil, nil, nil)
- # アイテムウィンドウの可視狀態設定
- @item_window1.visible = (@right_window.index == 0)
- @item_window2.visible = (@right_window.index == 1)
- @item_window3.visible = (@right_window.index == 2)
- @item_window4.visible = (@right_window.index == 3)
- @item_window5.visible = (@right_window.index == 4)
- # ーーー★追加(註釋消すとアクセサリ1つ增加)
- @item_window5.visible = (@right_window.index == 4) || (@right_window.index == 5)
- # ーーー終わり
- # 現在のアイテムウィンドウを @item_window に設定
- case @right_window.index
- when 0
- @equip_item_window = @item_window1
- when 1
- @equip_item_window = @item_window2
- when 2
- @equip_item_window = @item_window3
- when 3
- @equip_item_window = @item_window4
- when 4
- @equip_item_window = @item_window5
- # ーーー★追加(註釋消すとアクセサリ1つ增加)
- when 5
- @equip_item_window = @item_window5
- when 6
- if $game_temp.battle_can_escape == false
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # 逃走处理
- update_phase2_escape
- end
- end
- end
- #==============================================================================
- #此脚本来自网上,有过修改
- #==============================================================================
复制代码 系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~ 系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~ |
|