赞 0  
 
VIP 0 
 
好人卡 1 
 
积分 1  
 
经验 3831 
 
最后登录 2017-6-22 
 
在线时间 57 小时 
 
 
 
Lv1.梦旅人 
	梦石 0   
        星屑 50  
        在线时间 57 小时 
        注册时间 2014-9-16 
        帖子 29  
 
 
 
	
加入我们,或者,欢迎回来。  
您需要 登录  才可以下载或查看,没有帐号?注册会员  
 
x 
 
 本帖最后由 月歌子 于 2015-11-11 21:48 编辑   
 
關於音量音效的控制,網路上有找到不少VX的腳本,但是ACE卻比較少 
這邊有在睡工房 找到介面和功能比較符合需求的系統設定腳本 
 
 
 
 
 
目前的問題是,網站提供的腳本有五個:音量,聲音,聲音開關,文字,自動模式 
想要將聲音開關用音效取代,但是最多只能做到介面OK,可是想要調整音量就出現錯誤了 
一直無法順利調整音效 
 
下面附上目前修改的腳本和出現的錯誤訊息 
跪求各位幫幫忙,感激不盡>_< 
 
 
 
 
 
共通セーブファイル 
 
#****************************************************************************** 
# 
#   * 共通セーブファイル * 
# 
#                       for RGSS3 
# 
#        Ver 1.01   2013.08.24 
# 
#   ◆使い方 
#     数字でも文字でも、お好きな名前(ID)への値の保存/読込が出来ます。 
#     1.True/Falseの値の場合 
#         例)保存:$savec.set("id", True) 
#             読込:$savec.check("id") 
#                   ※idが存在しない場合、Falseが返されます。 
# 
#     2.数字の場合 
#         例)保存:$savec.set_num("id", 100) 
#             読込:$savec.get_num("id")  
#                   ※idが存在しない場合、-1が返されます。 
# 
#   提供者:睡工房 [url]http://hime.be/[/url] 
# 
#****************************************************************************** 
 
#============================================================================== 
# コンフィグ項目 
#============================================================================== 
module  SUI
module  COMMON_SAVE
  # 共通セーブファイル名 
  COMMON_FILE = "savec.rvdata" 
end 
end 
#============================================================================== 
# 設定完了 
#============================================================================== 
 
 
 
