Project1

标题: 关于声音的脚本 [打印本页]

作者: j433463    时间: 2013-3-11 12:39
标题: 关于声音的脚本
本帖最后由 j433463 于 2013-3-12 09:46 编辑

我记得好像 XP 有人发布过一个脚本,当玩家走近一个事件时会听到声音,越近声音越大,反之远离越来越小到听不见。

想请问 VA 有没有这样的脚本?我找了很久都没有看到,无奈只有上来求教了,希望不会要我用事件来做,谢谢。
作者: Sion    时间: 2013-3-11 20:56
本帖最后由 Sion 于 2013-3-12 10:53 编辑

3/12 10:53 拼写错误修正..
  1. # 事件声音近大远小
  2. # 作者: [uo!5]@66rpg
  3. # 用法:事件中加入注释
  4. #     <BGSRange:x> 进入该事件范围x后,离事件越近,BGS播放越大声
  5. #     <BGSFile:Name> Name为播放的BGS文件名,放在Audio/BGS文夹内
  6. # 例如:<BGSRange:50>    <BGSFile:Sea>
  7. # 因为BGS同一时间只能播放一个,所以同一个地图多个事件使用的话会导致冲突
  8. # 当然事件声音范围互不叠加的话还是可以的。

  9. class Game_Event < Game_Character
  10.   #--------------------------------------------------------------------------
  11.   # ● Initialize
  12.   #--------------------------------------------------------------------------
  13.   alias uo5_soundrange_initialize initialize
  14.   def initialize(map_id, event)
  15.     uo5_soundrange_initialize(map_id, event)
  16.     setup_bgs_range
  17.     setup_bgs_file_name
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● Update
  21.   #--------------------------------------------------------------------------
  22.   alias uo5_soundrange_update update
  23.   def update
  24.     uo5_soundrange_update
  25.     update_sound_play
  26.   end  
  27.   #--------------------------------------------------------------------------
  28.   # ● Setup BGS Range
  29.   #--------------------------------------------------------------------------
  30.   def setup_bgs_range
  31.     @list.each {|lst|
  32.       if (lst.code == 108 || lst.code == 408)
  33.         return @bgs_range = $1.to_f if lst.parameters[0] =~ /<BGSRange:(\d+)>/
  34.       end
  35.     }
  36.     @bgs_range = 0
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● Setup BGS File Name
  40.   #--------------------------------------------------------------------------
  41.   def setup_bgs_file_name
  42.     return if @bgs_range == 0
  43.     @list.each {|lst|
  44.       if (lst.code == 108 || lst.code == 408)
  45.         return @bgs_file_name = $1 if lst.parameters[0] =~ /<BGSFile:(\w+)>/
  46.       end
  47.     }
  48.     @bgs_range = 0
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● Update Sound Play
  52.   #--------------------------------------------------------------------------
  53.   def update_sound_play
  54.     return if @bgs_range == 0
  55.     distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
  56.     volume = (1 - (distance - 1) / @bgs_range) * 100 #volume formula
  57.     return if volume < 0
  58.     Audio.bgs_play('audio/bgs/' + @bgs_file_name, volume)
  59.   end
  60. end
复制代码

作者: j433463    时间: 2013-3-12 09:28
一开始我怎么试都不成功,后来才发现脚本说明中的 <BGSFils:Name> 错字了,好在稍下方的例如有个正确的,总算试成功了,感谢分享啊!


作者: a000b1745    时间: 2013-3-13 15:36
大獅子~ 我總算可以幫你了!!
之前在6R有看到類似腳本並且被我給收服了{:2_275:}

現在整理做個工程轉貼給你~

http://115.com/file/bjdbjtuu
作者: j433463    时间: 2013-3-13 16:26
a000b1745 发表于 2013-3-13 15:36
大獅子~ 我總算可以幫你了!!
之前在6R有看到類似腳本並且被我給收服了

115 网盘的下载我几乎无法下载,尤其是您给的载点,一进去,只看到

文件拥有者未分享该文件。

不过,还是很感谢您,目前我是使用 sion 提供的脚本,已经成功使用中了。



另外,我也在巴哈网站找到另一个脚本范例,都是类似的功能,BGS 不能重叠,

其实,我最想要找的是国外的一个 Sound Emitting Events 脚本,BGS/ME/SE 都能用的脚本,

想配合蛙鸣鸟哨的 SE,但是载点已经没了,另一个声效脚本会出错,

实在是已经找不到合适的脚本,所以才会来发帖问的,呵呵。
作者: a000b1745    时间: 2013-3-13 17:13
http://www.4shared.com/zip/QAKZK611/BigLion.html
你看能下載嗎?
作者: j433463    时间: 2013-3-13 17:35
我點免費下載,它卻出現一個窗口要我註冊或登錄...還是算了。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1