| 
 
| 赞 | 3 |  
| VIP | 32 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 14756 |  
| 最后登录 | 2021-5-30 |  
| 在线时间 | 579 小时 |  
 Lv1.梦旅人 小小的百鬼夜行< 
	梦石0 星屑54 在线时间579 小时注册时间2010-7-29帖子2682 
 | 
| 
本帖最后由 退屈£无聊 于 2010-11-14 17:01 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 自己制作的一个轩辕剑四的菜单。
 现在有很多问题:
 1、物品菜单进到选人使用时无用。。。。
 2、装备菜单会有DISPOSE错误 (喵的。不dispose又不行)
 3、状态菜单。。也是有DISPOSE错误。。。
 注:参照天之痕菜单的话,求具体步骤。
 以下是冗长的脚本。范例已贴上。
  轩辕剑肆1.rar
(1.74 MB, 下载次数: 61) 复制代码#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  处理菜单画面的类。
#==============================================================================
class Scene_Menu
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     menu_index : 命令光标的初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @choose1 = 0
    @choose1 = menu_index
    @equip1 = false
    @statu1 = false
  end
  #--------------------------------------------------------------------------
  # ● 主处理
  #--------------------------------------------------------------------------
  def main
    # ============ 菜单主体部分 ============== #
    @oldindex = 0
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new("Graphics/menu/0")
    @choose = true
    @item = Sprite.new
    @item.bitmap = Bitmap.new("Graphics/menu/Item")
    @equip = Sprite.new
    @equip.bitmap = Bitmap.new("Graphics/menu/Equip")
    @equip.y = 180
    @skill = Sprite.new
    @skill.bitmap = Bitmap.new("Graphics/menu/Skill")
    @task = Sprite.new
    @task.bitmap = Bitmap.new("Graphics/menu/Task")
    @people = Sprite.new
    @people.bitmap = Bitmap.new("Graphics/menu/People")
    @sys = Sprite.new
    @sys.bitmap = Bitmap.new("Graphics/menu/System")
    @system = Window_Command.new(200, ["记录", "读取", "离开"])
    @system.visible = false
    @system.active = false
    @system.y = 300
    @system.x = 100
    @item.y = 140
    @skill.y = 220
    @task.y = 260
    @people.y = 300
    @sys.y = 340
    @item.x = 40
    @equip.x= 5
    @skill.x= 5
    @task.x= 5
    @people.x= 5
    @sys.x= 5
    # 生成金钱窗口
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 0
    # 生成状态窗口
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    @status_window.opacity = 0
    # ============ 物品
    # 生成帮助窗口、物品窗口
    @help_window = Window_Help.new
    @help_window.visible = false
    @item_window = Window_Item.new
    @item_window.visible = false
    @item_window.active = false
    # 关联帮助窗口
    @item_window.help_window = @help_window
    # 生成目标窗口 (设置为不可见・不活动)
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    # 执行过渡
    Graphics.transition
    # 主循环
    loop do
      # 刷新游戏画面
      Graphics.update
      # 刷新输入信息
      Input.update
      # 刷新画面
      update
      # 如果切换画面就中断循环
      if $scene != self
        break
      end
    end
    # 准备过渡
    Graphics.freeze
    # 释放窗口
    @item.dispose
    @equip.dispose
    @skill.dispose
    @task.dispose
    @people.dispose
    @sys.dispose
    @sprite.dispose
    @gold_window.dispose
    @status_window.dispose
    @help_window.dispose
    @system.dispose
    # 其它窗口
    @item_window.dispose
    @target_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    # 刷新窗口
    @item.update
    @equip.update
    @skill.update
    @task.update
    @people.update
    @sys.update
    @gold_window.update
    @item_window.update
    @target_window.update
    @help_window.update
    @system.update
    @sprite.update
    @status_window.update
    # 命令窗口被激活的情况下: 调用 update_command
    if @choose == true
      update_command
      return
    end
    # 状态窗口被激活的情况下: 调用 update_status
    if @status_window.active
      update_status
      return
    end
    if @item_window.active 
      update_items
      return
    end
    if @skill_window != nil
      update_skill
      return
    end
    if @equip1 == true
      #update_equip
      #return
      # 刷新窗口
    @left_window.update
    @right_window.update
    @item_window.update
    # 设置物品窗口的可视状态
    @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)
    # 获取当前装备中的物品
    item1 = @right_window.item
    # 设置当前的物品窗口到 @item_window
    case @right_window.index
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    # 右窗口被激活的情况下
    if @right_window.active
      # 删除变更装备后的能力
      @left_window.set_new_parameters(nil, nil, nil)
    end
    # 物品窗口被激活的情况下
    if @item_window.active
      # 获取现在选中的物品
      item2 = @item_window.item
      # 变更装备
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # 获取变更装备后的能力值
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      # 返回到装备
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # 描画左窗口
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef)
    end
    if @right_window.active
      update_right
      return
    end
    # 物品窗口被激活的情况下: 调用 update_item
    if @item_window.active
      update_left
      return
    end
    end
    if @statu1 == true
      update_stat
      return
    end
    if @system.active
      update_sys
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (命令窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_command
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换的地图画面
      $scene = Scene_Map.new
      return
    end
    if Input.trigger?(Input::UP)
      if @choose1 == 0
      else
        @choose1 -= 1
      end
    end
    if Input.trigger?(Input::DOWN)
      if @choose1 == 5
      else
        @choose1 += 1
      end
    end
    if @oldindex != @choose1
      stah
      @oldindex = @choose1
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 同伴人数为 0、存档、游戏结束以外的场合
      if $game_party.actors.size == 0 #and @command_window.index < 4
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 命令窗口的光标位置分支
      case @choose1
      when 0  # 物品
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到物品画面
        @item_window.visible = true
        @item_window.active = true
        @help_window.visible = true
        @status_window.visible = false
        @choose = false
      when 2  # 特技
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @choose = false
        @status_window.active = true
        @status_window.index = 0
      when 1  # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @choose = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 激活状态窗口
        @choose = false
        @status_window.active = true
        @status_window.index = 0
      when 5  # 存档
        # 禁止存档的情况下
        #if $game_system.save_disabled
          # 演奏冻结 SE
        #  $game_system.se_play($data_system.buzzer_se)
        #  return
        #end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        @system.visible = true
        @system.active = true
        @choose = false
        @system.index = 0
        # 切换到存档画面
        #$scene = Scene_Save.new
      end
      return
    end
  end
  #======================= 刷新而已啦 ====================== #
  def stah
    @sprite.bitmap = Bitmap.new("Graphics/menu/" + @choose1.to_s)
    case @choose1
    when 0
      if @oldindex == 1
      loop do
      @item.x += 5
      @equip.x -= 5
      Graphics.update
      if @item.x >= 40
        break
      end
    end
    end
    when 1
      if @oldindex == 0
      loop do
      @equip.x += 5
      @item.x -= 5
      Graphics.update
      if @equip.x >= 40
        break
        end
      end
    end
     if @oldindex == 2
      loop do
      @equip.x += 5
      @skill.x -= 5
      Graphics.update
      if @equip.x >= 40
        break
        end
      end
    end
    when 2
      if @oldindex == 1
      loop do
      @skill.x += 5
      @equip.x -= 5
      Graphics.update
      if @skill.x >= 40
        break
      end
    end
  end
  if @oldindex == 3
      loop do
      @skill.x += 5
      @task.x -= 5
      Graphics.update
      if @skill.x >= 40
        break
      end
    end
    end
    when 3
      if @oldindex == 2
      loop do
      @task.x += 5
      @skill.x -= 5
      Graphics.update
      if @task.x >= 40
        break
      end
    end
  end
  if @oldindex == 4
      loop do
      @task.x += 5
      @people.x -= 5
      Graphics.update
      if @task.x >= 40
        break
      end
    end
  end
    when 4
      if @oldindex == 3
      loop do
      @people.x += 5
      @task.x -= 5
      Graphics.update
      if @people.x >= 40
        break
      end
    end
  end
  if @oldindex == 5
      loop do
      @people.x += 5
      @sys.x -= 5
      Graphics.update
      if @people.x >= 40
        break
      end
    end
    end
    when 5
      if @oldindex == 4
      loop do
      @sys.x += 5
      @people.x -= 5
      Graphics.update
      if @sys.x >= 40
        break
      end
    end
  end
end
end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (状态窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_status
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 激活命令窗口
      @choose = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 命令窗口的光标位置分支
      case @choose1
      when 2  # 特技
        # 本角色的行动限制在 2 以上的情况下
        if $game_party.actors[@status_window.index].restriction >= 2
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到特技画面
        # ============= 技能
        # 获取角色
        @actor = $game_party.actors[@status_window.index]
        # 生成帮助窗口、状态窗口、特技窗口
        @statu_window = Window_SkillStatus.new(@actor)
        @skill_window = Window_Skill.new(@actor)
        # 关联帮助窗口
        @skill_window.help_window = @help_window
        @skill_window.visible = true
        @statu_window.visible = true
        @status_window.visible = false
        @status_window.active = false
        #@skill_window.dispose
        #@statu_window.dispose
      when 1  # 装备
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换的装备画面
        # 获取角色
    @actor = $game_party.actors[@status_window.index]
    # 生成窗口
    @left_window = Window_EquipLeft.new(@actor)
    @right_window = Window_EquipRight.new(@actor)
    @item_window1 = Window_EquipItem.new(@actor, 0)
    @item_window2 = Window_EquipItem.new(@actor, 1)
    @item_window3 = Window_EquipItem.new(@actor, 2)
    @item_window4 = Window_EquipItem.new(@actor, 3)
    @item_window5 = Window_EquipItem.new(@actor, 4)
    # 关联帮助窗口
    @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
    @right_window.active = true
    @equip1 = true
    @status_window.active = false
    @status_window.visible = false
    # 设置光标位置
    @right_window.index = 0
      when 4  # 状态
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 切换到状态画面
        @stat_window = Window_Status.new($game_party.actors[@status_window.index]) 
        @status_window.visible = false
        @status_window.active = false
        @statu1 = true
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # stat
  #--------------------------------------------------------------------------
  def update_stat
    @stat_window.update
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      @stat_window.visible = false
      #@choose = true
      @statu1 = false
      @status_window.dispose
    end
  end
  #--------------------------------------------------------------------------
  # 物品部分
  #--------------------------------------------------------------------------
  def update_items
    # 物品窗口被激活的情况下: 调用 update_item
    if @item_window.active
      update_item1
      return
    end
    # 目标窗口被激活的情况下: 调用 update_target
    if @target_window.active
      update_item2
      return
    end
  end
  def update_item1
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      @item_window.active = false
      @target_window.active = false
      @item_window.visible = false
      @target_window.visible = false
      @help_window.visible = false
      @status_window.visible = true
      @choose = true
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 获取物品窗口当前选中的物品数据
      @itemm = @item_window.item
      # 不使用物品的情况下
      unless @itemm.is_a?(RPG::Item)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 不能使用的情况下
      unless $game_party.item_can_use?(@itemm.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 效果范围是我方的情况下
      if @itemm.scope >= 3
        # 激活目标窗口
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # 设置效果范围 (单体/全体) 的对应光标位置
        if @itemm.scope == 4 || @itemm.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      # 效果在我方以外的情况下
      else
        # 公共事件 ID 有效的情况下
        if @itemm.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @itemm.common_event_id
          # 演奏物品使用时的 SE
          $game_system.se_play(@itemm.menu_se)
          # 消耗品的情况下
          if @itemm.consumable
            # 使用的物品数减 1
            $game_party.lose_item(@itemm.id, 1)
            # 再描绘物品窗口的项目
            @item_window.draw_item(@item_window.index)
          end
          # 切换到地图画面
          $scene = Scene_Menu.new
          return
        end
      end
      return
    end
  def update_item2
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 由于物品用完而不能使用的场合
      unless $game_party.item_can_use?(@itemm.id)
        # 再次生成物品窗口的内容
        @item_window.refresh
      end
      # 删除目标窗口
      @item_window.active = true
      @target_window.visible = false
      @target_window.active = false
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 如果物品用完的情况下
      if $game_party.item_number(@itemm.id) == 0
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 目标是全体的情况下
      if @target_window.index == -1
        # 对同伴全体应用物品使用效果
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@itemm)
        end
      end
      # 目标是单体的情况下
      if @target_window.index >= 0
        # 对目标角色应用物品的使用效果
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@itemm)
      end
      # 使用物品的情况下
      if used
        # 演奏物品使用时的 SE
        $game_system.se_play(@itemm.menu_se)
        # 消耗品的情况下
        if @itemm.consumable
          # 使用的物品数减 1
          $game_party.lose_item(@itemm.id, 1)
          # 再描绘物品窗口的项目
          @item_window.draw_item(@item_window.index)
        end
        # 再生成目标窗口的内容
        @target_window.refresh
        # 全灭的情况下
        if $game_party.all_dead?
          # 切换到游戏结束画面
          $scene = Scene_Gameover.new
          return
        end
        # 公共事件 ID 有效的情况下
        if @itemm.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @itemm.common_event_id
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      # 无法使用物品的情况下
      unless used
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
end
# 技能部分
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update_skill
    # 刷新窗口
    @help_window.update
    @statu_window.update
    @skill_window.update
    @target_window.update
    # 特技窗口被激活的情况下: 调用 update_skill
    if @skill_window.active
      update_skill1
      return
    end
    # 目标窗口被激活的情况下: 调用 update_target
    if @target_window.active
      update_skill2
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (特技窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_skill1
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      #@choose = false
      @statu_window.visible = false
      @skill_window.visible = false
      @target_window.visible = false
      @skill_window.active = false
      @help_window.visible = false
      @status_window.visible = true
      @status_window.active = true
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 获取特技窗口现在选择的特技的数据
      @skilll = @skill_window.skill
      # 不能使用的情况下
      if @skilll == nil or not @actor.skill_can_use?(@skilll.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 演奏确定 SE
      $game_system.se_play($data_system.decision_se)
      # 效果范围是我方的情况下
      if @skilll.scope >= 3
        # 激活目标窗口
        @skill_window.active = false
        @target_window.x = (@skill_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # 设置效果范围 (单体/全体) 的对应光标位置
        if @skilll.scope == 4 || @skilll.scope == 6
          @target_window.index = -1
        elsif @skilll.scope == 7
          @target_window.index = @actor_index - 10
        else
          @target_window.index = 0
        end
      # 效果在我方以外的情况下
      else
        # 公共事件 ID 有效的情况下
        if @skilll.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @skilll.common_event_id
          # 演奏特技使用时的 SE
          $game_system.se_play(@skilll.menu_se)
          # 消耗 SP
          @actor.sp -= @skilll.sp_cost
          # 再生成各窗口的内容
          @status_window.refresh
          @skill_window.refresh
          @target_window.refresh
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
    # 按下 R 键的情况下
    if Input.trigger?(Input::R)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至下一位角色
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # 切换到别的特技画面
      $scene = Scene_Skill.new(@actor_index)
      return
    end
    # 按下 L 键的情况下
    if Input.trigger?(Input::L)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至上一位角色
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # 切换到别的特技画面
      $scene = Scene_Skill.new(@actor_index)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (目标窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_skill2
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 删除目标窗口
      @skill_window.active = true
      @target_window.visible = false
      @target_window.active = false
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 因为 SP 不足而无法使用的情况下
      unless @actor.skill_can_use?(@skilll.id)
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 目标是全体的情况下
      if @target_window.index == -1
        # 对同伴全体应用特技使用效果
        used = false
        for i in $game_party.actors
          used |= i.skill_effect(@actor, @skilll)
        end
      end
      # 目标是使用者的情况下
      if @target_window.index <= -2
        # 对目标角色应用特技的使用效果
        target = $game_party.actors[@target_window.index + 10]
        used = target.skill_effect(@actor, @skilll)
      end
      # 目标是单体的情况下
      if @target_window.index >= 0
        # 对目标角色应用特技的使用效果
        target = $game_party.actors[@target_window.index]
        used = target.skill_effect(@actor, @skilll)
      end
      # 使用特技的情况下
      if used
        # 演奏特技使用时的 SE
        $game_system.se_play(@skilll.menu_se)
        # 消耗 SP
        @actor.sp -= @skilll.sp_cost
        # 再生成各窗口内容
        @status_window.refresh
        @skill_window.refresh
        @target_window.refresh
        # 全灭的情况下
        if $game_party.all_dead?
          # 切换到游戏结束画面
          $scene = Scene_Gameover.new
          return
        end
        # 公共事件 ID 有效的情况下
        if @skilll.common_event_id > 0
          # 预约调用公共事件
          $game_temp.common_event_id = @skilll.common_event_id
          # 切换到地图画面
          $scene = Scene_Map.new
          return
        end
      end
      # 无法使用特技的情况下
      unless used
        # 演奏冻结 SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
  #================= 装备部分
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
 # def update_equip
    
 # end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (右侧窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_right
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 切换到菜单画面
      @equip1 = false
      @status_window.visible = true
      @status_window.active = true
      @help_window.visible = false
      @right_window.visible = false
      @left_window.visible = false
      @right_window.dispose
      @left_window.dispose
      @item_window1.dispose
      @item_window2.dispose
      @item_window3.dispose
      @item_window4.dispose
      @item_window5.dispose
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 固定装备的情况下
      if @actor.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
      @item_window.active = true
      @item_window.index = 0
      return
    end
    # 按下 R 键的情况下
    if Input.trigger?(Input::R)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至下一位角色
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # 切换到别的装备画面
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
    # 按下 L 键的情况下
    if Input.trigger?(Input::L)
      # 演奏光标 SE
      $game_system.se_play($data_system.cursor_se)
      # 移至上一位角色
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # 切换到别的装备画面
      $scene = Scene_Equip.new(@actor_index, @right_window.index)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面 (物品窗口被激活的情况下)
  #--------------------------------------------------------------------------
  def update_left
    # 按下 B 键的情况下
    if Input.trigger?(Input::B)
      # 演奏取消 SE
      $game_system.se_play($data_system.cancel_se)
      # 激活右侧窗口
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 演奏装备 SE
      $game_system.se_play($data_system.equip_se)
      # 获取物品窗口现在选择的装备数据
      item = @item_window.item
      # 变更装备
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)
      # 激活右侧窗口
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      # 再生成右侧窗口、物品窗口的内容
      @right_window.refresh
      @item_window.refresh
      return
    end
  end
#==========================================================================
# SYS
#==========================================================================
def update_sys
  # 按下 B 键的情况下
  if Input.trigger?(Input::B)
  # 演奏取消 SE
    $game_system.se_play($data_system.cancel_se)
    @system.active = false
    @system.visible = false
    @choose = true
  end
  if Input.trigger?(Input::C)
    case @system.index
    when 0
      # 禁止存档的情况下
        if $game_system.save_disabled
          # 演奏冻结 SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
    when 1
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Load.new(1)
    when 2
       $scene = Scene_End.new
     end
   end
 end
end
 | 
 |