class  Common_Save
  #-------------------------------------------------------------------------- 
  # ● オブジェクト初期化 
  #-------------------------------------------------------------------------- 
  def  initialize
    @data  = { } 
    load  if  FileTest .exist ?( SUI::COMMON_SAVE::COMMON_FILE ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● フラグチェック 
  #-------------------------------------------------------------------------- 
  def  check( id) 
    @data .include ?( id) ? @data [ id]  : false 
  end 
  #-------------------------------------------------------------------------- 
  # ● フラグセット 
  #-------------------------------------------------------------------------- 
  def  set( id, flg = false ) 
    unless  check( id)  == flg
      @data [ id]  = flg
      save
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 数値取得 
  #-------------------------------------------------------------------------- 
  def  get_num( id) 
    @data .include ?( id) ? @data [ id]  : -1 
  end 
  #-------------------------------------------------------------------------- 
  # ● 数値セット 
  #-------------------------------------------------------------------------- 
  def  set_num( id, num = -1 ) 
    unless  get_num( id)  == num
      @data [ id]  = num
      save
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● ファイルセーブ 
  #-------------------------------------------------------------------------- 
  def  save
    save_data( @data, SUI::COMMON_SAVE::COMMON_FILE ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● ファイルロード 
  #-------------------------------------------------------------------------- 
  def  load 
    @data  = load_data( SUI::COMMON_SAVE::COMMON_FILE ) 
  end 
end 
 
 
class  << DataManager
  #-------------------------------------------------------------------------- 
  # ● モジュール初期化 
  #-------------------------------------------------------------------------- 
  alias  sui_init init
  def  init
    $savec  = Common_Save.new 
    sui_init
  end 
end 
#****************************************************************************** 
 
# 
 
#   * 共通セーブファイル * 
 
# 
 
#                       for RGSS3 
 
# 
 
#        Ver 1.01   2013.08.24 
 
# 
 
#   ◆使い方 
 
#     数字でも文字でも、お好きな名前(ID)への値の保存/読込が出来ます。 
 
#     1.True/Falseの値の場合 
 
#         例)保存:$savec.set("id", True) 
 
#             読込:$savec.check("id") 
 
#                   ※idが存在しない場合、Falseが返されます。 
 
# 
 
#     2.数字の場合 
 
#         例)保存:$savec.set_num("id", 100) 
 
#             読込:$savec.get_num("id")  
 
#                   ※idが存在しない場合、-1が返されます。 
 
# 
 
#   提供者:睡工房 [url]http://hime.be/[/url] 
 
# 
 
#****************************************************************************** 
 
 
 
#============================================================================== 
 
# コンフィグ項目 
 
#============================================================================== 
 
module  SUI
 
module  COMMON_SAVE
 
  # 共通セーブファイル名 
 
  COMMON_FILE = "savec.rvdata" 
 
end 
 
end 
 
#============================================================================== 
 
# 設定完了 
 
#============================================================================== 
 
 
 
 
 
 
 
class  Common_Save
 
  #-------------------------------------------------------------------------- 
 
  # ● オブジェクト初期化 
 
  #-------------------------------------------------------------------------- 
 
  def  initialize
 
    @data  = { } 
 
    load  if  FileTest .exist ?( SUI::COMMON_SAVE::COMMON_FILE ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● フラグチェック 
 
  #-------------------------------------------------------------------------- 
 
  def  check( id) 
 
    @data .include ?( id) ? @data [ id]  : false 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● フラグセット 
 
  #-------------------------------------------------------------------------- 
 
  def  set( id, flg = false ) 
 
    unless  check( id)  == flg
 
      @data [ id]  = flg
 
      save
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 数値取得 
 
  #-------------------------------------------------------------------------- 
 
  def  get_num( id) 
 
    @data .include ?( id) ? @data [ id]  : -1 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 数値セット 
 
  #-------------------------------------------------------------------------- 
 
  def  set_num( id, num = -1 ) 
 
    unless  get_num( id)  == num
 
      @data [ id]  = num
 
      save
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ファイルセーブ 
 
  #-------------------------------------------------------------------------- 
 
  def  save
 
    save_data( @data, SUI::COMMON_SAVE::COMMON_FILE ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ファイルロード 
 
  #-------------------------------------------------------------------------- 
 
  def  load 
 
    @data  = load_data( SUI::COMMON_SAVE::COMMON_FILE ) 
 
  end 
 
end 
 
 
 
 
 
class  << DataManager
 
  #-------------------------------------------------------------------------- 
 
  # ● モジュール初期化 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_init init
 
  def  init
 
    $savec  = Common_Save.new 
 
    sui_init
 
  end 
 
end 
 
 
 
 
メッセージ拡張機能 
 
#****************************************************************************** 
# 
#   * メッセージ機能拡張 * 
# 
#                       for RGSS3 
# 
#        Ver 1.00   2012.09.16 
#        Ver 1.01   2014.01.06  自動モードの不具合修正 
# 
#   ◆注意事項 
#     ※この素材は「共通セーブファイル」スクリプトが必要になります。 
# 
# 
#   ◆機能説明 
# 
#     1.追加された制御文字で、立ち絵を左・中央・右に表示できます。 
# 
#     2.追加された制御文字で、音声を再生できます。 
# 
#     3.追加された制御文字で、SEを再生できます。 
# 
#     4.追加された制御文字でCGの表示ができます。 
# 
#     5.上記機能をスクリプトからも実行できます。 
# 
#     6.コンフィグ項目で指定したボタンで、メッセージ枠を一時消去できます。 
# 
#     7.コンフィグ項目で指定したボタンで、自動改ページモードに移行できます。 
# 
#     8.シーンスキップに設定したゲームスイッチをオンにすると、コンフィグ 
#         項目で設定したボタンを押すことでスキップ先ラベルまでスキップできます。 
# 
# 
#   ◆使い方 
#     [url]http://hime.be/rgss3/sozai/message_manual.txt[/url] をご覧ください。 
# 
# 
#   提供者:睡工房 [url]http://hime.be/[/url] 
# 
#****************************************************************************** 
 
 
#============================================================================== 
# コンフィグ項目 
#============================================================================== 
module  SUI
module  MESSAGE
  # 左側・中央・右側に表示する立ち絵のX座標(絵の左上を基準とします) 
  LEFT_X    = 0       # 左側 
  CENTER_X  = 180     # 中央 
  RIGHT_X   = 360     # 右側 
 
  # 立ち絵の表示に使用するピクチャ番号 
  LEFT_PIC    = 5     # 左側 
  CENTER_PIC  = 6     # 中央 
  RIGHT_PIC   = 7     # 右側 
 
  # CGの表示に使用するピクチャ番号 
  CG_PIC      = 8 
 
  # メッセージウィンドウの消去に割り当てるボタンを設定 
  # Input::A の形式で指定 
  BTN_HIDE = :A 
 
  # シーンスキップのボタンを設定 
  # Input::X の形式で指定 
  BTN_RETURN = :X 
 
  # 自動改ページのボタンを設定 
  # Input::Y の形式で指定 
  BTN_AUTO_MODE = :Y 
 
  # 立ち絵の保存場所("Graphics/Pictures/"からの相対パスを指定") 
  #SURFACE_DIR = "Surface/" 
  SURFACE_DIR = "" 
 
  # CGファイルの保存場所("Graphics/Pictures/"からの相対パスを指定") 
  #CG_DIR = "CG/" 
  CG_DIR = "" 
 
  # ボイスファイルの保存場所 
  #VOICE_DIR = "Audio/SE/Voice/" 
  VOICE_DIR = "Audio/SE/" 
 
  # イベントスキップのフラグ(ゲームスイッチの番号指定) 
  # このゲームスイッチがオンの時、直近のスキップ先ラベルまでスキップします。 
  SW_SKIP_ON = 51 
 
  # イベントスキップ先として認識するラベル名 
  SKIP_LABEL = "イベントスキップ先" 
 
  # 自動改ページの待ち時間(フレーム数を指定) 
  # 左から「遅い」,「普通」,「速い」の順に設定します。 
  # ※オプション画面スクリプトが未導入の場合、「普通」のみ有効になります。 
  AUTO_WAIT = [ 180 , 120 , 60 ] 
end 
end 
#============================================================================== 
# 設定完了 
#============================================================================== 
 
 
 
class  Window_Message < Window_Base
  #-------------------------------------------------------------------------- 
  # ● オブジェクト初期化 
  #-------------------------------------------------------------------------- 
  alias  sui_message_initialize initialize
  def  initialize
    sui_message_initialize
    @hide_mode  = false           # ウィンドウ消去モード 
    @auto_mode  = false           # 自動改ページモード 
    @auto_count  = 0 
    create_auto_message
    SUI::MESSAGE::SKIP [ "skip" ]  = false 
  end 
  #-------------------------------------------------------------------------- 
  # ● 解放 
  #-------------------------------------------------------------------------- 
  alias  sui_message_dispose dispose
  def  dispose
    sui_message_dispose
    @auto_message .bitmap .dispose 
    @auto_message .dispose 
  end 
  #-------------------------------------------------------------------------- 
  # ● オートモードの通知メッセージ作成 
  #-------------------------------------------------------------------------- 
  def  create_auto_message
    @auto_message  = Sprite.new 
    @auto_message .x  = Graphics.width 
    @auto_message .y  = 3 
    @auto_message .bitmap  = Bitmap.new ( 140 , 15 ) 
    @auto_message .bitmap .font .size  = 15 
    @auto_message .bitmap .gradient_fill_rect ( 0 , 6 , 140 , 9 , Color.new ( 128 , 128 , 128 , 0 ) , Color.new ( 128 , 128 , 128 , 180 ) , true ) 
    @auto_message .bitmap .draw_text ( 0 , 0 , @auto_message .bitmap .width , 15 , "自動改ページモード" , 1 ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● フレーム更新 
  #-------------------------------------------------------------------------- 
  alias  sui_message_update update
  def  update
    if  @auto_mode  and  ( Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE )  || Input.trigger ?( :B )  || Input.trigger ?( :C ) ) 
      @auto_mode  = false 
      Input.update 
    end 
    @auto_message .x  += 10  if  !@auto_mode and  @auto_message .x  < Graphics.width 
    sui_message_update unless  update_hide_auto
  end 
  #-------------------------------------------------------------------------- 
  # ● 入力処理 
  #-------------------------------------------------------------------------- 
  def  update_hide_auto
    if  $game_message .choice ?
      return  update_hide( [ self , @choice_window ] ) 
    elsif  $game_message .num_input ?
      return  update_hide( [ self , @number_window ] ) 
    elsif  $game_message .item_choice ?
      return  update_hide( [ self , @item_window ] ) 
    else 
      return  update_hide( [ self ] )  unless  @pause_skip 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● ウィンドウ消去モードの更新 
  #-------------------------------------------------------------------------- 
  def  update_hide( windows) 
    if  @hide_mode 
      if  Input.trigger ?( :C )  or  Input.trigger ?( SUI::MESSAGE::BTN_HIDE ) 
        @hide_mode  = false 
        windows.each  do  |window|
          window.visible  = true 
        end 
      end 
      return  true 
    else 
      if  Input.trigger ?( SUI::MESSAGE::BTN_HIDE ) 
        @hide_mode  =true 
        windows.each  do  |window|
          window.visible  = false 
        end 
        return  true 
      end 
    return  false 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 入力待ち処理 ※再定義 
  #-------------------------------------------------------------------------- 
  def  input_pause
    self .pause  = true 
    wait( 10 ) 
    Fiber.yield  until  auto_mode || Input.trigger ?( :B )  || Input.trigger ?( :C ) 
    Input.update 
    self .pause  = false 
  end 
  #-------------------------------------------------------------------------- 
  # ● メッセージ自動送り&スキップ確認 
  #-------------------------------------------------------------------------- 
  def  auto_mode
    if  @auto_mode 
      @auto_count  = SUI::MESSAGE::AUTO_WAIT [ SUI::OPTION .auto_wait ]  if  @auto_count  == 0 
      @auto_count  -= 1 
      @auto_message .x  -= 10  if   @auto_message .x  > Graphics.width  - @auto_message .width 
      return  true  if  Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE ) 
      return  true  if  @auto_count  == 0 
      return  false 
    else 
      @auto_mode  = true  if  Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE ) 
      if  $game_switches [ SUI::MESSAGE::SW_SKIP_ON ]  && Input.trigger ?( SUI::MESSAGE::BTN_RETURN ) 
        SUI::MESSAGE::SKIP [ "skip" ]  = true 
        return  true 
      end 
      return  false 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 一文字出力後のウェイト 
  #-------------------------------------------------------------------------- 
  alias  sui_message_wait_for_one_character wait_for_one_character
  def  wait_for_one_character
    case  SUI::OPTION .message_speed 
    when  0 
      wait( 1 )  unless  @show_fast  or  @line_show_fast 
      @spd  = false 
    when  1 
      @spd  = false 
    when  2 
      @spd  = !@spd
    end 
    return  unless  @show_fast  or  @line_show_fast  or  !@spd
    sui_message_wait_for_one_character
  end 
  #-------------------------------------------------------------------------- 
  # ● 制御文字の処理 
  #     code : 制御文字の本体部分(「\C[1]」なら「C」) 
  #-------------------------------------------------------------------------- 
  alias  sui_process_escape_character process_escape_character
  def  process_escape_character( code, text, pos) 
    sui_process_escape_character( code, text, pos) 
    case  code
    when  'l' , 'c' , 'r' 
      text.sub !( /\[ ( .{ 1 ,8 } ) \] /, "" ) 
      if  $1  == "off" 
        Message.set_tone ( code, Tone.new ( -40 , -40 , -40 , 0 ) ) 
      elsif  $1  == "on" 
        Message.set_tone ( code, Tone.new ( 0 , 0 , 0 , 0 ) ) 
        for  i in  Message.get_array ( code) 
          Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
        end 
      elsif  $1  =="del" 
        Message.del_picture ( code) 
      else 
        Message.set_picture ( code, $1 ) 
        Message.set_tone ( code, Tone.new ( 0 , 0 , 0 , 0 ) ) 
        for  i in  Message.get_array ( code) 
          Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
        end 
      end 
      wait( 16 ) 
    when  's' 
        text.sub !( /\[ ( \w+) ( ,( \d+) ) ?( ,( \d+) ) ?\] /, "" ) 
        Audio.se_play ( "Audio/SE/#{$1}" , ( $3  ? $3 .to_i  : 100 ) , ( $5  ? $5 .to_i  : 100 ) ) 
    when  'v' 
        text.sub !( /\[ ( [ 0 -9a-zA-Z_\/] +) \] /, "" ) 
        Message.play_voice ( $1 ) 
    when  'p' 
      text.sub !( /\[ ( .+) \] /, "" ) 
      if  $1  == "del" 
        Message.del_cg 
      else 
        Message.set_cg ( $1 ) 
      end 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 指定の位置を除いた配列を取得 
  #-------------------------------------------------------------------------- 
  def  self .get_array ( pos) 
    tmp = [ "l" , "c" , "r" ] 
    tmp.delete ( pos) 
    return  tmp
  end 
  #-------------------------------------------------------------------------- 
  # ● CGの表示 
  #-------------------------------------------------------------------------- 
  def  self .set_cg ( file) 
    name = SUI::MESSAGE::CG_DIR  + file
    zoom_x = 100.0 
    zoom_y = 100.0 
    opacity = 255.0 
    blend_type = 0 
    origin = 0 
    x = 0 
    y = 0 
    $game_map .screen .pictures [ SUI::MESSAGE::CG_PIC ] .show ( name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 
  end 
  #-------------------------------------------------------------------------- 
  # ● CGの消去 
  #-------------------------------------------------------------------------- 
  def  self .del_cg 
    $game_map .screen .pictures [ SUI::MESSAGE::CG_PIC ] .erase 
  end 
  #-------------------------------------------------------------------------- 
  # ● 立ち絵の表示 
  #-------------------------------------------------------------------------- 
  def  self .set_picture ( pos, file, flg = true ) 
    name = SUI::MESSAGE::SURFACE_DIR  + file
    zoom_x = 100.0 
    zoom_y = 100.0 
    opacity = 255.0 
    blend_type = 0 
    origin = 0 
    y = 0 
    if  pos == "l" 
      x = SUI::MESSAGE::LEFT_X 
      p  = SUI::MESSAGE::LEFT_PIC 
    elsif  pos == "c" 
      x = SUI::MESSAGE::CENTER_X 
      p  = SUI::MESSAGE::CENTER_PIC 
    elsif  pos == "r" 
      x = SUI::MESSAGE::RIGHT_X 
      p  = SUI::MESSAGE::RIGHT_PIC 
    end 
    $game_map .screen .pictures [ p ] .show ( name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 
    set_tone( pos, Tone.new ( -40 , -40 , -40 , 0 ) )  unless  flg
  end 
  #-------------------------------------------------------------------------- 
  # ● 立ち絵の消去 
  #-------------------------------------------------------------------------- 
  def  self .del_picture ( pos) 
    if  pos == "l" 
      p  = SUI::MESSAGE::LEFT_PIC 
    elsif  pos == "c" 
      p  = SUI::MESSAGE::CENTER_PIC 
    elsif  pos == "r" 
      p  = SUI::MESSAGE::RIGHT_PIC 
    end 
    $game_map .screen .pictures [ p ] .erase 
  end 
  #-------------------------------------------------------------------------- 
  # ● トーンの設定 
  #-------------------------------------------------------------------------- 
  def  self .set_tone ( pos, tone) 
    if  pos == "l" 
      p  = SUI::MESSAGE::LEFT_PIC 
    elsif  pos == "c" 
      p  = SUI::MESSAGE::CENTER_PIC 
    elsif  pos == "r" 
      p  = SUI::MESSAGE::RIGHT_PIC 
    end 
    $game_map .screen .pictures [ p ] .start_tone_change ( tone, 0 ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● ボイスの再生 
  #-------------------------------------------------------------------------- 
  def  self .play_voice ( file) 
    unless  $savec .check ( "voice" ) 
      Audio.se_stop 
      vol = SUI::OPTION .voice_volume 
      Audio.se_play ( "#{SUI::MESSAGE::VOICE_DIR}#{file}" , 100  * vol, 100 ) 
    end 
  end 
end 
Message = Window_Message
 
 
module  SuiScript
  #-------------------------------------------------------------------------- 
  # ● CGの表示 
  #-------------------------------------------------------------------------- 
  def  self .set_cg ( file) 
    if  file == "del" 
      Message.del_cg 
    else 
      Message.set_cg ( file) 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 立ち絵の表示 
  #-------------------------------------------------------------------------- 
  def  self .set_picture ( pos, file, flg = true ) 
    if  file == "off" 
      Message.set_tone ( pos, Tone.new ( -40 , -40 , -40 , 0 ) ) 
    elsif  file == "on" 
      Message.set_tone ( pos, Tone.new ( 0 , 0 , 0 , 0 ) ) 
      for  i in  Message.get_array ( pos) 
        Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
      end 
    elsif  file =="del" 
      Message.del_picture ( pos) 
    else 
      Message.set_picture ( pos, file, flg) 
      return  unless  flg
      Message.set_tone ( pos, Tone.new ( 0 , 0 , 0 , 0 ) ) 
      for  i in  Message.get_array ( pos) 
        Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
      end 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● SEの再生 
  #-------------------------------------------------------------------------- 
  def  self .play_se ( file, vol = 100 , pitch = 100 ) 
    Audio.se_play ( "Audio/SE/#{file}" , vol, pitch) 
  end 
  #-------------------------------------------------------------------------- 
  # ● ボイスの再生 
  #-------------------------------------------------------------------------- 
  def  self .play_voice ( file) 
    Message.play_voice ( file) 
  end 
end 
 
 
class  Game_Interpreter
  #-------------------------------------------------------------------------- 
  # ● イベントコマンドの実行 
  #-------------------------------------------------------------------------- 
  alias  sui_interpreter_execute_command execute_command
  def  execute_command
    if  SUI::MESSAGE::SKIP [ "skip" ] 
      SUI::MESSAGE::SKIP [ "skip" ]  = false 
      $game_switches [ SUI::MESSAGE::SW_SKIP_ON ]  = false 
      return  if  label_jump
    end 
    sui_interpreter_execute_command
  end 
  #-------------------------------------------------------------------------- 
  # ● ラベルジャンプ 
  #-------------------------------------------------------------------------- 
  def  label_jump
    label_name = SUI::MESSAGE::SKIP_LABEL 
    @list .size .times  do  |i|
      if  @list [ i] .code  == 118  && @list [ i] .parameters [ 0 ]  == label_name
        @index  = i
        return  true 
      end 
    end 
    return  false 
  end 
end 
 
 
module  SUI::MESSAGE 
  SKIP = { } 
end 
 
 
module  SUI::OPTION 
  def  self .bgm_volume 
    vol = $savec .get_num ( "bgm_vol" ) 
    vol = 70  if  vol < 10 
    vol /=  100.0 
    return  vol
  end 
  def  self .se_volume 
    vol = $savec .get_num ( "se_vol" ) 
    vol = 70  if  vol < 10 
    vol /=  100.0 
    return  vol
  end 
  def  self .voice_volume 
    vol = $savec .get_num ( "voice_vol" ) 
    vol = 70  if  vol < 10 
    vol /= 100.0 
    return  vol
  end 
  def  self .message_speed 
    spd = $savec .get_num ( "speed" ) 
    spd = 1  if  spd == -1 
    return  spd
  end 
  def  self .auto_wait 
    spd = $savec .get_num ( "auto_wait" ) 
    spd = 1  if  spd == -1 
    return  spd
  end 
end 
#****************************************************************************** 
 
# 
 
#   * メッセージ機能拡張 * 
 
# 
 
#                       for RGSS3 
 
# 
 
#        Ver 1.00   2012.09.16 
 
#        Ver 1.01   2014.01.06  自動モードの不具合修正 
 
# 
 
#   ◆注意事項 
 
#     ※この素材は「共通セーブファイル」スクリプトが必要になります。 
 
# 
 
# 
 
#   ◆機能説明 
 
# 
 
#     1.追加された制御文字で、立ち絵を左・中央・右に表示できます。 
 
# 
 
#     2.追加された制御文字で、音声を再生できます。 
 
# 
 
#     3.追加された制御文字で、SEを再生できます。 
 
# 
 
#     4.追加された制御文字でCGの表示ができます。 
 
# 
 
#     5.上記機能をスクリプトからも実行できます。 
 
# 
 
#     6.コンフィグ項目で指定したボタンで、メッセージ枠を一時消去できます。 
 
# 
 
#     7.コンフィグ項目で指定したボタンで、自動改ページモードに移行できます。 
 
# 
 
#     8.シーンスキップに設定したゲームスイッチをオンにすると、コンフィグ 
 
#         項目で設定したボタンを押すことでスキップ先ラベルまでスキップできます。 
 
# 
 
# 
 
#   ◆使い方 
 
#     [url]http://hime.be/rgss3/sozai/message_manual.txt[/url] をご覧ください。 
 
# 
 
# 
 
#   提供者:睡工房 [url]http://hime.be/[/url] 
 
# 
 
#****************************************************************************** 
 
 
 
 
 
#============================================================================== 
 
# コンフィグ項目 
 
#============================================================================== 
 
module  SUI
 
module  MESSAGE
 
  # 左側・中央・右側に表示する立ち絵のX座標(絵の左上を基準とします) 
 
  LEFT_X    = 0       # 左側 
 
  CENTER_X  = 180     # 中央 
 
  RIGHT_X   = 360     # 右側 
 
 
 
  # 立ち絵の表示に使用するピクチャ番号 
 
  LEFT_PIC    = 5     # 左側 
 
  CENTER_PIC  = 6     # 中央 
 
  RIGHT_PIC   = 7     # 右側 
 
 
 
  # CGの表示に使用するピクチャ番号 
 
  CG_PIC      = 8 
 
 
 
  # メッセージウィンドウの消去に割り当てるボタンを設定 
 
  # Input::A の形式で指定 
 
  BTN_HIDE = :A 
 
 
 
  # シーンスキップのボタンを設定 
 
  # Input::X の形式で指定 
 
  BTN_RETURN = :X 
 
 
 
  # 自動改ページのボタンを設定 
 
  # Input::Y の形式で指定 
 
  BTN_AUTO_MODE = :Y 
 
 
 
  # 立ち絵の保存場所("Graphics/Pictures/"からの相対パスを指定") 
 
  #SURFACE_DIR = "Surface/" 
 
  SURFACE_DIR = "" 
 
 
 
  # CGファイルの保存場所("Graphics/Pictures/"からの相対パスを指定") 
 
  #CG_DIR = "CG/" 
 
  CG_DIR = "" 
 
 
 
  # ボイスファイルの保存場所 
 
  #VOICE_DIR = "Audio/SE/Voice/" 
 
  VOICE_DIR = "Audio/SE/" 
 
 
 
  # イベントスキップのフラグ(ゲームスイッチの番号指定) 
 
  # このゲームスイッチがオンの時、直近のスキップ先ラベルまでスキップします。 
 
  SW_SKIP_ON = 51 
 
 
 
  # イベントスキップ先として認識するラベル名 
 
  SKIP_LABEL = "イベントスキップ先" 
 
 
 
  # 自動改ページの待ち時間(フレーム数を指定) 
 
  # 左から「遅い」,「普通」,「速い」の順に設定します。 
 
  # ※オプション画面スクリプトが未導入の場合、「普通」のみ有効になります。 
 
  AUTO_WAIT = [ 180 , 120 , 60 ] 
 
end 
 
end 
 
#============================================================================== 
 
# 設定完了 
 
#============================================================================== 
 
 
 
 
 
 
 
class  Window_Message < Window_Base
 
  #-------------------------------------------------------------------------- 
 
  # ● オブジェクト初期化 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_message_initialize initialize
 
  def  initialize
 
    sui_message_initialize
 
    @hide_mode  = false           # ウィンドウ消去モード 
 
    @auto_mode  = false           # 自動改ページモード 
 
    @auto_count  = 0 
 
    create_auto_message
 
    SUI::MESSAGE::SKIP [ "skip" ]  = false 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 解放 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_message_dispose dispose
 
  def  dispose
 
    sui_message_dispose
 
    @auto_message .bitmap .dispose 
 
    @auto_message .dispose 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● オートモードの通知メッセージ作成 
 
  #-------------------------------------------------------------------------- 
 
  def  create_auto_message
 
    @auto_message  = Sprite.new 
 
    @auto_message .x  = Graphics.width 
 
    @auto_message .y  = 3 
 
    @auto_message .bitmap  = Bitmap.new ( 140 , 15 ) 
 
    @auto_message .bitmap .font .size  = 15 
 
    @auto_message .bitmap .gradient_fill_rect ( 0 , 6 , 140 , 9 , Color.new ( 128 , 128 , 128 , 0 ) , Color.new ( 128 , 128 , 128 , 180 ) , true ) 
 
    @auto_message .bitmap .draw_text ( 0 , 0 , @auto_message .bitmap .width , 15 , "自動改ページモード" , 1 ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● フレーム更新 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_message_update update
 
  def  update
 
    if  @auto_mode  and  ( Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE )  || Input.trigger ?( :B )  || Input.trigger ?( :C ) ) 
 
      @auto_mode  = false 
 
      Input.update 
 
    end 
 
    @auto_message .x  += 10  if  !@auto_mode and  @auto_message .x  < Graphics.width 
 
    sui_message_update unless  update_hide_auto
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 入力処理 
 
  #-------------------------------------------------------------------------- 
 
  def  update_hide_auto
 
    if  $game_message .choice ?
 
      return  update_hide( [ self , @choice_window ] ) 
 
    elsif  $game_message .num_input ?
 
      return  update_hide( [ self , @number_window ] ) 
 
    elsif  $game_message .item_choice ?
 
      return  update_hide( [ self , @item_window ] ) 
 
    else 
 
      return  update_hide( [ self ] )  unless  @pause_skip 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ウィンドウ消去モードの更新 
 
  #-------------------------------------------------------------------------- 
 
  def  update_hide( windows) 
 
    if  @hide_mode 
 
      if  Input.trigger ?( :C )  or  Input.trigger ?( SUI::MESSAGE::BTN_HIDE ) 
 
        @hide_mode  = false 
 
        windows.each  do  |window|
 
          window.visible  = true 
 
        end 
 
      end 
 
      return  true 
 
    else 
 
      if  Input.trigger ?( SUI::MESSAGE::BTN_HIDE ) 
 
        @hide_mode  =true 
 
        windows.each  do  |window|
 
          window.visible  = false 
 
        end 
 
        return  true 
 
      end 
 
    return  false 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 入力待ち処理 ※再定義 
 
  #-------------------------------------------------------------------------- 
 
  def  input_pause
 
    self .pause  = true 
 
    wait( 10 ) 
 
    Fiber.yield  until  auto_mode || Input.trigger ?( :B )  || Input.trigger ?( :C ) 
 
    Input.update 
 
    self .pause  = false 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● メッセージ自動送り&スキップ確認 
 
  #-------------------------------------------------------------------------- 
 
  def  auto_mode
 
    if  @auto_mode 
 
      @auto_count  = SUI::MESSAGE::AUTO_WAIT [ SUI::OPTION .auto_wait ]  if  @auto_count  == 0 
 
      @auto_count  -= 1 
 
      @auto_message .x  -= 10  if   @auto_message .x  > Graphics.width  - @auto_message .width 
 
      return  true  if  Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE ) 
 
      return  true  if  @auto_count  == 0 
 
      return  false 
 
    else 
 
      @auto_mode  = true  if  Input::trigger?( SUI::MESSAGE::BTN_AUTO_MODE ) 
 
      if  $game_switches [ SUI::MESSAGE::SW_SKIP_ON ]  && Input.trigger ?( SUI::MESSAGE::BTN_RETURN ) 
 
        SUI::MESSAGE::SKIP [ "skip" ]  = true 
 
        return  true 
 
      end 
 
      return  false 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 一文字出力後のウェイト 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_message_wait_for_one_character wait_for_one_character
 
  def  wait_for_one_character
 
    case  SUI::OPTION .message_speed 
 
    when  0 
 
      wait( 1 )  unless  @show_fast  or  @line_show_fast 
 
      @spd  = false 
 
    when  1 
 
      @spd  = false 
 
    when  2 
 
      @spd  = !@spd
 
    end 
 
    return  unless  @show_fast  or  @line_show_fast  or  !@spd
 
    sui_message_wait_for_one_character
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 制御文字の処理 
 
  #     code : 制御文字の本体部分(「\C[1]」なら「C」) 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_process_escape_character process_escape_character
 
  def  process_escape_character( code, text, pos) 
 
    sui_process_escape_character( code, text, pos) 
 
    case  code
 
    when  'l' , 'c' , 'r' 
 
      text.sub !( /\[ ( .{ 1 ,8 } ) \] /, "" ) 
 
      if  $1  == "off" 
 
        Message.set_tone ( code, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
      elsif  $1  == "on" 
 
        Message.set_tone ( code, Tone.new ( 0 , 0 , 0 , 0 ) ) 
 
        for  i in  Message.get_array ( code) 
 
          Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
        end 
 
      elsif  $1  =="del" 
 
        Message.del_picture ( code) 
 
      else 
 
        Message.set_picture ( code, $1 ) 
 
        Message.set_tone ( code, Tone.new ( 0 , 0 , 0 , 0 ) ) 
 
        for  i in  Message.get_array ( code) 
 
          Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
        end 
 
      end 
 
      wait( 16 ) 
 
    when  's' 
 
        text.sub !( /\[ ( \w+) ( ,( \d+) ) ?( ,( \d+) ) ?\] /, "" ) 
 
        Audio.se_play ( "Audio/SE/#{$1}" , ( $3  ? $3 .to_i  : 100 ) , ( $5  ? $5 .to_i  : 100 ) ) 
 
    when  'v' 
 
        text.sub !( /\[ ( [ 0 -9a-zA-Z_\/] +) \] /, "" ) 
 
        Message.play_voice ( $1 ) 
 
    when  'p' 
 
      text.sub !( /\[ ( .+) \] /, "" ) 
 
      if  $1  == "del" 
 
        Message.del_cg 
 
      else 
 
        Message.set_cg ( $1 ) 
 
      end 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 指定の位置を除いた配列を取得 
 
  #-------------------------------------------------------------------------- 
 
  def  self .get_array ( pos) 
 
    tmp = [ "l" , "c" , "r" ] 
 
    tmp.delete ( pos) 
 
    return  tmp
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● CGの表示 
 
  #-------------------------------------------------------------------------- 
 
  def  self .set_cg ( file) 
 
    name = SUI::MESSAGE::CG_DIR  + file
 
    zoom_x = 100.0 
 
    zoom_y = 100.0 
 
    opacity = 255.0 
 
    blend_type = 0 
 
    origin = 0 
 
    x = 0 
 
    y = 0 
 
    $game_map .screen .pictures [ SUI::MESSAGE::CG_PIC ] .show ( name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● CGの消去 
 
  #-------------------------------------------------------------------------- 
 
  def  self .del_cg 
 
    $game_map .screen .pictures [ SUI::MESSAGE::CG_PIC ] .erase 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 立ち絵の表示 
 
  #-------------------------------------------------------------------------- 
 
  def  self .set_picture ( pos, file, flg = true ) 
 
    name = SUI::MESSAGE::SURFACE_DIR  + file
 
    zoom_x = 100.0 
 
    zoom_y = 100.0 
 
    opacity = 255.0 
 
    blend_type = 0 
 
    origin = 0 
 
    y = 0 
 
    if  pos == "l" 
 
      x = SUI::MESSAGE::LEFT_X 
 
      p  = SUI::MESSAGE::LEFT_PIC 
 
    elsif  pos == "c" 
 
      x = SUI::MESSAGE::CENTER_X 
 
      p  = SUI::MESSAGE::CENTER_PIC 
 
    elsif  pos == "r" 
 
      x = SUI::MESSAGE::RIGHT_X 
 
      p  = SUI::MESSAGE::RIGHT_PIC 
 
    end 
 
    $game_map .screen .pictures [ p ] .show ( name, origin, x, y, zoom_x, zoom_y, opacity, blend_type) 
 
    set_tone( pos, Tone.new ( -40 , -40 , -40 , 0 ) )  unless  flg
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 立ち絵の消去 
 
  #-------------------------------------------------------------------------- 
 
  def  self .del_picture ( pos) 
 
    if  pos == "l" 
 
      p  = SUI::MESSAGE::LEFT_PIC 
 
    elsif  pos == "c" 
 
      p  = SUI::MESSAGE::CENTER_PIC 
 
    elsif  pos == "r" 
 
      p  = SUI::MESSAGE::RIGHT_PIC 
 
    end 
 
    $game_map .screen .pictures [ p ] .erase 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● トーンの設定 
 
  #-------------------------------------------------------------------------- 
 
  def  self .set_tone ( pos, tone) 
 
    if  pos == "l" 
 
      p  = SUI::MESSAGE::LEFT_PIC 
 
    elsif  pos == "c" 
 
      p  = SUI::MESSAGE::CENTER_PIC 
 
    elsif  pos == "r" 
 
      p  = SUI::MESSAGE::RIGHT_PIC 
 
    end 
 
    $game_map .screen .pictures [ p ] .start_tone_change ( tone, 0 ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ボイスの再生 
 
  #-------------------------------------------------------------------------- 
 
  def  self .play_voice ( file) 
 
    unless  $savec .check ( "voice" ) 
 
      Audio.se_stop 
 
      vol = SUI::OPTION .voice_volume 
 
      Audio.se_play ( "#{SUI::MESSAGE::VOICE_DIR}#{file}" , 100  * vol, 100 ) 
 
    end 
 
  end 
 
end 
 
Message = Window_Message
 
 
 
 
 
module  SuiScript
 
  #-------------------------------------------------------------------------- 
 
  # ● CGの表示 
 
  #-------------------------------------------------------------------------- 
 
  def  self .set_cg ( file) 
 
    if  file == "del" 
 
      Message.del_cg 
 
    else 
 
      Message.set_cg ( file) 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 立ち絵の表示 
 
  #-------------------------------------------------------------------------- 
 
  def  self .set_picture ( pos, file, flg = true ) 
 
    if  file == "off" 
 
      Message.set_tone ( pos, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
    elsif  file == "on" 
 
      Message.set_tone ( pos, Tone.new ( 0 , 0 , 0 , 0 ) ) 
 
      for  i in  Message.get_array ( pos) 
 
        Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
      end 
 
    elsif  file =="del" 
 
      Message.del_picture ( pos) 
 
    else 
 
      Message.set_picture ( pos, file, flg) 
 
      return  unless  flg
 
      Message.set_tone ( pos, Tone.new ( 0 , 0 , 0 , 0 ) ) 
 
      for  i in  Message.get_array ( pos) 
 
        Message.set_tone ( i, Tone.new ( -40 , -40 , -40 , 0 ) ) 
 
      end 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● SEの再生 
 
  #-------------------------------------------------------------------------- 
 
  def  self .play_se ( file, vol = 100 , pitch = 100 ) 
 
    Audio.se_play ( "Audio/SE/#{file}" , vol, pitch) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ボイスの再生 
 
  #-------------------------------------------------------------------------- 
 
  def  self .play_voice ( file) 
 
    Message.play_voice ( file) 
 
  end 
 
end 
 
 
 
 
 
class  Game_Interpreter
 
  #-------------------------------------------------------------------------- 
 
  # ● イベントコマンドの実行 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_interpreter_execute_command execute_command
 
  def  execute_command
 
    if  SUI::MESSAGE::SKIP [ "skip" ] 
 
      SUI::MESSAGE::SKIP [ "skip" ]  = false 
 
      $game_switches [ SUI::MESSAGE::SW_SKIP_ON ]  = false 
 
      return  if  label_jump
 
    end 
 
    sui_interpreter_execute_command
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● ラベルジャンプ 
 
  #-------------------------------------------------------------------------- 
 
  def  label_jump
 
    label_name = SUI::MESSAGE::SKIP_LABEL 
 
    @list .size .times  do  |i|
 
      if  @list [ i] .code  == 118  && @list [ i] .parameters [ 0 ]  == label_name
 
        @index  = i
 
        return  true 
 
      end 
 
    end 
 
    return  false 
 
  end 
 
end 
 
 
 
 
 
module  SUI::MESSAGE 
 
  SKIP = { } 
 
end 
 
 
 
 
 
module  SUI::OPTION 
 
  def  self .bgm_volume 
 
    vol = $savec .get_num ( "bgm_vol" ) 
 
    vol = 70  if  vol < 10 
 
    vol /=  100.0 
 
    return  vol
 
  end 
 
  def  self .se_volume 
 
    vol = $savec .get_num ( "se_vol" ) 
 
    vol = 70  if  vol < 10 
 
    vol /=  100.0 
 
    return  vol
 
  end 
 
  def  self .voice_volume 
 
    vol = $savec .get_num ( "voice_vol" ) 
 
    vol = 70  if  vol < 10 
 
    vol /= 100.0 
 
    return  vol
 
  end 
 
  def  self .message_speed 
 
    spd = $savec .get_num ( "speed" ) 
 
    spd = 1  if  spd == -1 
 
    return  spd
 
  end 
 
  def  self .auto_wait 
 
    spd = $savec .get_num ( "auto_wait" ) 
 
    spd = 1  if  spd == -1 
 
    return  spd
 
  end 
 
end 
 
 
 
 
オプション画面 
 
#****************************************************************************** 
# 
#   * オプション画面 * 
# 
#                       for RGSS3 
# 
#        Ver 1.01   2014.07.13 
# 
#   ◆注意事項 
#     ※この素材は「共通セーブファイル」スクリプトが必要になります。 
#     ※この素材は睡工房の素材をカスタマイズするものです。 
#      メッセージ機能拡張スクリプトを導入しない場合、機能2~5は無効となります。 
# 
# 
#   ◆機能説明 
# 
#     1.BGMの再生ボリュームを変更できます。 
# 
#     2.ボイスの再生ボリュームを変更できます。 
# 
#     3.ボイス再生のオン/オフ切り替えができます。 
# 
#     4.文字表示速度の変更ができます。 
# 
#     5.自動改ページの待ち時間を変更できます。 
# 
# 
#   ◆使い方 
#     スクリプトで「Scene_Option.start」を実行すると、 
#     オプション画面が開きます。 
# 
#     メニュー画面をカスタマイズしたい場合は、以下のURLを参考にしてください。 
#     [url]http://hime.be/rgss3/option.html[/url] 
# 
# 
#   提供者:睡工房 [url]http://hime.be/[/url] 
# 
#****************************************************************************** 
 
 
#============================================================================== 
# コンフィグ項目 
#============================================================================== 
module  SUI
module  OPTION
  # ボイス再生ボリューム変更時のサンプルボイス 
  # 指定したボイスからランダムで1つ、新しいボリュームで再生されます。 
  # サンプルボイスがいらない場合は空にしてください。 
  SAMPLE = [ 
  #ファイル名 
#  "sample_voice01", 
#  "sample_voice02", 
   "Cat" ,
   "Crow" ,
   "Dog" ,
  ] 
 
  # ボイスファイルの保存場所 
  #VOICE_DIR = "Audio/SE/Voice/" 
  VOICE_DIR = "Audio/SE/" 
end 
end 
#============================================================================== 
# 設定完了 
#============================================================================== 
 
 
 
class  Window_Option < Window_Base
  #-------------------------------------------------------------------------- 
  # ● オブジェクト初期化 
  #-------------------------------------------------------------------------- 
  def  initialize
    super ( 0 , 0 , 430 , 330 ) 
    self .openness  = 0 
    self .x  = Graphics.width  / 2  - self .width  / 2 
    self .y  = Graphics.height  / 2  - self .height  / 2  + line_height / 2  + padding
    self .z  = 160 
    [ url=home.php ?mod=space&uid=401263 ] @line[ /url]  = 0 
    set_index
    refresh
    update_cursor
  end 
  #-------------------------------------------------------------------------- 
  # ● リフレッシュ 
  #-------------------------------------------------------------------------- 
  def  refresh
    self .contents .clear 
    contents.font .color  = normal_color
    contents.draw_text ( 0 , 0  * rows_height, contents.width , line_height, "音樂" ) 
    contents.draw_text ( 0 , 1  * rows_height, contents.width , line_height, "聲音" ) 
    contents.draw_text ( 0 , 2  * rows_height, contents.width , line_height, "音效" ) 
    #contents.draw_text(0, 2 * rows_height, contents.width, line_height, "キャラクターボイス") 
    contents.draw_text ( 0 , 3  * rows_height, contents.width , line_height, "文字" ) 
    contents.draw_text ( 0 , 4  * rows_height, contents.width , line_height, "自動模式" ) 
    draw_command_10( 0 ) 
    draw_command_10( 1 ) 
    draw_command_10( 2 ) 
    #draw_command_2(2) 
    draw_command_3( 3 ) 
    draw_command_3( 4 ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● 行の高さ(2行分) 
  #-------------------------------------------------------------------------- 
  def  rows_height
    60 
  end 
  #-------------------------------------------------------------------------- 
  # ● 文字の描画 
  #-------------------------------------------------------------------------- 
  def  draw_text2( x, y, w, text, blue = false ) 
    contents.font .color  = blue ? system_color : normal_color
    contents.font .color .alpha  = blue ? 255  : 128 
    draw_text( x, y, w, line_height, text) 
  end 
  #-------------------------------------------------------------------------- 
  # ● 10コマンドの描画 
  #-------------------------------------------------------------------------- 
  def  draw_command_10( row) 
    y = rows_height * row + line_height
    10 .times  do  |i|
      x = 30  + 36  * i - ( ( i == 9 )  ? 2  : 0 ) 
      draw_text2( x, y, 30 , ( ( i + 1 )  * 10 ) .to_s , ( i == @index [ row] ) ) 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 10コマンドの矩形を取得 
  #-------------------------------------------------------------------------- 
  def  item_rect_10
    rect = Rect.new 
    rect.x  = 30  - 9  + 36  * @index [ @line] 
    rect.y  = rows_height * @line  + line_height
    rect.width  = 30  + 8 
    rect.height  = line_height
    rect
  end 
  #-------------------------------------------------------------------------- 
  # ● 2コマンドの描画 
  #-------------------------------------------------------------------------- 
  def  draw_command_2( row) 
    y = rows_height * row + line_height
    list = [ "オン" , "オフ" ] 
    2 .times  do  |i|
      x = 30  + 100  * i
      draw_text2( x, y, 40 , list[ i] , ( i == @index [ row] ) ) 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 2コマンドの矩形を取得 
  #-------------------------------------------------------------------------- 
  def  item_rect_2
    rect = Rect.new 
    rect.x  = 30  - 11 + 100  * @index [ @line] 
    rect.y  = rows_height * @line  + line_height
    rect.width  = 50  + 8 
    rect.height  = line_height
    rect
  end 
  #-------------------------------------------------------------------------- 
  # ● 3コマンドの描画 
  #-------------------------------------------------------------------------- 
  def  draw_command_3( row) 
    y = rows_height * row + line_height
    list = [ "慢" , "普通" , "快" ] 
    3 .times  do  |i|
      x = 30  + 80  * i
      draw_text2( x, y, 40 , list[ i] , ( i == @index [ row] ) ) 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● 3コマンドの矩形を取得 
  #-------------------------------------------------------------------------- 
  def  item_rect_3
    rect = Rect.new 
    rect.x  = 30  - 11  + 80  * @index [ @line] 
    rect.y  = rows_height * @line  + line_height
    rect.width  = 50  + 8 
    rect.height  = line_height
    rect
  end 
  #-------------------------------------------------------------------------- 
  # ● カーソルの更新 
  #-------------------------------------------------------------------------- 
  def  update_cursor
    case  @line 
      when  0 , 1 , 2 
        cursor_rect.set ( item_rect_10) 
      #when 2 
        #cursor_rect.set(item_rect_2) 
      when  3 , 4 
        cursor_rect.set ( item_rect_3) 
      end 
      Sound.play_cursor 
  end 
  #-------------------------------------------------------------------------- 
  # ● 行の設定 
  #-------------------------------------------------------------------------- 
  def  line=( row) 
    old = @line 
    @line  = [ [ @line + row, 0 ] .max , 4 ] .min 
    update_cursor if  old != @line 
  end 
  #-------------------------------------------------------------------------- 
  # ● 行の設定 
  #-------------------------------------------------------------------------- 
  def  index=( i) 
    max = 9  if (  @line  == 0  || @line  == 1  || @line  == 2 ) 
    #max = 1 if( @line == 2) 
    max = 2  if (  @line  == 3  || @line  == 4 ) 
    old = @index [ @line] 
    @index [ @line]  = [ [ @index[ @line]  + i, 0 ] .max , max] .min 
    update_cursor if  old != @index [ @line] 
  end 
  #-------------------------------------------------------------------------- 
  # ● フレーム更新 
  #-------------------------------------------------------------------------- 
  def  update
    super 
    return  unless  self .openness  == 255 
    self .line  = +1  if  Input.repeat ?( :DOWN ) 
    self .line  = -1  if  Input.repeat ?( :UP ) 
    self .index  = +1  if  Input.repeat ?( :RIGHT ) 
    self .index  = -1  if  Input.repeat ?( :LEFT ) 
    if  Input.trigger ?( :C ) 
      Sound.play_use_item 
      case  @line 
        when  0 
          $savec .set_num ( "bgm_vol" , ( @index[ @line]  + 1 )  * 10 ) 
          refresh
          RPG::BGM ::last.play 
        when  1 
          $savec .set_num ( "voice_vol" , ( @index[ @line]  + 1 )  * 10 ) 
          refresh
          Audio.se_stop 
          vol = SUI::OPTION .voice_volume 
          return  if  SUI::OPTION::SAMPLE .length  == 0 
          r = SUI::OPTION::SAMPLE [ rand ( SUI::OPTION::SAMPLE .length ) ] 
          Audio.se_play ( "#{SUI::OPTION::VOICE_DIR}#{r}" , 100  * vol) 
        when  2 
          #$savec.set("voice", @index[@line] == 1) 
          #refresh 
          $savec .set_num ( "se_vol" , ( @index[ @line]  + 1 )  * 10 ) 
          refresh
          Audio.se_stop 
          RPG::SE ::last.play 
        when  3 
          $savec .set_num ( "speed" , @index [ @line] ) 
          refresh
        when  4 
          $savec .set_num ( "auto_wait" , @index [ @line] ) 
          refresh
        end 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● アクティブ設定 
  #-------------------------------------------------------------------------- 
  def  set_index
    @index  = [ ] 
 
    res = $savec .get_num ( "bgm_vol" ) 
    res = 70  if  res < 10 
    @index [ 0 ]  = ( res / 10 )  - 1 
 
    res = $savec .get_num ( "voice_vol" ) 
    res = 70  if  res < 10 
    @index [ 1 ]  = ( res / 10 )  - 1 
 
    res = $savec .get_num ( "se_vol" ) 
    res = 70  if  res < 10 
    @index [ 2 ]  = ( res / 10 )  - 1 
    #@index[2] = $savec.check("voice") ? 1 : 0 
 
    @index [ 3 ]  = $savec .get_num ( "speed" ) 
    @index [ 3 ]  = 1  if  @index [ 3 ]  == -1 
 
    @index [ 4 ]  = $savec .get_num ( "auto_wait" ) 
    @index [ 4 ]  = 1  if  @index [ 4 ]  == -1 
  end 
end 
 
 
class  Scene_Option < Scene_Base
  #-------------------------------------------------------------------------- 
  # ● クラス変数初期化 
  #-------------------------------------------------------------------------- 
  @@start  = false          # オプション画面の開始フラグ 
  #-------------------------------------------------------------------------- 
  # ● 開始処理 
  #-------------------------------------------------------------------------- 
  def  start
    super 
    @@start = false 
    @config_seq  = 0 
    create_background
    create_option_window
    @option_window .open 
    @option_title .open 
  end 
  #-------------------------------------------------------------------------- 
  # ● 終了処理 
  #-------------------------------------------------------------------------- 
  def  terminate
    super 
    dispose_background
  end 
  #-------------------------------------------------------------------------- 
  # ● オプションウィンドウの作成 
  #-------------------------------------------------------------------------- 
  def  create_option_window
    @option_window  = Window_Option.new 
    @option_title  = Window_Help.new ( 1 ) 
    @option_title .x  = @option_window .x 
    @option_title .width  = @option_window .width 
    @option_title .y  = @option_window .y  - @option_title .height 
    @option_title .z  = @option_window .z 
    @option_title .create_contents 
    @option_title .openness  = 0 
    @option_title .contents .draw_text ( 0 , -2 , @option_title .contents .width ,@option_title.contents .height , "* 系統設定 *" , 1 ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● 背景の作成 
  #-------------------------------------------------------------------------- 
  def  create_background
    @background_sprite  = Sprite.new 
    @background_sprite .bitmap  = SceneManager.background_bitmap 
    @background_sprite .color .set ( 16 , 16 , 16 , 128 ) 
  end 
  #-------------------------------------------------------------------------- 
  # ● 背景の解放 
  #-------------------------------------------------------------------------- 
  def  dispose_background
    @background_sprite .dispose 
  end 
  #-------------------------------------------------------------------------- 
  # ● 更新処理 
  #-------------------------------------------------------------------------- 
  def  update
    super 
    if  Input.trigger ?( :B ) 
      Sound.play_cancel 
      @option_window .close 
      @option_title .close 
    end 
    if  @option_window .openness  == 0 
      SceneManager.return 
    end 
  end 
  #-------------------------------------------------------------------------- 
  # ● オプション画面スタート処理 
  #-------------------------------------------------------------------------- 
  def  self .start 
    @@start = true 
  end 
  #-------------------------------------------------------------------------- 
  # ● オプション画面が開始しているか? 
  #-------------------------------------------------------------------------- 
  def  self .start ?
    return  @@start
  end 
end 
 
 
module  RPG
  class  BGM < AudioFile
    #-------------------------------------------------------------------------- 
    # ● BGMの再生 ※再定義 
    #-------------------------------------------------------------------------- 
    def  play( pos = 0 ) 
      if  @name .empty ?
        Audio.bgm_stop 
        @@last = RPG::BGM .new 
      else 
        vol = SUI::OPTION ::bgm_volume * 1.05 
        vol = [ @volume * vol, 100 ] .min                           # Ver 1.01 
        Audio.bgm_play ( "Audio/BGM/"  + @name , vol, @pitch , pos)   # Ver 1.01 
#~         Audio.bgm_play("Audio/BGM/" + @name, @volume * vol, @pitch, pos) 
        @@last = self .clone 
      end 
    end 
  end 
    class  SE < AudioFile
    #-------------------------------------------------------------------------- 
    # ● BGMの再生 ※再定義 
    #-------------------------------------------------------------------------- 
    def  play( pos = 0 ) 
      if  @name .empty ?
        Audio.se_stop 
        @@last = RPG::SE .new 
      else 
        vol = SUI::OPTION ::se_volume * 1.05 
        vol = [ @volume * vol, 100 ] .min                           # Ver 1.01 
        Audio.se_play ( "Audio/SE/"  + name) 
        @@last = self .clone 
      end 
    end 
  end 
end 
 
 
class  Scene_Map
  #-------------------------------------------------------------------------- 
  # ● オプション画面への移行 
  #-------------------------------------------------------------------------- 
  alias  sui_option_update_scene update_scene
  def  update_scene
    sui_option_update_scene
    SceneManager.call ( Scene_Option)  if  !scene_changing? && Scene_Option.start ?
  end 
end 
#****************************************************************************** 
 
# 
 
#   * オプション画面 * 
 
# 
 
#                       for RGSS3 
 
# 
 
#        Ver 1.01   2014.07.13 
 
# 
 
#   ◆注意事項 
 
#     ※この素材は「共通セーブファイル」スクリプトが必要になります。 
 
#     ※この素材は睡工房の素材をカスタマイズするものです。 
 
#      メッセージ機能拡張スクリプトを導入しない場合、機能2~5は無効となります。 
 
# 
 
# 
 
#   ◆機能説明 
 
# 
 
#     1.BGMの再生ボリュームを変更できます。 
 
# 
 
#     2.ボイスの再生ボリュームを変更できます。 
 
# 
 
#     3.ボイス再生のオン/オフ切り替えができます。 
 
# 
 
#     4.文字表示速度の変更ができます。 
 
# 
 
#     5.自動改ページの待ち時間を変更できます。 
 
# 
 
# 
 
#   ◆使い方 
 
#     スクリプトで「Scene_Option.start」を実行すると、 
 
#     オプション画面が開きます。 
 
# 
 
#     メニュー画面をカスタマイズしたい場合は、以下のURLを参考にしてください。 
 
#     [url]http://hime.be/rgss3/option.html[/url] 
 
# 
 
# 
 
#   提供者:睡工房 [url]http://hime.be/[/url] 
 
# 
 
#****************************************************************************** 
 
 
 
 
 
#============================================================================== 
 
# コンフィグ項目 
 
#============================================================================== 
 
module  SUI
 
module  OPTION
 
  # ボイス再生ボリューム変更時のサンプルボイス 
 
  # 指定したボイスからランダムで1つ、新しいボリュームで再生されます。 
 
  # サンプルボイスがいらない場合は空にしてください。 
 
  SAMPLE = [ 
 
  #ファイル名 
 
#  "sample_voice01", 
 
#  "sample_voice02", 
 
   "Cat" ,
 
   "Crow" ,
 
   "Dog" ,
 
  ] 
 
 
 
  # ボイスファイルの保存場所 
 
  #VOICE_DIR = "Audio/SE/Voice/" 
 
  VOICE_DIR = "Audio/SE/" 
 
end 
 
end 
 
#============================================================================== 
 
# 設定完了 
 
#============================================================================== 
 
 
 
 
 
 
 
class  Window_Option < Window_Base
 
  #-------------------------------------------------------------------------- 
 
  # ● オブジェクト初期化 
 
  #-------------------------------------------------------------------------- 
 
  def  initialize
 
    super ( 0 , 0 , 430 , 330 ) 
 
    self .openness  = 0 
 
    self .x  = Graphics.width  / 2  - self .width  / 2 
 
    self .y  = Graphics.height  / 2  - self .height  / 2  + line_height / 2  + padding
 
    self .z  = 160 
 
    [ url=home.php ?mod=space&uid=401263 ] @line[ /url]  = 0 
 
    set_index
 
    refresh
 
    update_cursor
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● リフレッシュ 
 
  #-------------------------------------------------------------------------- 
 
  def  refresh
 
    self .contents .clear 
 
    contents.font .color  = normal_color
 
    contents.draw_text ( 0 , 0  * rows_height, contents.width , line_height, "音樂" ) 
 
    contents.draw_text ( 0 , 1  * rows_height, contents.width , line_height, "聲音" ) 
 
    contents.draw_text ( 0 , 2  * rows_height, contents.width , line_height, "音效" ) 
 
    #contents.draw_text(0, 2 * rows_height, contents.width, line_height, "キャラクターボイス") 
 
    contents.draw_text ( 0 , 3  * rows_height, contents.width , line_height, "文字" ) 
 
    contents.draw_text ( 0 , 4  * rows_height, contents.width , line_height, "自動模式" ) 
 
    draw_command_10( 0 ) 
 
    draw_command_10( 1 ) 
 
    draw_command_10( 2 ) 
 
    #draw_command_2(2) 
 
    draw_command_3( 3 ) 
 
    draw_command_3( 4 ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 行の高さ(2行分) 
 
  #-------------------------------------------------------------------------- 
 
  def  rows_height
 
    60 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 文字の描画 
 
  #-------------------------------------------------------------------------- 
 
  def  draw_text2( x, y, w, text, blue = false ) 
 
    contents.font .color  = blue ? system_color : normal_color
 
    contents.font .color .alpha  = blue ? 255  : 128 
 
    draw_text( x, y, w, line_height, text) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 10コマンドの描画 
 
  #-------------------------------------------------------------------------- 
 
  def  draw_command_10( row) 
 
    y = rows_height * row + line_height
 
    10 .times  do  |i|
 
      x = 30  + 36  * i - ( ( i == 9 )  ? 2  : 0 ) 
 
      draw_text2( x, y, 30 , ( ( i + 1 )  * 10 ) .to_s , ( i == @index [ row] ) ) 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 10コマンドの矩形を取得 
 
  #-------------------------------------------------------------------------- 
 
  def  item_rect_10
 
    rect = Rect.new 
 
    rect.x  = 30  - 9  + 36  * @index [ @line] 
 
    rect.y  = rows_height * @line  + line_height
 
    rect.width  = 30  + 8 
 
    rect.height  = line_height
 
    rect
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 2コマンドの描画 
 
  #-------------------------------------------------------------------------- 
 
  def  draw_command_2( row) 
 
    y = rows_height * row + line_height
 
    list = [ "オン" , "オフ" ] 
 
    2 .times  do  |i|
 
      x = 30  + 100  * i
 
      draw_text2( x, y, 40 , list[ i] , ( i == @index [ row] ) ) 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 2コマンドの矩形を取得 
 
  #-------------------------------------------------------------------------- 
 
  def  item_rect_2
 
    rect = Rect.new 
 
    rect.x  = 30  - 11 + 100  * @index [ @line] 
 
    rect.y  = rows_height * @line  + line_height
 
    rect.width  = 50  + 8 
 
    rect.height  = line_height
 
    rect
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 3コマンドの描画 
 
  #-------------------------------------------------------------------------- 
 
  def  draw_command_3( row) 
 
    y = rows_height * row + line_height
 
    list = [ "慢" , "普通" , "快" ] 
 
    3 .times  do  |i|
 
      x = 30  + 80  * i
 
      draw_text2( x, y, 40 , list[ i] , ( i == @index [ row] ) ) 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 3コマンドの矩形を取得 
 
  #-------------------------------------------------------------------------- 
 
  def  item_rect_3
 
    rect = Rect.new 
 
    rect.x  = 30  - 11  + 80  * @index [ @line] 
 
    rect.y  = rows_height * @line  + line_height
 
    rect.width  = 50  + 8 
 
    rect.height  = line_height
 
    rect
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● カーソルの更新 
 
  #-------------------------------------------------------------------------- 
 
  def  update_cursor
 
    case  @line 
 
      when  0 , 1 , 2 
 
        cursor_rect.set ( item_rect_10) 
 
      #when 2 
 
        #cursor_rect.set(item_rect_2) 
 
      when  3 , 4 
 
        cursor_rect.set ( item_rect_3) 
 
      end 
 
      Sound.play_cursor 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 行の設定 
 
  #-------------------------------------------------------------------------- 
 
  def  line=( row) 
 
    old = @line 
 
    @line  = [ [ @line + row, 0 ] .max , 4 ] .min 
 
    update_cursor if  old != @line 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 行の設定 
 
  #-------------------------------------------------------------------------- 
 
  def  index=( i) 
 
    max = 9  if (  @line  == 0  || @line  == 1  || @line  == 2 ) 
 
    #max = 1 if( @line == 2) 
 
    max = 2  if (  @line  == 3  || @line  == 4 ) 
 
    old = @index [ @line] 
 
    @index [ @line]  = [ [ @index[ @line]  + i, 0 ] .max , max] .min 
 
    update_cursor if  old != @index [ @line] 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● フレーム更新 
 
  #-------------------------------------------------------------------------- 
 
  def  update
 
    super 
 
    return  unless  self .openness  == 255 
 
    self .line  = +1  if  Input.repeat ?( :DOWN ) 
 
    self .line  = -1  if  Input.repeat ?( :UP ) 
 
    self .index  = +1  if  Input.repeat ?( :RIGHT ) 
 
    self .index  = -1  if  Input.repeat ?( :LEFT ) 
 
    if  Input.trigger ?( :C ) 
 
      Sound.play_use_item 
 
      case  @line 
 
        when  0 
 
          $savec .set_num ( "bgm_vol" , ( @index[ @line]  + 1 )  * 10 ) 
 
          refresh
 
          RPG::BGM ::last.play 
 
        when  1 
 
          $savec .set_num ( "voice_vol" , ( @index[ @line]  + 1 )  * 10 ) 
 
          refresh
 
          Audio.se_stop 
 
          vol = SUI::OPTION .voice_volume 
 
          return  if  SUI::OPTION::SAMPLE .length  == 0 
 
          r = SUI::OPTION::SAMPLE [ rand ( SUI::OPTION::SAMPLE .length ) ] 
 
          Audio.se_play ( "#{SUI::OPTION::VOICE_DIR}#{r}" , 100  * vol) 
 
        when  2 
 
          #$savec.set("voice", @index[@line] == 1) 
 
          #refresh 
 
          $savec .set_num ( "se_vol" , ( @index[ @line]  + 1 )  * 10 ) 
 
          refresh
 
          Audio.se_stop 
 
          RPG::SE ::last.play 
 
        when  3 
 
          $savec .set_num ( "speed" , @index [ @line] ) 
 
          refresh
 
        when  4 
 
          $savec .set_num ( "auto_wait" , @index [ @line] ) 
 
          refresh
 
        end 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● アクティブ設定 
 
  #-------------------------------------------------------------------------- 
 
  def  set_index
 
    @index  = [ ] 
 
 
 
    res = $savec .get_num ( "bgm_vol" ) 
 
    res = 70  if  res < 10 
 
    @index [ 0 ]  = ( res / 10 )  - 1 
 
 
 
    res = $savec .get_num ( "voice_vol" ) 
 
    res = 70  if  res < 10 
 
    @index [ 1 ]  = ( res / 10 )  - 1 
 
 
 
    res = $savec .get_num ( "se_vol" ) 
 
    res = 70  if  res < 10 
 
    @index [ 2 ]  = ( res / 10 )  - 1 
 
    #@index[2] = $savec.check("voice") ? 1 : 0 
 
 
 
    @index [ 3 ]  = $savec .get_num ( "speed" ) 
 
    @index [ 3 ]  = 1  if  @index [ 3 ]  == -1 
 
 
 
    @index [ 4 ]  = $savec .get_num ( "auto_wait" ) 
 
    @index [ 4 ]  = 1  if  @index [ 4 ]  == -1 
 
  end 
 
end 
 
 
 
 
 
class  Scene_Option < Scene_Base
 
  #-------------------------------------------------------------------------- 
 
  # ● クラス変数初期化 
 
  #-------------------------------------------------------------------------- 
 
  @@start  = false          # オプション画面の開始フラグ 
 
  #-------------------------------------------------------------------------- 
 
  # ● 開始処理 
 
  #-------------------------------------------------------------------------- 
 
  def  start
 
    super 
 
    @@start = false 
 
    @config_seq  = 0 
 
    create_background
 
    create_option_window
 
    @option_window .open 
 
    @option_title .open 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 終了処理 
 
  #-------------------------------------------------------------------------- 
 
  def  terminate
 
    super 
 
    dispose_background
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● オプションウィンドウの作成 
 
  #-------------------------------------------------------------------------- 
 
  def  create_option_window
 
    @option_window  = Window_Option.new 
 
    @option_title  = Window_Help.new ( 1 ) 
 
    @option_title .x  = @option_window .x 
 
    @option_title .width  = @option_window .width 
 
    @option_title .y  = @option_window .y  - @option_title .height 
 
    @option_title .z  = @option_window .z 
 
    @option_title .create_contents 
 
    @option_title .openness  = 0 
 
    @option_title .contents .draw_text ( 0 , -2 , @option_title .contents .width ,@option_title.contents .height , "* 系統設定 *" , 1 ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 背景の作成 
 
  #-------------------------------------------------------------------------- 
 
  def  create_background
 
    @background_sprite  = Sprite.new 
 
    @background_sprite .bitmap  = SceneManager.background_bitmap 
 
    @background_sprite .color .set ( 16 , 16 , 16 , 128 ) 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 背景の解放 
 
  #-------------------------------------------------------------------------- 
 
  def  dispose_background
 
    @background_sprite .dispose 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● 更新処理 
 
  #-------------------------------------------------------------------------- 
 
  def  update
 
    super 
 
    if  Input.trigger ?( :B ) 
 
      Sound.play_cancel 
 
      @option_window .close 
 
      @option_title .close 
 
    end 
 
    if  @option_window .openness  == 0 
 
      SceneManager.return 
 
    end 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● オプション画面スタート処理 
 
  #-------------------------------------------------------------------------- 
 
  def  self .start 
 
    @@start = true 
 
  end 
 
  #-------------------------------------------------------------------------- 
 
  # ● オプション画面が開始しているか? 
 
  #-------------------------------------------------------------------------- 
 
  def  self .start ?
 
    return  @@start
 
  end 
 
end 
 
 
 
 
 
module  RPG
 
  class  BGM < AudioFile
 
    #-------------------------------------------------------------------------- 
 
    # ● BGMの再生 ※再定義 
 
    #-------------------------------------------------------------------------- 
 
    def  play( pos = 0 ) 
 
      if  @name .empty ?
 
        Audio.bgm_stop 
 
        @@last = RPG::BGM .new 
 
      else 
 
        vol = SUI::OPTION ::bgm_volume * 1.05 
 
        vol = [ @volume * vol, 100 ] .min                           # Ver 1.01 
 
        Audio.bgm_play ( "Audio/BGM/"  + @name , vol, @pitch , pos)   # Ver 1.01 
 
#~         Audio.bgm_play("Audio/BGM/" + @name, @volume * vol, @pitch, pos) 
 
        @@last = self .clone 
 
      end 
 
    end 
 
  end 
 
    class  SE < AudioFile
 
    #-------------------------------------------------------------------------- 
 
    # ● BGMの再生 ※再定義 
 
    #-------------------------------------------------------------------------- 
 
    def  play( pos = 0 ) 
 
      if  @name .empty ?
 
        Audio.se_stop 
 
        @@last = RPG::SE .new 
 
      else 
 
        vol = SUI::OPTION ::se_volume * 1.05 
 
        vol = [ @volume * vol, 100 ] .min                           # Ver 1.01 
 
        Audio.se_play ( "Audio/SE/"  + name) 
 
        @@last = self .clone 
 
      end 
 
    end 
 
  end 
 
end 
 
 
 
 
 
class  Scene_Map
 
  #-------------------------------------------------------------------------- 
 
  # ● オプション画面への移行 
 
  #-------------------------------------------------------------------------- 
 
  alias  sui_option_update_scene update_scene
 
  def  update_scene
 
    sui_option_update_scene
 
    SceneManager.call ( Scene_Option)  if  !scene_changing? && Scene_Option.start ?
 
  end 
 
end