Project1

标题: 解决战斗结束ME与结果窗口出现不一致的缺陷 [打印本页]

作者: myownroc    时间: 2014-2-6 11:20
标题: 解决战斗结束ME与结果窗口出现不一致的缺陷
本帖最后由 myownroc 于 2014-6-24 22:53 编辑

RMXP默认系统在战斗结束时会出现 战斗结束ME 与 结果窗口(Window_BattleResult) 不同时出现的缺陷.
而RMVX和RMVA没有此缺陷...
修改办法很简单,将以下脚本插入到main之前即可
RUBY 代码复制
  1. class Scene_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 画面更新 (结束战斗回合)
  4.   #--------------------------------------------------------------------------
  5.   def update_phase5
  6.     # 显示结果窗口
  7.     @result_window.visible = true
  8.     # 等待计数大于 0 的情况下
  9.     if @phase5_wait_count > 0
  10.       # 减少等待计数
  11.       @phase5_wait_count -= 1
  12.       # 等待计数为 0 的情况下
  13.       if @phase5_wait_count == 0
  14.         # 清除主回合标志
  15.         $game_temp.battle_main_phase = false
  16.         # 刷新状态窗口
  17.         @status_window.refresh
  18.       end
  19.       return
  20.     end
  21.     # 按下 C 键的情况下
  22.     if Input.trigger?(Input::C)
  23.       # 战斗结束
  24.       battle_end(0)
  25.     end
  26.   end
  27. end

作者: 天地有正气    时间: 2014-2-6 13:49
终于可以拜托某种不爽的感觉了= =
话说这脚本既然简单,那为什么不使用alias来降低冲突率呢?
作者: szzyc0    时间: 2014-2-6 14:38
真的吗?真心没注意到。
作者: yang1zhi    时间: 2015-12-5 21:30
这样修改后就更优化了
  1. class Scene_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 画面更新 (结束战斗回合)
  4.   #--------------------------------------------------------------------------
  5.   def update_phase5
  6.     # 显示结果窗口
  7.     @result_window.visible = true
  8.     # 等待计数大于 0 的情况下
  9.     if @phase5_wait_count > 0
  10.       # 减少等待计数
  11.       @phase5_wait_count -= 1
  12.       # 等待计数为 0 的情况下
  13.       if @phase5_wait_count == 0
  14.         # 清除主回合标志
  15.         $game_temp.battle_main_phase = false
  16.         # 刷新状态窗口
  17.         @status_window.refresh
  18.       end
  19.           # 按下 C 键的情况下
  20.     if Input.trigger?(Input::C)
  21.       # 战斗结束
  22.       battle_end(0)
  23.       Audio.me_stop
  24.     end

  25.       return
  26.     end
  27.   end
  28. end
复制代码

作者: jenganchan    时间: 2016-1-9 17:13
yang1zhi 发表于 2015-12-5 21:30
这样修改后就更优化了

有bug!如果战斗结束后,先别按C建  等结束音乐播放完毕或停顿一会儿  ,再按C键 会卡住!
作者: yang1zhi    时间: 2016-1-9 18:41
jenganchan 发表于 2016-1-9 17:13
有bug!如果战斗结束后,先别按C建  等结束音乐播放完毕或停顿一会儿  ,再按C键 会卡住! ...

RUBY 代码复制
  1. class Scene_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 画面更新 (结束战斗回合)
  4.   #--------------------------------------------------------------------------
  5.   def update_phase5
  6.     # 显示结果窗口
  7.     @result_window.visible = true
  8.     # 等待计数大于 0 的情况下
  9.     if @phase5_wait_count > 0
  10.       # 减少等待计数
  11.       @phase5_wait_count -= 1
  12.       # 等待计数为 0 的情况下
  13.       if @phase5_wait_count == 0
  14.         # 清除主回合标志
  15.         $game_temp.battle_main_phase = false
  16.         # 刷新状态窗口
  17.         @status_window.refresh
  18.       end
  19.                     # 按下 C 键的情况下
  20.     if Input.trigger?(Input::C)
  21.       # 战斗结束
  22.       battle_end(0)
  23.       Audio.me_stop
  24.     end
  25.  
  26.       return
  27.     end
  28.               # 按下 C 键的情况下
  29.     if Input.trigger?(Input::C)
  30.       # 战斗结束
  31.       battle_end(0)
  32.       Audio.me_stop
  33.     end
  34.  
  35.   end
  36. end

作者: jenganchan    时间: 2016-1-9 18:50
yang1zhi 发表于 2016-1-9 18:41
class Scene_Battle
  #--------------------------------------------------------------------------
  ...

谢谢!问题解决了!很好用!




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