赞 | 13 |
VIP | 320 |
好人卡 | 64 |
积分 | 3 |
经验 | 112963 |
最后登录 | 2022-8-25 |
在线时间 | 2355 小时 |
Lv2.观梦者 (暗夜天使)
- 梦石
- 0
- 星屑
- 266
- 在线时间
- 2355 小时
- 注册时间
- 2009-3-13
- 帖子
- 2309
|
本帖最后由 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
复制代码 |
|