Project1

标题: 关于战斗中换装备的问题 [打印本页]

作者: 步兵中尉    时间: 2007-7-20 08:25
标题: 关于战斗中换装备的问题
    最近看到不少人问如何在战斗中换装备。以前站上有这样的脚本,可是后来被删除了。
    现在好不容易找到了,把它发布出来,希望站上恢复。

  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #============================================================================== #  「戦闘中に装備」スクリプト Ver1.00
  4. #
  5. #
  6. #戦闘中に装備が出来るようになります。以下のスクリプトをmainの上にでも挿入
  7. #して下さい。アクターコマンドの一番下に装備コマンドが出ると思います。
  8. #
  9. #なお、このスクリプトは通常時の装備画面を直接呼び出しておりますので、
  10. #画面のデザインは考慮しておりません。レイアウトの変更は各自でお願い致します。
  11. #つまり、装備画面の変更が大前提となります。一応、そのままでも動作は問題あり
  12. #ませんが・・・。
  13. #なお、呼び出している画面は「装備中のアイテム欄」と
  14. #「装備できるアイテム欄」です。
  15. #
  16. #
  17. #画面レイアウトの変更はRGSSの初歩の技術ですので、
  18. #それが出来ない方は、親切な方に教えて頂くか諦めて下さい(ぇ
  19. #勉強と思ってがんばりましょう(^^;)
  20. #※ヒント
  21. #●Window_EquipLeft
  22. #●Window_EquipRight
  23. #●Window_EquipItem
  24. #が変更場所です・・・・・。

  25. #==============================================================================
  26. # ■ Scene_Battle (分割定義 3)
  27. #------------------------------------------------------------------------------
  28. #  バトル画面の処理を行うクラスです。
  29. #==============================================================================
  30. class Scene_Battle
  31. #--------------------------------------------------------------------------
  32. # ● メイン処理
  33. #--------------------------------------------------------------------------
  34. def main
  35.    # 戦闘用の各種一時データを初期化
  36.    $game_temp.in_battle = true
  37.    $game_temp.battle_turn = 0
  38.    $game_temp.battle_event_flags.clear
  39.    $game_temp.battle_abort = false
  40.    $game_temp.battle_main_phase = false
  41.    $game_temp.battleback_name = $game_map.battleback_name
  42.    $game_temp.forcing_battler = nil
  43.    # バトルイベント用インタプリタを初期化
  44.    $game_system.battle_interpreter.setup(nil, 0)
  45.    # トループを準備
  46.    @troop_id = $game_temp.battle_troop_id
  47.    $game_troop.setup(@troop_id)
  48.    # アクターコマンドウィンドウを作成
  49.    s1 = $data_system.words.attack
  50.    s2 = $data_system.words.skill
  51.    s3 = $data_system.words.guard
  52.    s4 = $data_system.words.item
  53.    s5 = $data_system.words.equip #ーーー●●装備
  54.    @actor_command_window = Window_Command.new(128, [s1, s2, s3, s4, s5])
  55.    #@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
  56.    @actor_command_window.y = 128 #160

  57.    @actor_command_window.back_opacity = 160
  58.    @actor_command_window.active = false
  59.    @actor_command_window.visible = false
  60.    # その他のウィンドウを作成
  61.    @party_command_window = Window_PartyCommand.new
  62.    @help_window = Window_Help.new
  63.    @help_window.back_opacity = 160
  64.    @help_window.visible = false
  65.    @status_window = Window_BattleStatus.new
  66.    @message_window = Window_Message.new
  67.    # スプライトセットを作成
  68.    @spriteset = Spriteset_Battle.new
  69.    # ウェイトカウントを初期化
  70.    @wait_count = 0
  71.    # トランジション実行
  72.    if $data_system.battle_transition == ""
  73.      Graphics.transition(20)
  74.    else
  75.      Graphics.transition(40, "Graphics/Transitions/" +
  76.        $data_system.battle_transition)
  77.    end
  78.    # プレバトルフェーズ開始
  79.    start_phase1
  80.    # メインループ
  81.    loop do
  82.      # ゲーム画面を更新
  83.      Graphics.update
  84.      # 入力情報を更新
  85.      Input.update
  86.      # フレーム更新
  87.      update
  88.      # 画面が切り替わったらループを中断
  89.      if $scene != self
  90.        break
  91.      end
  92.    end
  93.    # マップをリフレッシュ
  94.    $game_map.refresh
  95.    # トランジション準備
  96.    Graphics.freeze
  97.    # ウィンドウを解放
  98.    @actor_command_window.dispose
  99.    @party_command_window.dispose
  100.    @help_window.dispose
  101.    @status_window.dispose
  102.    @message_window.dispose
  103.    if @skill_window != nil
  104.      @skill_window.dispose
  105.    end
  106.    if @item_window != nil
  107.      @item_window.dispose
  108.    end
  109.    if @result_window != nil
  110.      @result_window.dispose
  111.    end
  112.    # スプライトセットを解放
  113.    @spriteset.dispose
  114.    # タイトル画面に切り替え中の場合
  115.    if $scene.is_a?(Scene_Title)
  116.      # 画面をフェードアウト
  117.      Graphics.transition
  118.      Graphics.freeze
  119.    end
  120.    # 戦闘テストからゲームオーバー画面以外に切り替え中の場合
  121.    if $BTEST and not $scene.is_a?(Scene_Gameover)
  122.      $scene = nil
  123.    end
  124. end



  125. #--------------------------------------------------------------------------
  126. # ● フレーム更新 (アクターコマンドフェーズ)
  127. #--------------------------------------------------------------------------
  128. def update_phase3
  129.    # エネミーアローが有効の場合
  130.    if @enemy_arrow != nil
  131.      update_phase3_enemy_select
  132.    # アクターアローが有効の場合
  133.    elsif @actor_arrow != nil
  134.      update_phase3_actor_select
  135.    # スキルウィンドウが有効の場合
  136.    elsif @skill_window != nil
  137.      update_phase3_skill_select
  138.    # アイテムウィンドウが有効の場合
  139.    elsif @item_window != nil
  140.      update_phase3_item_select
  141.    # ★追加 装備変更ウィンドウが有効の場合
  142.    elsif @right_window != nil
  143.         update_phase3_equip_select
  144.    # アクターコマンドウィンドウが有効の場合
  145.    elsif @actor_command_window.active
  146.      update_phase3_basic_command
  147.    end
  148. end
  149. #--------------------------------------------------------------------------
  150. # ● フレーム更新 (アクターコマンドフェーズ : 基本コマンド)
  151. #--------------------------------------------------------------------------
  152. def update_phase3_basic_command
  153.    # B ボタンが押された場合
  154.    if Input.trigger?(Input::B)
  155.      # キャンセル SE を演奏
  156.      $game_system.se_play($data_system.cancel_se)
  157.      # 前のアクターのコマンド入力へ
  158.      phase3_prior_actor
  159.      return
  160.    end
  161.    # C ボタンが押された場合
  162.    if Input.trigger?(Input::C)
  163.      # アクターコマンドウィンドウのカーソル位置で分岐
  164.      case @actor_command_window.index
  165.      when 0  # 攻撃
  166.        # 決定 SE を演奏
  167.        $game_system.se_play($data_system.decision_se)
  168.        # アクションを設定
  169.        @active_battler.current_action.kind = 0
  170.        @active_battler.current_action.basic = 0
  171.        # エネミーの選択を開始
  172.        start_enemy_select
  173.      when 1  # スキル
  174.        # 決定 SE を演奏
  175.        $game_system.se_play($data_system.decision_se)
  176.        # アクションを設定
  177.        @active_battler.current_action.kind = 1
  178.        # スキルの選択を開始
  179.        start_skill_select
  180.      when 2  # 防御
  181.        # 決定 SE を演奏
  182.        $game_system.se_play($data_system.decision_se)
  183.        # アクションを設定
  184.        @active_battler.current_action.kind = 0
  185.        @active_battler.current_action.basic = 1
  186.        # 次のアクターのコマンド入力へ
  187.        phase3_next_actor
  188.      when 3  # アイテム
  189.        # 決定 SE を演奏
  190.        $game_system.se_play($data_system.decision_se)
  191.        # アクションを設定
  192.        @active_battler.current_action.kind = 2
  193.        # アイテムの選択を開始
  194.        start_item_select
  195.      when 4  #   装備
  196.        # 決定 SE を演奏
  197.        $game_system.se_play($data_system.decision_se)
  198.        # アクションを設定
  199.        #@active_battler.current_action.kind = 0
  200.        # アイテムの選択を開始
  201.        start_equip_select
  202.      end
  203.      return
  204.    end
  205. end
  206. #--------------------------------------------------------------------------
  207. # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 変更装備選択)
  208. #--------------------------------------------------------------------------
  209. def update_phase3_equip_select
  210.    # スキルウィンドウを可視状態にする
  211.    @right_window.visible = true

  212.    # ウィンドウを更新
  213.    @right_window.update
  214.    if @right_window.index != @now_right_window
  215.      @now_right_window =@right_window.index
  216.      if @equip_item_window.index == -1
  217.        @equip_item_window.index = 0
  218.        @equip_item_window.refresh
  219.        @equip_item_window.index = -1
  220.      end
  221.    end
  222.    # ウィンドウを更新
  223.    @equip_item_window.update
  224.    equip_item_window_select      
  225.    
  226.    # アイテムウィンドウがアクティブの場合
  227.    if @equip_item_window.active
  228.      update_phase3_equip_i_select
  229.      return
  230.    end
  231.    
  232.    # B ボタンが押された場合
  233.    if Input.trigger?(Input::B)
  234.      # キャンセル SE を演奏
  235.      $game_system.se_play($data_system.cancel_se)
  236.      # 装備選択を終了
  237.      end_equip_select
  238.      return
  239.    end
  240.    # C ボタンが押された場合
  241.    if Input.trigger?(Input::C)
  242.      # 装備固定の場合
  243.      if @active_battler.equip_fix?(@right_window.index)
  244.        # ブザー SE を演奏
  245.        $game_system.se_play($data_system.buzzer_se)
  246.        return
  247.      end
  248.      # 決定 SE を演奏
  249.      $game_system.se_play($data_system.decision_se)
  250.      # アイテムウィンドウをアクティブ化
  251.      @right_window.active = false
  252.      @equip_item_window.active = true
  253.      @equip_item_window.index = 0
  254.      @now_right_window = -1
  255.      return
  256.    end
  257. end
  258. #--------------------------------------------------------------------------
  259. # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 装備アイテム選択)
  260. #--------------------------------------------------------------------------
  261. def update_phase3_equip_i_select
  262.    # B ボタンが押された場合
  263.    if Input.trigger?(Input::B)
  264.      # キャンセル SE を演奏
  265.      $game_system.se_play($data_system.cancel_se)      
  266.      # 装備アイテム選択を終了
  267.      @now_item_window = -1
  268.      
  269.      @right_window.active = true
  270.      @equip_item_window.active = false
  271.      @equip_item_window.index = -1
  272.      return
  273.    end
  274.    # C ボタンが押された場合
  275.    if Input.trigger?(Input::C)
  276.      $game_system.se_play($data_system.equip_se)
  277.      # アイテムウィンドウで現在選択されているデータを取得
  278.      item = @equip_item_window.item
  279.      # 装備を変更
  280.      @active_battler.equip(@right_window.index, item == nil ? 0 : item.id)
  281.      # ライトウィンドウをアクティブ化
  282.      @right_window.active = true
  283.      @equip_item_window.active = false
  284.      @equip_item_window.index = -1
  285.      # ライトウィンドウ、アイテムウィンドウの内容を再作成
  286.      @right_window.refresh
  287.      @equip_item_window.refresh
  288.      return
  289.    end
  290. end
  291. #--------------------------------------------------------------------------
  292. # ★● 追加 装備選択開始
  293. #--------------------------------------------------------------------------
  294. def start_equip_select
  295.    # 装備ウィンドウを作成
  296.    #パラメータを呼び出したい時は注釈消す
  297.    #@left_window = Window_EquipLeft.new(@active_battler)
  298.    @right_window = Window_EquipRight.new(@active_battler)
  299.    @item_window1 = Window_EquipItem.new(@active_battler, 0)
  300.    @item_window2 = Window_EquipItem.new(@active_battler, 1)
  301.    @item_window3 = Window_EquipItem.new(@active_battler, 2)
  302.    @item_window4 = Window_EquipItem.new(@active_battler, 3)
  303.    @item_window5 = Window_EquipItem.new(@active_battler, 4)  
  304.    # ヘルプウィンドウを関連付け
  305.    @right_window.help_window = @help_window
  306.    @item_window1.help_window = @help_window
  307.    @item_window2.help_window = @help_window
  308.    @item_window3.help_window = @help_window
  309.    @item_window4.help_window = @help_window
  310.    @item_window5.help_window = @help_window
  311.    
  312.    @now_right_window = -1
  313.    @right_window.index = 0
  314.    equip_item_window_select
  315.    # アクターコマンドウィンドウを無効化
  316.    @actor_command_window.active = false
  317.    @actor_command_window.visible = false
  318. end
  319. #--------------------------------------------------------------------------
  320. # ★● 追加 装備選択終了
  321. #--------------------------------------------------------------------------
  322. def end_equip_select
  323.    # アイテムウィンドウを解放
  324.    #パラメータを呼び出したい時は注釈消す
  325.    #@left_window.dispose
  326.    @right_window.dispose
  327.    @item_window1.dispose
  328.    @item_window2.dispose
  329.    @item_window3.dispose
  330.    @item_window4.dispose
  331.    @item_window5.dispose
  332.    @right_window= nil
  333.    @item_window1= nil
  334.    @item_window2= nil
  335.    @item_window3= nil
  336.    @item_window4= nil
  337.    @item_window5= nil
  338.    # ヘルプウィンドウを隠す
  339.    @help_window.visible = false
  340.    # アクターコマンドウィンドウを有効化
  341.    @actor_command_window.active = true
  342.    @actor_command_window.visible = true
  343. end
  344. #--------------------------------------------------------------------------
  345. # ★● 追加 装備アイテムウインドウのチェック
  346. #--------------------------------------------------------------------------
  347. def equip_item_window_select  
  348.      # アイテムウィンドウの可視状態設定
  349.    @item_window1.visible = (@right_window.index == 0)
  350.    @item_window2.visible = (@right_window.index == 1)
  351.    @item_window3.visible = (@right_window.index == 2)
  352.    @item_window4.visible = (@right_window.index == 3)
  353.    @item_window5.visible = (@right_window.index == 4)
  354.    # ーーー★追加(注釈消すとアクセサリ1つ増加)
  355.    #@item_window5.visible = (@right_window.index == 4) || (@right_window.index == 5)
  356.    # ーーー終わり
  357.    # 現在のアイテムウィンドウを @item_window に設定
  358.    case @right_window.index
  359.    when 0
  360.      @equip_item_window = @item_window1
  361.    when 1
  362.      @equip_item_window = @item_window2
  363.    when 2
  364.      @equip_item_window = @item_window3
  365.    when 3
  366.      @equip_item_window = @item_window4
  367.    when 4
  368.      @equip_item_window = @item_window5
  369.    # ーーー★追加(注釈消すとアクセサリ1つ増加)
  370.    #when 5
  371.    #  @equip_item_window = @item_window5
  372.    end
  373. end
  374. end


  375. #==============================================================================
  376. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  377. #==============================================================================
