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 장비 사용자 장비 슬롯 1.1 27 file 아방스 2012.01.31 6615
16 스킬 VXACE 패시브 스킬 스크립트 Ver. 0.82 21 file 아이미르 2012.03.07 6669
15 메뉴 [VX Ace] 다이얼 링 메뉴 스크립트 8 file RaonHank 2012.04.16 6673
14 제작도구 VXAce HUD Designer by Cidiomar R. Dias Jr 1 file 습작 2013.01.19 6762
13 전투 [스크립트] Sideview Battle System ver. 1.00 (일본어) 7 file 허걱 2012.05.20 6912
12 메뉴 Etude87's Menu Editor 44 file 습작 2014.07.17 6996
11 그래픽 [ACE][BR] Awesome Light Effects 1.0(빛관련 스크립트) 37 file 꿈꾸는사람 2012.08.02 7015
10 메시지 [스크립트] Ace Message System - by. Yanfly 17 file 허걱 2012.05.21 7271
9 전투 SRPG 컨버터 for Ace (SRPGコンバータ for Ace) by AD.Bank 27 file 습작 2012.04.17 7274
8 전투 vx ace 애니메이션 배틀 3 gor 2012.05.27 7664
7 이름입력 전체키 + 조합한글 + 이름입력처리 변경 47 file 허걱 2012.07.04 8200
6 기타 원하는 글씨체로 변경하기 12 조말생 2012.04.20 8847
5 기타 Dialog Extractor 1.04 (VXA/VX/XP) 6 AltusZeon 2014.01.16 11672
4 이름입력 한글 이름입력창 23 file 에틴 2012.01.23 11680
3 전투 Yanfly 엔진 - 몬스터의 레벨 설정 6 file 스리아씨 2013.11.08 13003
2 전투 RPG VX Ace 전투 대사 한글화 37 재규어 2012.01.04 20292
1 전투 스킬 캐스팅 시스템 3 스리아씨 2013.10.12 32176
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11