查看: 2173|回复: 5

[已经解决] 一个VA用的暂停脚本 希望能加入开关

[复制链接]
梦石
0
星屑
50
在线时间
65 小时
注册时间
2008-5-15
回帖
29
发表于 2013-3-14 17:09:52 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 牲口 于 2013-3-14 22:12 编辑

[pre lang="ruby" line="1"]###############################################################################
#Pause Script Version 3                                       
# Author: Unsigned_Zero
# Updated by Tsukihime
###############################################################################

# Pause picture should be placed in the Graphics/System folder

module U0_Pause_module

  PAUSE_BUTTON = "B"
  Pause_Picture = "Pause"

  #dim the screen during pause
  Dim_Screen = false
  Dim_Brightness = 100
  #The bgm to play when paused
  Pause_Music = "1"
  #The bgm volume when paused
  Pause_Volume = 0
  # Freeze Time when in pause mode?
  TIME_STOP = true
  PAUSE_BUTTON2 = eval("Input::#{PAUSE_BUTTON}")
  PAUSE_OPACITY = 255 #opacity of the picture

  def stopping
    bgm = RPG::BGM.last
    bgs = RPG::BGS.last
    prev_brightness = Graphics.brightness
    RPG::BGM.stop
    Audio.bgm_play('Audio/BGM/' + Pause_Music, Pause_Volume)
    viewport1 = Viewport.new(0, 0, Graphics.width, Graphics.height)
    viewport1.z = 10000
    pause_sprite = Sprite.new(viewport1)
    pause_sprite.tone = Tone.new(0, 0, 0, 0)
    pause_sprite.bitmap = Cache.system (Pause_Picture)
    pause_sprite.opacity = PAUSE_OPACITY
    loop do
      Graphics.update
      Graphics.brightness = Dim_Brightness if Dim_Screen
      Input.update
      if Input.trigger?(PAUSE_BUTTON2)
        break
      end
    end
    Graphics.brightness = prev_brightness
    bgm.play(bgm.pos)
    bgs.play(bgs.pos)
    pause_sprite.dispose
    pause_sprite = nil
  end

end
#==============================================================================
#  Scene_Base
#==============================================================================

class Scene_Base
  include U0_Pause_module
  alias u0_pause_update update
  def update
    if Input.trigger?(PAUSE_BUTTON2)
      frame = Graphics.frame_count
      stopping
      if TIME_STOP
        Graphics.frame_count = frame
      end
    end
  u0_pause_update
  end
end[/pre]

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

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

求各位大大帮忙加个开关 让开关开启时这个脚本才有效
梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-3-14 17:16:59 | 显示全部楼层
先声明,没有测试过,只是一个提议:

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

然后在脚本 62 行改成:
  1.     if Input.trigger?(PAUSE_BUTTON2) && $game_switches[24] != true
复制代码
这样只有 24 号开关为关闭时,按暂停才有效。
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
65 小时
注册时间
2008-5-15
回帖
29
 楼主| 发表于 2013-3-14 17:46:58 | 显示全部楼层
测速了 不行

不过还是谢谢

点评

我试过了,在一个自动开始的事件最前面把开关 24 开启,当进入该地图按 Esc 并不会暂停,怎么说无效?  发表于 2013-3-14 18:45
改过后有刷新吗?  发表于 2013-3-14 18:36
回复

使用道具 举报

梦石
0
星屑
50
在线时间
65 小时
注册时间
2008-5-15
回帖
29
 楼主| 发表于 2013-3-14 21:57:04 | 显示全部楼层
我试过了,在一个自动开始的事件最前面把开关 24 开启,当进入该地图按 Esc 并不会暂停,怎么说无效?


OK 找这个方法可行! 太感谢了!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
65 小时
注册时间
2008-5-15
回帖
29
 楼主| 发表于 2013-3-14 22:02:00 | 显示全部楼层
本帖最后由 牲口 于 2013-3-14 22:11 编辑

搞定!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-3-14 22:07:24 | 显示全部楼层
本帖最后由 j433463 于 2013-3-14 22:15 编辑

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

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

[pre lang="ruby" line="1"]class Scene_Base
  @ck_map_id = [1,3,6] #不要执行暂停的地图
  include U0_Pause_module
  alias u0_pause_update update
  def update
    return if @ck_map_id.include?($game_map.map_id) #如果 @ck_map_id 中有地图 id 就返回不执行下面的命令
    if Input.trigger?(PAUSE_BUTTON2) && $game_switches[24] != true
      frame = Graphics.frame_count
      stopping
      if TIME_STOP
        Graphics.frame_count = frame
      end
    end
  u0_pause_update
  end
[/pre]
修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部