查看: 2572|回复: 1

[已经解决] RMXP关闭声音的脚本

[复制链接]
梦石
0
星屑
85
在线时间
210 小时
注册时间
2013-7-26
回帖
265
发表于 2014-11-1 17:22:05 | 显示全部楼层 |阅读模式

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

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

×
背景音乐为BGM ME
音效为BGS SE

按F1即可可以通过选择来关闭,如何在脚本中实现?  调节音量没用,因为游戏播放的SE是有设置音量的
打开与关闭音乐与音效的脚本

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
发表于 2014-11-1 18:09:53 | 显示全部楼层
本帖最后由 恐惧剑刃 于 2014-11-1 23:55 编辑

音量设置0就是静音了
[pre lang="ruby" line="1"]#==============================================================================
# ■ Game_System
#------------------------------------------------------------------------------
#  全局声音控制(音量,节拍)。
#==============================================================================
# * 使用方法:
# * $game_system.bgm_volume = 0.5 调节BGM播放的音量为正常值的一半。
# * $game_system.bgm_pitch = 0.5  调节BGM播放的节拍为正常值的一半。
# * 可以使用类似的方法对BGS,ME,SE进行调整,
# * 比如 $game_system.bgs_volume = 0.1 调节BGS播放的音量为正常值的十分之一。
#==============================================================================
=begin

遇到一个尴尬问题:
ME,SE时长太短,通常不容易立刻改变其播放音量,节拍,只能在下次播放时生效
(因为难判断ME,SE是否还在播放,所以不能再使用“通解”方法了)。
暂时找不到解决方法!

=end
class Game_System
  # ====================== 修改 ======================
  attr_accessor :me_volume, :me_pitch
  attr_accessor :se_volume, :se_pitch
  
  alias initialize_me_se_v_p_old initialize
  def initialize
    initialize_me_se_v_p_old
    @me_volume = @me_pitch = @se_volume = @se_pitch = 1
  end
  # ==================================================
  
  #=====================================================================
  # 音量控制
  #=====================================================================
  def bgm_volume
    if @bgm_volume == nil
      @bgm_volume = 1
    end
    return @bgm_volume
  end
  def bgm_volume=(volume)
    if @bgm_volume == volume
      return
    end
    @bgm_volume = volume
    bgm_play(@playing_bgm)
  end
  def bgs_volume
    if @bgs_volume == nil
      @bgs_volume = 1
    end
    return @bgs_volume
  end
  def bgs_volume=(volume)
    if @bgs_volume == volume
      return
    end
    @bgs_volume = volume
    bgs_play(@playing_bgs)
  end
=begin
  def me_volume
    if @me_volume == nil
      @me_volume = 1
    end
    return @me_volume
  end
  def me_volume=(volume)
    if @me_volume == volume
      return
    end
    @me_volume = volume
    me_play(@playing_me)
  end
  def se_volume
    if @se_volume == nil
      @se_volume = 1
    end
    return @se_volume
  end
  def se_volume=(volume)
    if @se_volume == volume
      return
    end
    @se_volume = volume
    se_play(@playing_se)
  end
=end
  #=====================================================================
  # 节拍控制
  #=====================================================================
  def bgm_pitch
    if @bgm_pitch == nil
      @bgm_pitch = 1
    end
    return @bgm_pitch
  end
  def bgm_pitch=(pitch)
    if @bgm_pitch == pitch
      return
    end
    @bgm_pitch = pitch
    bgm_play(@playing_bgm)
  end
  def bgs_pitch
    if @bgs_pitch == nil
      @bgs_pitch = 1
    end
    return @bgs_pitch
  end
  def bgs_pitch=(pitch)
    if @bgs_pitch == pitch
      return
    end
    @bgs_pitch = pitch
    bgs_play(@playing_bgs)
  end
=begin
  def me_pitch
    if @me_pitch == nil
      @me_pitch = 1
    end
    return @me_pitch
  end
  def me_pitch=(pitch)
    if @me_pitch == pitch
      return
    end
    @me_pitch = pitch
    me_play(@playing_me)
  end
  def se_pitch
    if @se_pitch == nil
      @se_pitch = 1
    end
    return @se_pitch
  end
  def se_pitch=(pitch)
    if @se_pitch == pitch
      return
    end
    @se_pitch = pitch
    se_play(@playing_se)
  end
  
  
  #--------------------------------------------------------------------------
  # ● 获取演奏中 ME
  #--------------------------------------------------------------------------
  def playing_me
    return @playing_me
  end
  #--------------------------------------------------------------------------
  # ● 获取演奏中 SE
  #--------------------------------------------------------------------------
  def playing_se
    return @playing_se
  end
  #--------------------------------------------------------------------------
  # ● 停止 ME
  #--------------------------------------------------------------------------
  def se_stop
    Audio.me_stop
    @playing_me = nil
  end
  #--------------------------------------------------------------------------
  # ● 停止 SE
  #--------------------------------------------------------------------------
  def se_stop
    Audio.se_stop
    @playing_se = nil
  end
  
=end
  #--------------------------------------------------------------------------
  # ● 演奏 BGM
  #     bgm : 演奏的 BGM
  #--------------------------------------------------------------------------
  def bgm_play(bgm)
    @playing_bgm = bgm
    if bgm != nil and bgm.name != ""
      Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume * bgm_volume, bgm.pitch * bgm_pitch)
    else
      Audio.bgm_stop
    end
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ● 演奏 BGS
  #     bgs : 演奏的 BGS
  #--------------------------------------------------------------------------
  def bgs_play(bgs)
    @playing_bgs = bgs
    if bgs != nil and bgs.name != ""
      Audio.bgs_play("Audio/BGS/" + bgs.name, bgs.volume * bgs_volume, bgs.pitch * bgs_pitch)
    else
      Audio.bgs_stop
    end
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ● ME 的演奏
  #     me : 演奏的 ME
  #--------------------------------------------------------------------------
  def me_play(me)
    #@playing_me = me
    if me != nil and me.name != ""
      #Audio.me_play("Audio/ME/" + me.name, me.volume * me_volume, me.pitch * me_pitch)
      Audio.me_play("Audio/ME/" + me.name, me.volume * @me_volume, me.pitch * @me_pitch) # 修改
    else
      Audio.me_stop
    end
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ● SE 的演奏
  #     se : 演奏的 SE
  #--------------------------------------------------------------------------
  def se_play(se)
    #@playing_se = se
    if se != nil and se.name != ""
      #Audio.se_play("Audio/SE/" + se.name, se.volume * se_volume, se.pitch * se_pitch)
      Audio.se_play("Audio/SE/" + se.name, se.volume * @se_volume, se.pitch * @se_pitch) # 修改
    end
  end
end[/pre]

点评

更新下脚本吧!?这里还有一个问题需要注意下。  发表于 2014-11-1 23:50
谢谢 解决了  发表于 2014-11-1 19:35

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部