赞 | 3 |
VIP | 32 |
好人卡 | 0 |
积分 | 1 |
经验 | 14756 |
最后登录 | 2021-5-30 |
在线时间 | 579 小时 |
Lv1.梦旅人 小小的百鬼夜行<
- 梦石
- 0
- 星屑
- 54
- 在线时间
- 579 小时
- 注册时间
- 2010-7-29
- 帖子
- 2682
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 退屈£无聊 于 2010-11-14 17:01 编辑
自己制作的一个轩辕剑四的菜单。
现在有很多问题:
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
复制代码 |
|