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 拼写错误修正..
# 事件声音近大远小
# 作者: [uo!5]@66rpg
# 用法:事件中加入注释
# <BGSRange:x> 进入该事件范围x后,离事件越近,BGS播放越大声
# <BGSFile:Name> Name为播放的BGS文件名,放在Audio/BGS文夹内
# 例如:<BGSRange:50> <BGSFile:Sea>
# 因为BGS同一时间只能播放一个,所以同一个地图多个事件使用的话会导致冲突
# 当然事件声音范围互不叠加的话还是可以的。
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias uo5_soundrange_initialize initialize
def initialize(map_id, event)
uo5_soundrange_initialize(map_id, event)
setup_bgs_range
setup_bgs_file_name
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
alias uo5_soundrange_update update
def update
uo5_soundrange_update
update_sound_play
end
#--------------------------------------------------------------------------
# ● Setup BGS Range
#--------------------------------------------------------------------------
def setup_bgs_range
@list.each {|lst|
if (lst.code == 108 || lst.code == 408)
return @bgs_range = $1.to_f if lst.parameters[0] =~ /<BGSRange:(\d+)>/
end
}
@bgs_range = 0
end
#--------------------------------------------------------------------------
# ● Setup BGS File Name
#--------------------------------------------------------------------------
def setup_bgs_file_name
return if @bgs_range == 0
@list.each {|lst|
if (lst.code == 108 || lst.code == 408)
return @bgs_file_name = $1 if lst.parameters[0] =~ /<BGSFile:(\w+)>/
end
}
@bgs_range = 0
end
#--------------------------------------------------------------------------
# ● Update Sound Play
#--------------------------------------------------------------------------
def update_sound_play
return if @bgs_range == 0
distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
volume = (1 - (distance - 1) / @bgs_range) * 100 #volume formula
return if volume < 0
Audio.bgs_play('audio/bgs/' + @bgs_file_name, volume)
end
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