复制代码

作者: 步兵中尉    时间: 2007-7-20 08:25
标题: 关于战斗中换装备的问题
    最近看到不少人问如何在战斗中换装备。以前站上有这样的脚本,可是后来被删除了。
    现在好不容易找到了,把它发布出来,希望站上恢复。

  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #============================================================================== #  「戦闘中に装備」スクリプト Ver1.00
  4. #
  5. #
  6. #戦闘中に装備が出来るようになります。以下のスクリプトをmainの上にでも挿入
  7. #して下さい。アクターコマンドの一番下に装備コマンドが出ると思います。
  8. #
  9. #なお、このスクリプトは通常時の装備画面を直接呼び出しておりますので、
  10. #画面のデザインは考慮しておりません。レイアウトの変更は各自でお願い致します。
  11. #つまり、装備画面の変更が大前提となります。一応、そのままでも動作は問題あり
  12. #ませんが・・・。
  13. #なお、呼び出している画面は「装備中のアイテム欄」と
  14. #「装備できるアイテム欄」です。
  15. #
  16. #
  17. #画面レイアウトの変更はRGSSの初歩の技術ですので、
  18. #それが出来ない方は、親切な方に教えて頂くか諦めて下さい(ぇ
  19. #勉強と思ってがんばりましょう(^^;)
  20. #※ヒント
  21. #●Window_EquipLeft
  22. #●Window_EquipRight
  23. #●Window_EquipItem
  24. #が変更場所です・・・・・。

  25. #==============================================================================
  26. # ■ Scene_Battle (分割定義 3)
  27. #------------------------------------------------------------------------------
  28. #  バトル画面の処理を行うクラスです。
  29. #==============================================================================
  30. class Scene_Battle
  31. #--------------------------------------------------------------------------
  32. # ● メイン処理
  33. #--------------------------------------------------------------------------
  34. def main
  35.    # 戦闘用の各種一時データを初期化
  36.    $game_temp.in_battle = true
  37.    $game_temp.battle_turn = 0
  38.    $game_temp.battle_event_flags.clear
  39.    $game_temp.battle_abort = false
  40.    $game_temp.battle_main_phase = false
  41.    $game_temp.battleback_name = $game_map.battleback_name
  42.    $game_temp.forcing_battler = nil
  43.    # バトルイベント用インタプリタを初期化
  44.    $game_system.battle_interpreter.setup(nil, 0)
  45.    # トループを準備
  46.    @troop_id = $game_temp.battle_troop_id
  47.    $game_troop.setup(@troop_id)
  48.    # アクターコマンドウィンドウを作成
  49.    s1 = $data_system.words.attack
  50.    s2 = $data_system.words.skill
  51.    s3 = $data_system.words.guard
  52.    s4 = $data_system.words.item
  53.    s5 = $data_system.words.equip #ーーー●●装備
  54.    @actor_command_window = Window_Command.new(128, [s1, s2, s3, s4, s5])
  55.    #@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
  56.    @actor_command_window.y = 128 #160

  57.    @actor_command_window.back_opacity = 160
  58.    @actor_command_window.active = false
  59.    @actor_command_window.visible = false
  60.    # その他のウィンドウを作成
  61.    @party_command_window = Window_PartyCommand.new
  62.    @help_window = Window_Help.new
  63.    @help_window.back_opacity = 160
  64.    @help_window.visible = false
  65.    @status_window = Window_BattleStatus.new
  66.    @message_window = Window_Message.new
  67.    # スプライトセットを作成
  68.    @spriteset = Spriteset_Battle.new
  69.    # ウェイトカウントを初期化
  70.    @wait_count = 0
  71.    # トランジション実行
  72.    if $data_system.battle_transition == ""
  73.      Graphics.transition(20)
  74.    else
  75.      Graphics.transition(40, "Graphics/Transitions/" +
  76.        $data_system.battle_transition)
  77.    end
  78.    # プレバトルフェーズ開始
  79.    start_phase1
  80.    # メインループ
  81.    loop do
  82.      # ゲーム画面を更新
  83.      Graphics.update
  84.      # 入力情報を更新
  85.      Input.update
  86.      # フレーム更新
  87.      update
  88.      # 画面が切り替わったらループを中断
  89.      if $scene != self
  90.        break
  91.      end
  92.    end
  93.    # マップをリフレッシュ
  94.    $game_map.refresh
  95.    # トランジション準備
  96.    Graphics.freeze
  97.    # ウィンドウを解放
  98.    @actor_command_window.dispose
  99.    @party_command_window.dispose
  100.    @help_window.dispose
  101.    @status_window.dispose
  102.    @message_window.dispose
  103.    if @skill_window != nil
  104.      @skill_window.dispose
  105.    end
  106.    if @item_window != nil
  107.      @item_window.dispose
  108.    end
  109.    if @result_window != nil
  110.      @result_window.dispose
  111.    end
  112.    # スプライトセットを解放
  113.    @spriteset.dispose
  114.    # タイトル画面に切り替え中の場合
  115.    if $scene.is_a?(Scene_Title)
  116.      # 画面をフェードアウト
  117.      Graphics.transition
  118.      Graphics.freeze
  119.    end
  120.    # 戦闘テストからゲームオーバー画面以外に切り替え中の場合
  121.    if $BTEST and not $scene.is_a?(Scene_Gameover)
  122.      $scene = nil
  123.    end
  124. end



  125. #--------------------------------------------------------------------------
  126. # ● フレーム更新 (アクターコマンドフェーズ)
  127. #--------------------------------------------------------------------------
  128. def update_phase3
  129.    # エネミーアローが有効の場合
  130.    if @enemy_arrow != nil
  131.      update_phase3_enemy_select
  132.    # アクターアローが有効の場合
  133.    elsif @actor_arrow != nil
  134.      update_phase3_actor_select
  135.    # スキルウィンドウが有効の場合
  136.    elsif @skill_window != nil
  137.      update_phase3_skill_select
  138.    # アイテムウィンドウが有効の場合
  139.    elsif @item_window != nil
  140.      update_phase3_item_select
  141.    # ★追加 装備変更ウィンドウが有効の場合
  142.    elsif @right_window != nil
  143.         update_phase3_equip_select
  144.    # アクターコマンドウィンドウが有効の場合
  145.    elsif @actor_command_window.active
  146.      update_phase3_basic_command
  147.    end
  148. end
  149. #--------------------------------------------------------------------------
  150. # ● フレーム更新 (アクターコマンドフェーズ : 基本コマンド)
  151. #--------------------------------------------------------------------------
  152. def update_phase3_basic_command
  153.    # B ボタンが押された場合
  154.    if Input.trigger?(Input::B)
  155.      # キャンセル SE を演奏
  156.      $game_system.se_play($data_system.cancel_se)
  157.      # 前のアクターのコマンド入力へ
  158.      phase3_prior_actor
  159.      return
  160.    end
  161.    # C ボタンが押された場合
  162.    if Input.trigger?(Input::C)
  163.      # アクターコマンドウィンドウのカーソル位置で分岐
  164.      case @actor_command_window.index
  165.      when 0  # 攻撃
  166.        # 決定 SE を演奏
  167.        $game_system.se_play($data_system.decision_se)
  168.        # アクションを設定
  169.        @active_battler.current_action.kind = 0
  170.        @active_battler.current_action.basic = 0
  171.        # エネミーの選択を開始
  172.        start_enemy_select
  173.      when 1  # スキル
  174.        # 決定 SE を演奏
  175.        $game_system.se_play($data_system.decision_se)
  176.        # アクションを設定
  177.        @active_battler.current_action.kind = 1
  178.        # スキルの選択を開始
  179.        start_skill_select
  180.      when 2  # 防御
  181.        # 決定 SE を演奏
  182.        $game_system.se_play($data_system.decision_se)
  183.        # アクションを設定
  184.        @active_battler.current_action.kind = 0
  185.        @active_battler.current_action.basic = 1
  186.        # 次のアクターのコマンド入力へ
  187.        phase3_next_actor
  188.      when 3  # アイテム
  189.        # 決定 SE を演奏
  190.        $game_system.se_play($data_system.decision_se)
  191.        # アクションを設定
  192.        @active_battler.current_action.kind = 2
  193.        # アイテムの選択を開始
  194.        start_item_select
  195.      when 4  #   装備
  196.        # 決定 SE を演奏
  197.        $game_system.se_play($data_system.decision_se)
  198.        # アクションを設定
  199.        #@active_battler.current_action.kind = 0
  200.        # アイテムの選択を開始
  201.        start_equip_select
  202.      end
  203.      return
  204.    end
  205. end
  206. #--------------------------------------------------------------------------
  207. # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 変更装備選択)
  208. #--------------------------------------------------------------------------
  209. def update_phase3_equip_select
  210.    # スキルウィンドウを可視状態にする
  211.    @right_window.visible = true

  212.    # ウィンドウを更新
  213.    @right_window.update
  214.    if @right_window.index != @now_right_window
  215.      @now_right_window =@right_window.index
  216.      if @equip_item_window.index == -1
  217.        @equip_item_window.index = 0
  218.        @equip_item_window.refresh
  219.        @equip_item_window.index = -1
  220.      end
  221.    end
  222.    # ウィンドウを更新
  223.    @equip_item_window.update
  224.    equip_item_window_select      
  225.    
  226.    # アイテムウィンドウがアクティブの場合
  227.    if @equip_item_window.active
  228.      update_phase3_equip_i_select
  229.      return
  230.    end
  231.    
  232.    # B ボタンが押された場合
  233.    if Input.trigger?(Input::B)
  234.      # キャンセル SE を演奏
  235.      $game_system.se_play($data_system.cancel_se)
  236.      # 装備選択を終了
  237.      end_equip_select
  238.      return
  239.    end
  240.    # C ボタンが押された場合
  241.    if Input.trigger?(Input::C)
  242.      # 装備固定の場合
  243.      if @active_battler.equip_fix?(@right_window.index)
  244.        # ブザー SE を演奏
  245.        $game_system.se_play($data_system.buzzer_se)
  246.        return
  247.      end
  248.      # 決定 SE を演奏
  249.      $game_system.se_play($data_system.decision_se)
  250.      # アイテムウィンドウをアクティブ化
  251.      @right_window.active = false
  252.      @equip_item_window.active = true
  253.      @equip_item_window.index = 0
  254.      @now_right_window = -1
  255.      return
  256.    end
  257. end
  258. #--------------------------------------------------------------------------
  259. # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 装備アイテム選択)
  260. #--------------------------------------------------------------------------
  261. def update_phase3_equip_i_select
  262.    # B ボタンが押された場合
  263.    if Input.trigger?(Input::B)
  264.      # キャンセル SE を演奏
  265.      $game_system.se_play($data_system.cancel_se)      
  266.      # 装備アイテム選択を終了
  267.      @now_item_window = -1
  268.      
  269.      @right_window.active = true
  270.      @equip_item_window.active = false
  271.      @equip_item_window.index = -1
  272.      return
  273.    end
  274.    # C ボタンが押された場合
  275.    if Input.trigger?(Input::C)
  276.      $game_system.se_play($data_system.equip_se)
  277.      # アイテムウィンドウで現在選択されているデータを取得
  278.      item = @equip_item_window.item
  279.      # 装備を変更
  280.      @active_battler.equip(@right_window.index, item == nil ? 0 : item.id)
  281.      # ライトウィンドウをアクティブ化
  282.      @right_window.active = true
  283.      @equip_item_window.active = false
  284.      @equip_item_window.index = -1
  285.      # ライトウィンドウ、アイテムウィンドウの内容を再作成
  286.      @right_window.refresh
  287.      @equip_item_window.refresh
  288.      return
  289.    end
  290. end
  291. #--------------------------------------------------------------------------
  292. # ★● 追加 装備選択開始
  293. #--------------------------------------------------------------------------
  294. def start_equip_select
  295.    # 装備ウィンドウを作成
  296.    #パラメータを呼び出したい時は注釈消す
  297.    #@left_window = Window_EquipLeft.new(@active_battler)
  298.    @right_window = Window_EquipRight.new(@active_battler)
  299.    @item_window1 = Window_EquipItem.new(@active_battler, 0)
  300.    @item_window2 = Window_EquipItem.new(@active_battler, 1)
  301.    @item_window3 = Window_EquipItem.new(@active_battler, 2)
  302.    @item_window4 = Window_EquipItem.new(@active_battler, 3)
  303.    @item_window5 = Window_EquipItem.new(@active_battler, 4)  
  304.    # ヘルプウィンドウを関連付け
  305.    @right_window.help_window = @help_window
  306.    @item_window1.help_window = @help_window
  307.    @item_window2.help_window = @help_window
  308.    @item_window3.help_window = @help_window
  309.    @item_window4.help_window = @help_window
  310.    @item_window5.help_window = @help_window
  311.    
  312.    @now_right_window = -1
  313.    @right_window.index = 0
  314.    equip_item_window_select
  315.    # アクターコマンドウィンドウを無効化
  316.    @actor_command_window.active = false
  317.    @actor_command_window.visible = false
  318. end
  319. #--------------------------------------------------------------------------
  320. # ★● 追加 装備選択終了
  321. #--------------------------------------------------------------------------
  322. def end_equip_select
  323.    # アイテムウィンドウを解放
  324.    #パラメータを呼び出したい時は注釈消す
  325.    #@left_window.dispose
  326.    @right_window.dispose
  327.    @item_window1.dispose
  328.    @item_window2.dispose
  329.    @item_window3.dispose
  330.    @item_window4.dispose
  331.    @item_window5.dispose
  332.    @right_window= nil
  333.    @item_window1= nil
  334.    @item_window2= nil
  335.    @item_window3= nil
  336.    @item_window4= nil
  337.    @item_window5= nil
  338.    # ヘルプウィンドウを隠す
  339.    @help_window.visible = false
  340.    # アクターコマンドウィンドウを有効化
  341.    @actor_command_window.active = true
  342.    @actor_command_window.visible = true
  343. end
  344. #--------------------------------------------------------------------------
  345. # ★● 追加 装備アイテムウインドウのチェック
  346. #--------------------------------------------------------------------------
  347. def equip_item_window_select  
  348.      # アイテムウィンドウの可視状態設定
  349.    @item_window1.visible = (@right_window.index == 0)
  350.    @item_window2.visible = (@right_window.index == 1)
  351.    @item_window3.visible = (@right_window.index == 2)
  352.    @item_window4.visible = (@right_window.index == 3)
  353.    @item_window5.visible = (@right_window.index == 4)
  354.    # ーーー★追加(注釈消すとアクセサリ1つ増加)
  355.    #@item_window5.visible = (@right_window.index == 4) || (@right_window.index == 5)
  356.    # ーーー終わり
  357.    # 現在のアイテムウィンドウを @item_window に設定
  358.    case @right_window.index
  359.    when 0
  360.      @equip_item_window = @item_window1
  361.    when 1
  362.      @equip_item_window = @item_window2
  363.    when 2
  364.      @equip_item_window = @item_window3
  365.    when 3
  366.      @equip_item_window = @item_window4
  367.    when 4
  368.      @equip_item_window = @item_window5
  369.    # ーーー★追加(注釈消すとアクセサリ1つ増加)
  370.    #when 5
  371.    #  @equip_item_window = @item_window5
  372.    end
  373. end
  374. end


  375. #==============================================================================
  376. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  377. #==============================================================================
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1