Ace 스크립트

출처:https://torigoya.hatenadiary.jp/entry/20111201/vxace

 

저 링크의 스크립트는 MV버전처럼 볼륨을 변경할 수 있게 해주는 스크립트입니다.

 

 

스크립트 본:

# encoding: utf-8
# 【注意:2011/12/26追記】
# このスクリプトは不具合を含む古いものです.
# 使用する場合はこれではなく,最新版をお使いくださいな.
#===============================================================================
# ■ 音量変更処理スクリプトさん for RGSS3
#-------------------------------------------------------------------------------
# 2011/12/01 Ru/むっくRu
#-------------------------------------------------------------------------------
# 全体の音量変更に関する機能を追加します
#
# ● Audioモジュールに以下のメソッドが追加されます
# Audio.volBGM …… BGMのマスターボリューム取得
# Audio.volBGS …… BGSのマスターボリューム取得
# Audio.volSE  …… SEのマスターボリューム取得
# Audio.volME  …… MEのマスターボリューム取得
# Audio.volBGM=数値 …… BGMのマスターボリューム設定(0〜100)
# Audio.volBGM=数値 …… BGSのマスターボリューム設定(0〜100)
# Audio.volSE=数値  …… SEのマスターボリューム設定(0〜100)
# Audio.volME=数値  …… MEのマスターボリューム設定(0〜100)
#
# ● メニュー画面に音量調整の項目が追加されます
#
#-------------------------------------------------------------------------------
# 【問題点など】
# そもそもVXAce発売前だからちゃんと動くか微妙
#-------------------------------------------------------------------------------

#==============================================================================
# ● 設定項目
#==============================================================================
module HZM_VXA
  module AudioVol
    # メニュー画面に音量調整を表示するか?
    #  true  …… 表示する
    #  false …… 表示しない
    MENU_FLAG = true
    
    # メニュー画面に表示する項目名
    MENU_NAME        = "音量設定"
    
    # 音量設定画面の項目名
    CONFIG_BGM_NAME  = "BGM"
    CONFIG_BGS_NAME  = "BGS"
    CONFIG_SE_NAME   = "SE"
    CONFIG_ME_NAME   = "ME"
    CONFIG_EXIT_NAME = "戻る"
    
    # 音量変更の変動量
    # ADD_VOL_NORMAL …… 左右キーの変動量
    # ADD_VOL_HIGH   …… LRキーの変動量
    ADD_VOL_NORMAL = 5
    ADD_VOL_HIGH   = 25
  end
end

#==============================================================================
# ↑   ここまで設定   ↑
# ↓ 以下、スクリプト部 ↓
#==============================================================================

# 追加メソッド群
module Audio
  def self.volBGM=(vol)
    vol=100 if vol>100
    vol=0 if vol<0
    @hzmVolBGM = vol
  end
  def self.volBGS=(vol)
    vol=100 if vol>100
    vol=0 if vol<0
    @hzmVolBGS = vol
  end
  def self.volSE=(vol)
    vol=100 if vol>100
    vol=0 if vol<0
    @hzmVolSE = vol
  end
  def self.volME=(vol)
    vol=100 if vol>100
    vol=0 if vol<0
    @hzmVolME = vol
  end
  def self.volBGM
    @hzmVolBGM = 100  if @hzmVolBGM == nil
    return @hzmVolBGM
  end
  def self.volBGS
    @hzmVolBGS = 100  if @hzmVolBGS == nil
    return @hzmVolBGS
  end
  def self.volSE
    @hzmVolSE = 100  if @hzmVolSE == nil
    return @hzmVolSE
  end
  def self.volME
    @hzmVolME = 100  if @hzmVolME == nil
    return @hzmVolME
  end
end

# 再生処理
class << Audio
  alias hzm_Vol_Audio_bgm_play bgm_play
  def bgm_play(filename, volume=100, pitch=100, pos=0)
    volume = self.volBGM * volume / 100
    hzm_Vol_Audio_bgm_play(filename, volume, pitch, pos)
  end
  alias hzm_Vol_Audio_bgs_play bgs_play
  def bgs_play(filename, volume=100, pitch=100)
    volume = self.volBGS * volume / 100
    hzm_Vol_Audio_bgs_play(filename, volume, pitch)
  end
  alias hzm_Vol_Audio_se_play se_play
  def se_play(filename, volume=100, pitch=100)
    volume = self.volSE * volume / 100
    hzm_Vol_Audio_se_play(filename, volume, pitch)
  end
  alias hzm_Vol_Audio_me_play me_play
  def me_play(filename, volume=100, pitch=100)
    volume = self.volME * volume / 100
    hzm_Vol_Audio_me_play(filename, volume, pitch)
  end
end

# メニューに追加
if HZM_VXA::AudioVol::MENU_FLAG
  class Window_MenuCommand
    alias hzm_Vol_Window_MenuCommand_add_original_commands add_original_commands
    def add_original_commands
      hzm_Vol_Window_MenuCommand_add_original_commands
      add_command(HZM_VXA::AudioVol::MENU_NAME, :hzm_vxa_vol)
    end
  end

  class Scene_Menu
    alias hzm_Vol_create_command_window create_command_window
    def create_command_window
      hzm_Vol_create_command_window
      @command_window.set_handler(:hzm_vxa_vol, method(:hzm_vxa_vol))
    end
    def hzm_vxa_vol
      SceneManager.call(HZM_VXA::AudioVol::Scene_VolConfig)
    end
  end
