查看: 3915|回复: 6

[原创发布] 解决战斗结束ME与结果窗口出现不一致的缺陷

[复制链接]
梦石
0
星屑
2826
在线时间
2634 小时
注册时间
2013-1-16
回帖
5453

贵宾

发表于 2014-2-6 11:20:05 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 myownroc 于 2014-6-24 22:53 编辑

RMXP默认系统在战斗结束时会出现 战斗结束ME 与 结果窗口(Window_BattleResult) 不同时出现的缺陷.
而RMVX和RMVA没有此缺陷...
修改办法很简单,将以下脚本插入到main之前即可[pre lang="ruby" line="1"]class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 画面更新 (结束战斗回合)
  #--------------------------------------------------------------------------
  def update_phase5
    # 显示结果窗口
    @result_window.visible = true
    # 等待计数大于 0 的情况下
    if @phase5_wait_count > 0
      # 减少等待计数
      @phase5_wait_count -= 1
      # 等待计数为 0 的情况下
      if @phase5_wait_count == 0
        # 清除主回合标志
        $game_temp.battle_main_phase = false
        # 刷新状态窗口
        @status_window.refresh
      end
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 战斗结束
      battle_end(0)
    end
  end
end[/pre]

点评

http://rm.66rpg.com/thread-375131-1-1.html,能帮我解答下这个问题吗?  发表于 2015-1-3 23:53
(Created by @喵kano)


施工现场:hotege.github.io

○赛

梦石
0
星屑
1254
在线时间
1276 小时
注册时间
2013-1-22
回帖
2078

贵宾

发表于 2014-2-6 13:49:35 | 显示全部楼层
终于可以拜托某种不爽的感觉了= =
话说这脚本既然简单,那为什么不使用alias来降低冲突率呢?

点评

表示看不掼alias的用法...  发表于 2014-2-6 14:14
回复

使用道具 举报

梦石
0
星屑
473
在线时间
183 小时
注册时间
2009-7-12
回帖
125
发表于 2014-2-6 14:38:34 | 显示全部楼层
真的吗?真心没注意到。

点评

明显先播放ME再出现窗口...  发表于 2014-2-6 14:46
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2015-12-5 21:30:26 | 显示全部楼层
这样修改后就更优化了
  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
复制代码

评分

参与人数 1星屑 +150 收起 理由
myownroc + 150 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
发表于 2016-1-9 17:13:45 | 显示全部楼层
yang1zhi 发表于 2015-12-5 21:30
这样修改后就更优化了

有bug!如果战斗结束后,先别按C建  等结束音乐播放完毕或停顿一会儿  ,再按C键 会卡住!
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2016-1-9 18:41:20 | 显示全部楼层
jenganchan 发表于 2016-1-9 17:13
有bug!如果战斗结束后,先别按C建  等结束音乐播放完毕或停顿一会儿  ,再按C键 会卡住! ...

[pre lang="ruby"]class Scene_Battle
  #--------------------------------------------------------------------------
  # ● 画面更新 (结束战斗回合)
  #--------------------------------------------------------------------------
  def update_phase5
    # 显示结果窗口
    @result_window.visible = true
    # 等待计数大于 0 的情况下
    if @phase5_wait_count > 0
      # 减少等待计数
      @phase5_wait_count -= 1
      # 等待计数为 0 的情况下
      if @phase5_wait_count == 0
        # 清除主回合标志
        $game_temp.battle_main_phase = false
        # 刷新状态窗口
        @status_window.refresh
      end
                    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 战斗结束
      battle_end(0)
      Audio.me_stop
    end

      return
    end
              # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 战斗结束
      battle_end(0)
      Audio.me_stop
    end

  end
end[/pre]
回复

使用道具 举报

梦石
0
星屑
2620
在线时间
486 小时
注册时间
2012-4-10
回帖
232
发表于 2016-1-9 18:50:20 | 显示全部楼层
yang1zhi 发表于 2016-1-9 18:41
class Scene_Battle
  #--------------------------------------------------------------------------
  ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部