Project1

标题: 战斗中换人脚本+战斗后调用公共事件 = 出现 走失人口现象 [打印本页]

作者: 木许许    时间: 2012-7-17 10:37
标题: 战斗中换人脚本+战斗后调用公共事件 = 出现 走失人口现象
用了战斗换人脚本,发现如果战斗结束调用了公共事件,返回地图后待战角色就没有了。比如队伍人数为4人,战斗角色是2人,战斗后发现整个队伍只剩下2个战斗角色了

战斗中换人
http://rpg.blue/forum.php?mod=viewthread&tid=163143


战斗结束调用公共事件(胜利宣言、得到多物品)
http://www.66rpg.com/articles/3221dsu_plus_rewardpost_czw
作者: 英顺的马甲    时间: 2012-7-17 13:37
估计是battle_end没被调用到,
  1.   def update_phase5
  2.     # 等待计数大于 0 的情况下
  3.     if @phase5_wait_count > 0
  4.       # 减少等待计数
  5.       @phase5_wait_count -= 1
  6.       # 等待计数为 0 的情况下
  7.       if @phase5_wait_count == 0
  8.         # 显示结果窗口
  9.         @result_window.visible = true
  10.         # 清除主回合标志
  11.         $game_temp.battle_main_phase = false
  12.         # 刷新状态窗口
  13.         @status_window.refresh        
  14.         #####################################################################
  15.         #####################################################################
  16.         common_event = $data_common_events[1]
  17.         $game_system.battle_interpreter.setup(common_event.list, 0)
  18.         #####################################################################
  19.         #####################################################################
  20.       end
  21.       battle_end(0)
  22.       return
  23.     end
  24.   end
复制代码

作者: 木许许    时间: 2012-7-17 13:49
英顺的马甲 发表于 2012-7-17 13:37
估计是battle_end没被调用到,

加了一个 battle_end(0),战斗结束后队员是没丢,但公共事件没有执行
作者: 木许许    时间: 2012-7-17 15:57
英顺的马甲 发表于 2012-7-17 13:37
估计是battle_end没被调用到,

把你的脚本整段插在main之上么?但是战斗结束后我设置的公共事件没有执行啊


作者: 英顺的马甲    时间: 2012-7-17 16:19
算了,是我的错==
  1. class Scene_Battle
  2.   def update_phase5
  3.     # 等待计数大于 0 的情况下
  4.     if @phase5_wait_count > 0
  5.       # 减少等待计数
  6.       @phase5_wait_count -= 1
  7.       # 等待计数为 0 的情况下
  8.       if @phase5_wait_count == 0
  9.         # 显示结果窗口
  10.         @result_window.visible = true
  11.         # 清除主回合标志
  12.         $game_temp.battle_main_phase = false
  13.         # 刷新状态窗口
  14.         @status_window.refresh        
  15.         #####################################################################
  16.         #####################################################################
  17.         common_event = $data_common_events[1]
  18.         $game_system.battle_interpreter.setup(common_event.list, 0)
  19.         #####################################################################
  20.         #####################################################################
  21.       end
  22.       battle_end(0)
  23.       return
  24.     end
  25.   end
  26. end
复制代码
插在Scene_Battle4下面==
作者: 木许许    时间: 2012-7-17 16:24
英顺的马甲 发表于 2012-7-17 16:19
算了,是我的错==插在Scene_Battle4下面==

我确实插在了Scene_Battle4的下面,但是战斗结束直到返回地图,公共事件里的内容还是没执行
作者: 英顺的马甲    时间: 2012-7-17 16:31
木许许 发表于 2012-7-17 16:24
我确实插在了Scene_Battle4的下面,但是战斗结束直到返回地图,公共事件里的内容还是没执行 ...
  1. class Scene_Battle
  2.   def update_phase5
  3.     # 等待计数大于 0 的情况下
  4.     if @phase5_wait_count > 0
  5.       # 减少等待计数
  6.       @phase5_wait_count -= 1
  7.       # 等待计数为 0 的情况下
  8.       if @phase5_wait_count == 0
  9.         # 显示结果窗口
  10.         @result_window.visible = true
  11.         # 清除主回合标志
  12.         $game_temp.battle_main_phase = false
  13.         # 刷新状态窗口
  14.         @status_window.refresh        
  15.         #####################################################################
  16.         #####################################################################
  17.         common_event = $data_common_events[1]
  18.         $game_system.battle_interpreter.setup(common_event.list, 0)
  19.         #####################################################################
  20.         #####################################################################
  21.         # 刷新公共事件直到结束
  22.         while $game_system.battle_interpreter.running?
  23.           Graphics.update
  24.           Input.update
  25.           $game_system.battle_interpreter.update
  26.         end
  27.       end
  28.       battle_end(0)
  29.       return
  30.     end
  31.   end
  32. end
复制代码

作者: 木许许    时间: 2012-7-17 17:22
标题: 返回
本帖最后由 木许许 于 2012-7-17 17:25 编辑
英顺的马甲 发表于 2012-7-17 16:31


还是老样子啊,公共事件没执行。在战斗结束返回地图之前应该出现一句对话并得到物品的啊
作者: 木许许    时间: 2012-7-17 20:41
英顺的马甲 发表于 2012-7-17 16:31

工程上传了,脚本编辑器里有个叫“插入”的脚本是你给我的,删除它,战斗胜利后1号公共事件会执行,但是待战角色会消失。不删除,战斗胜利后待战角色保留了,但是1号公共事件没有执行

Project2.rar (191.02 KB, 下载次数: 12)
作者: 英顺的马甲    时间: 2012-7-17 21:42
本帖最后由 英顺的马甲 于 2012-7-17 21:48 编辑
木许许 发表于 2012-7-17 20:41
工程上传了,脚本编辑器里有个叫“插入”的脚本是你给我的,删除它,战斗胜利后1号公共事件会执行,但是 ...


搞定
  1. class Scene_Battle
  2.   def update_phase5
  3.     @phase5_wait_count.times{Graphics.update}
  4.     # 显示结果窗口
  5.     @result_window.visible = true
  6.     # 清除主回合标志
  7.     $game_temp.battle_main_phase = false
  8.     # 刷新状态窗口
  9.     @status_window.refresh
  10.     (3 * Graphics.frame_rate).times{Graphics.update} # 暂停三秒
  11.     @result_window.visible = false
  12.     # 设置公共事件
  13.     common_event = $data_common_events[1]
  14.     $game_system.battle_interpreter.setup(common_event.list, 0)
  15.     # 刷新公共事件至结束
  16.     while $game_system.battle_interpreter.running?
  17.       Graphics.update
  18.       Input.update
  19.       $game_system.battle_interpreter.update
  20.       @status_window.update
  21.       @message_window.update
  22.     end
  23.     # 战斗结束
  24.     battle_end(0)
  25.     return
  26.   end
  27. end
复制代码

作者: 木许许    时间: 2012-7-17 21:53
辛苦了额




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