end

# 音量変更ウィンドウ
module HZM_VXA
  module AudioVol
    class Window_VolConfig < Window_Command
      def initialize
        super(0, 0)
        self.x = (Graphics.width - self.window_width)/2
        self.y = (Graphics.height - self.window_height)/2
      end
      def make_command_list
        add_command(HZM_VXA::AudioVol::CONFIG_BGM_NAME,  :bgm)
        add_command(HZM_VXA::AudioVol::CONFIG_BGS_NAME,  :bgs)
        add_command(HZM_VXA::AudioVol::CONFIG_SE_NAME,   :se)
        add_command(HZM_VXA::AudioVol::CONFIG_ME_NAME,   :me)
        add_command(HZM_VXA::AudioVol::CONFIG_EXIT_NAME, :cancel)
      end
      def draw_item(index)
        super
        return unless index < 4
        case index
        when 0
          vol = Audio.volBGM
        when 1
          vol = Audio.volBGS
        when 2
          vol = Audio.volSE
        when 3
          vol = Audio.volME
        end
        draw_text(item_rect_for_text(index), vol, 2)
      end
      def volAdd(index, val)
        case index
        when 0
          Audio.volBGM += val
          now = RPG::BGM.last 
          Audio.bgm_play('Audio/BGM/' + now.name, now.volume, now.pitch, now.pos) if now
        when 1
          Audio.volBGS += val
        when 2
          Audio.volSE += val
        when 3
          Audio.volME += val
        end
        Sound.play_cursor
        redraw_item(index)
      end
      def cursor_left(wrap = false)
        volAdd(@index, -HZM_VXA::AudioVol::ADD_VOL_NORMAL)
      end
      def cursor_right(wrap = false)
        volAdd(@index,  HZM_VXA::AudioVol::ADD_VOL_NORMAL)
      end
      def cursor_pageup
        volAdd(@index,  -HZM_VXA::AudioVol::ADD_VOL_HIGH)
      end
      def cursor_pagedown
        volAdd(@index,  HZM_VXA::AudioVol::ADD_VOL_HIGH)
      end
    end
    class Scene_VolConfig < Scene_MenuBase
      def start
        super
        @command_window = Window_VolConfig.new
        @command_window.viewport = @viewport
        @command_window.set_handler(:cancel,   method(:return_scene))
      end
      def terminate
        super
        @command_window.dispose
      end
    end
  end
end

# セーブ時に保存,読込
class << DataManager
  alias hzm_Vol_make_save_contents make_save_contents
  def make_save_contents
    contents = hzm_Vol_make_save_contents
    contents[:hzm_vxa_vol]   = {
      :bgm => Audio.volBGM,
      :bgs => Audio.volBGS,
      :se  => Audio.volSE,
      :me  => Audio.volME
    }
    contents
  end
  alias hzm_Vol_extract_save_contents extract_save_contents
  def extract_save_contents(contents)
    hzm_Vol_extract_save_contents(contents)
    Audio.volBGM = contents[:hzm_vxa_vol][:bgm]
    Audio.volBGS = contents[:hzm_vxa_vol][:bgs]
    Audio.volSE  = contents[:hzm_vxa_vol][:se]
    Audio.volME  = contents[:hzm_vxa_vol][:me]
  end
end

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5110
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 28928
17 전투 전투시 나오는 메세지 삭제 10 Nintendo 2012.03.03 4358
16 이동 및 탈것 지상 탈것 스크립트 6 file 미루 2013.01.07 4579
15 직업 직업 경험치+능력치 설정 확장 7 file zubako 2015.01.27 3988
14 그래픽 커스텀 아이콘 적용하기 2 file 간로 2015.09.28 2723
13 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 스크립트를 VX Ace용으로 변환 (완성판) 2 Alkaid 2012.01.25 3981
12 타이틀/게임오버 코아 코스튬씨의 랜덤 타이틀 출력 스크립트를 VX Ace용으로 변환 (테스트용) 1 Alkaid 2011.12.29 3189
11 전투 콤보 카운팅 시스템 4 아르피쥐 2011.12.18 4589
10 기타 크리스탈 엔진 : 포켓몬 배틀 시스템 7 file 스리아씨 2013.09.24 3894
9 키입력 키 입력 확장 - 전체키 + 마우스입력 40 file 허걱 2012.12.15 5781
8 타이틀/게임오버 타이틀 스크린 커스터마이징 11 file 라실비아 2013.08.12 5154
7 타이틀/게임오버 타이틀 화면 없이 게임을 시작하게 만드는법. 6 마에르드 2012.02.11 4586
6 메시지 텍스트 사운드 이펙트 ( Text Sound Effect ) 10 file 미루 2013.01.10 4335
5 메뉴 파티 개별 인벤토리 스크립트 안나카레리나 2018.06.25 741
4 메시지 한국어 조사 처리 스크립트 (140130) 2 치리 2014.01.31 2649
3 메시지 한국어 조사처리 스크립트 7 Ilike게임 2012.10.09 3603
2 이름입력 한글 이름입력창 23 file 에틴 2012.01.23 11680
1 HUD 화폐단위 표시 구분 5 file 허걱 2014.03.19 2938
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11