Project1

标题: 请教如何在触发野怪战斗时暂停计时器? [打印本页]

作者: 再无神    时间: 2012-11-9 12:39
标题: 请教如何在触发野怪战斗时暂停计时器?
是一个限时跑终点的任务,可是触发地雷式战斗时计时器依旧在走,请高手指教。
ps:不会写脚本,最好是不用脚本的方法
作者: 亂堂和樹    时间: 2012-11-9 13:15
如果是我的話。
會設置條件分歧
發生戰鬥就操作計時器停止

不然極端的做法就是敵人隊伍都設置開關
當任務開啟 進入戰鬥就設置停止計時


作者: 怪蜀黍    时间: 2012-11-9 15:39
本帖最后由 protosssonny 于 2012-11-9 15:40 编辑

功能和使用方法请看脚本中的说明,P叔已经写得很详细了
范例工程:http://pan.baidu.com/share/link?shareid=128825&uk=875076719
截图:

脚本:
  1. #==============================================================================
  2. # ☆ 计时器暂停继续
  3. #------------------------------------------------------------------------------
  4. #
  5. #   本脚本来自www.66RPG.com,使用和转载请保留此信息
  6. #
  7. #   作者:protosssonny
  8. #
  9. #------------------------------------------------------------------------------
  10. # ■ 使用方法
  11. # 1、计时器时间初始化的方法仍是使用事件来设定,与默认方法相同
  12. # 2、使用时间脚本$game_system.pause_timer可以随时暂停计时器
  13. # 3、使用时间脚本$game_system.continue_timer可以随时继续计时器
  14. # 4、打开控制开关可以开启【战斗自动暂停计时器】模式,关闭控制开关即可停用
  15. #    控制开关请在下面自己设定,默认是10号开关
  16. #
  17. # ■ 系统设定
  18. # 请设定控制战斗暂停计时器的开关号。当开关打开时,功能开启,否则功能停用。
  19. # 默认情况下是10号开关
  20.   PAUSE_SWITCH = 10
  21. #==============================================================================

  22. #==============================================================================
  23. # ■ Game_System
  24. #------------------------------------------------------------------------------
  25. #  处理系统附属数据的类。也可执行诸如交通工具、 BGM 等管理之类的功能。
  26. # 本类的实例请参考$game_system 。
  27. #==============================================================================
  28. class Game_System
  29.   attr_accessor :time_save
  30.   #--------------------------------------------------------------------------
  31.   # ● 暂停计时器
  32.   #--------------------------------------------------------------------------
  33.   def pause_timer
  34.     @time_save = 0 if @time_save == nil
  35.     @time_save = @timer * 1.0 / Graphics.frame_rate
  36.     @timer_working = false
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 继续计时器
  40.   #--------------------------------------------------------------------------
  41.   def continue_timer
  42.     @time_save = 0 if @time_save == nil
  43.     @timer = @time_save * Graphics.frame_rate
  44.     @timer_working = true
  45.   end  
  46. end  

  47. #==============================================================================
  48. # ■ Scene_Battle
  49. #------------------------------------------------------------------------------
  50. #  处理战斗画面的类。
  51. #==============================================================================

  52. class Scene_Battle < Scene_Base
  53.   #--------------------------------------------------------------------------
  54.   # ● 开始处理
  55.   #--------------------------------------------------------------------------
  56.   alias pause_timer_start start
  57.   def start
  58.     super
  59.     pause_timer_start
  60.     if $game_switches[PAUSE_SWITCH] == true  
  61.       $game_system.pause_timer
  62.     end
  63.   end
  64.   
  65.   #--------------------------------------------------------------------------
  66.   # ● 结束处理
  67.   #--------------------------------------------------------------------------
  68.   alias continue_timer_terminate terminate
  69.   def terminate
  70.     super
  71.     continue_timer_terminate
  72.     if $game_switches[PAUSE_SWITCH] == true  
  73.       $game_system.continue_timer
  74.     end
  75.   end
  76. end  

  77. #==============================================================================
  78. #
  79. #   本脚本来自www.66RPG.com,使用和转载请保留此信息
  80. #
  81. #                                                          作者:protosssonny   
  82. #                                                             2012年11月9日
  83. #==============================================================================
复制代码

作者: a364774426    时间: 2012-11-9 15:39
只能改脚本,在Game_System里最下面,68到75行,改成这样:
  1. def update
  2.     if @timer_working and @timer > 0
  3.       @timer -= 1
  4.       if  $game_temp.in_battle     # 如果战斗中计时器为 0
  5.          @timer -= 0             # 那么就中断战斗
  6.       end
  7.     end
  8.   end
复制代码

作者: 再无神    时间: 2012-11-26 20:51
好久没上网 今天才看到 感谢解答 我会好好看看的




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