Project1

标题: 一个VA用的暂停脚本 希望能加入开关 [打印本页]

作者: 牲口    时间: 2013-3-14 17:09
标题: 一个VA用的暂停脚本 希望能加入开关
本帖最后由 牲口 于 2013-3-14 22:12 编辑

RUBY 代码复制
  1. ###############################################################################
  2. #Pause Script Version 3                                       
  3. # Author: Unsigned_Zero
  4. # Updated by Tsukihime
  5. ###############################################################################
  6.  
  7. # Pause picture should be placed in the Graphics/System folder
  8.  
  9. module U0_Pause_module
  10.  
  11.   PAUSE_BUTTON = "B"
  12.   Pause_Picture = "Pause"
  13.  
  14.   #dim the screen during pause
  15.   Dim_Screen = false
  16.   Dim_Brightness = 100
  17.   #The bgm to play when paused
  18.   Pause_Music = "1"
  19.   #The bgm volume when paused
  20.   Pause_Volume = 0
  21.   # Freeze Time when in pause mode?
  22.   TIME_STOP = true
  23.   PAUSE_BUTTON2 = eval("Input::#{PAUSE_BUTTON}")
  24.   PAUSE_OPACITY = 255 #opacity of the picture
  25.  
  26.   def stopping
  27.     bgm = RPG::BGM.last
  28.     bgs = RPG::BGS.last
  29.     prev_brightness = Graphics.brightness
  30.     RPG::BGM.stop
  31.     Audio.bgm_play('Audio/BGM/' + Pause_Music, Pause_Volume)
  32.     viewport1 = Viewport.new(0, 0, Graphics.width, Graphics.height)
  33.     viewport1.z = 10000
  34.     pause_sprite = Sprite.new(viewport1)
  35.     pause_sprite.tone = Tone.new(0, 0, 0, 0)
  36.     pause_sprite.bitmap = Cache.system (Pause_Picture)
  37.     pause_sprite.opacity = PAUSE_OPACITY
  38.     loop do
  39.       Graphics.update
  40.       Graphics.brightness = Dim_Brightness if Dim_Screen
  41.       Input.update
  42.       if Input.trigger?(PAUSE_BUTTON2)
  43.         break
  44.       end
  45.     end
  46.     Graphics.brightness = prev_brightness
  47.     bgm.play(bgm.pos)
  48.     bgs.play(bgs.pos)
  49.     pause_sprite.dispose
  50.     pause_sprite = nil
  51.   end
  52.  
  53. end
  54. #==============================================================================
  55. #  Scene_Base
  56. #==============================================================================
  57.  
  58. class Scene_Base
  59.   include U0_Pause_module
  60.   alias u0_pause_update update
  61.   def update
  62.     if Input.trigger?(PAUSE_BUTTON2)
  63.       frame = Graphics.frame_count
  64.       stopping
  65.       if TIME_STOP
  66.         Graphics.frame_count = frame
  67.       end
  68.     end
  69.   u0_pause_update
  70.   end
  71. end


自己搞了半天 没成功 只好求助了

这个脚本用来暂停游戏的 但是我并不希望随时能暂停

求各位大大帮忙加个开关 让开关开启时这个脚本才有效
作者: j433463    时间: 2013-3-14 17:16
先声明,没有测试过,只是一个提议:

自己定个开关,比方 $game_switches[24] 第 24 号开关如果为 true 就暂停无效

然后在脚本 62 行改成:
  1.     if Input.trigger?(PAUSE_BUTTON2) && $game_switches[24] != true
复制代码
这样只有 24 号开关为关闭时,按暂停才有效。
作者: 牲口    时间: 2013-3-14 17:46
测速了 不行

不过还是谢谢
作者: 牲口    时间: 2013-3-14 21:57
我试过了,在一个自动开始的事件最前面把开关 24 开启,当进入该地图按 Esc 并不会暂停,怎么说无效?


OK 找这个方法可行! 太感谢了!
作者: 牲口    时间: 2013-3-14 22:02
本帖最后由 牲口 于 2013-3-14 22:11 编辑

搞定!
作者: j433463    时间: 2013-3-14 22:07
本帖最后由 j433463 于 2013-3-14 22:15 编辑

该不会和我片头动画切换时一样遇到事件时间差的状况吧?那试试不要用事件指令的开关操作,改用事件脚本 $game_switches[24] = true 来做,看看有没有差别?

还有一种,这应该可以指定某些地图下暂停不执行,就是改成这样:

RUBY 代码复制
  1. class Scene_Base
  2.   @ck_map_id = [1,3,6] #不要执行暂停的地图
  3.   include U0_Pause_module
  4.   alias u0_pause_update update
  5.   def update
  6.     return if @ck_map_id.include?($game_map.map_id) #如果 @ck_map_id 中有地图 id 就返回不执行下面的命令
  7.     if Input.trigger?(PAUSE_BUTTON2) && $game_switches[24] != true
  8.       frame = Graphics.frame_count
  9.       stopping
  10.       if TIME_STOP
  11.         Graphics.frame_count = frame
  12.       end
  13.     end
  14.   u0_pause_update
  15.   end





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