Project1

标题: [VA] 商店界面BGM / 地图指定战斗BGM [打印本页]

作者: 柍若    时间: 2014-2-9 20:10
标题: [VA] 商店界面BGM / 地图指定战斗BGM
本帖最后由 柍若 于 2014-2-10 14:24 编辑

两个小插件脚本,事件也能产生类似效果,脚本纯为了方便。
事件可能记错或者忘记加指令之类,用脚本就不会有这个问题。

1: 商店BGM
 有点像仙4商店的那种效果?
 目前还没发现其他游戏商店有单独BGM的,汗,可能是我玩的比较少
  1. # ■ 商店BGM - By 柍若
  2. #------------------------------------------------------------------------------
  3. # 商店界面播放指定的BGM。
  4. #==============================================================================
  5. class Scene_Shop < Scene_MenuBase
  6. #------------------------------------------------------------------------------
  7.   Audio_Name = 'Airship'  # BGM名
  8.   Sound_Volume = 100      # 音量
  9.   Sound_Tone = 100        # 音调
  10. #------------------------------------------------------------------------------

  11.   alias preparee prepare
  12.   def prepare(goods, purchase_only)
  13.     preparee(goods, purchase_only)
  14.     save_audio
  15.     fadeout_all(600)   
  16.     Audio.bgm_play('Audio/BGM/'+Audio_Name,Sound_Volume,Sound_Tone)
  17.   end
  18.   alias returnn return_scene
  19.   def return_scene
  20.     fadeout_all(600)
  21.     @map_bgm.replay if @map_bgm
  22.     @map_bgs.replay if @map_bgs
  23.     returnn
  24.   end
  25.   def fadeout_all(time = 1000)
  26.     RPG::BGM.fade(time)
  27.     RPG::BGS.fade(time)
  28.     RPG::ME.fade(time)
  29.     RPG::BGM.stop
  30.     RPG::BGS.stop
  31.     RPG::ME.stop
  32.   end
  33.   def save_audio
  34.     @map_bgm = RPG::BGM.last
  35.     @map_bgs = RPG::BGS.last
  36.   end
  37. end
复制代码
2: 地图指定战斗BGM
 很多游戏都是不同地图使用不同战斗BGM。
  1. #------------------------------------------------------------------------------
  2. # ■ 地图指定战斗BGM - By 柍若
  3. #------------------------------------------------------------------------------
  4. #    可以不用手动在转地图的事件切战斗BGM了,省去麻烦。
  5. #    当地图无BGM设定的时候,战斗则播放系统设置里或游戏中切换的BGM。
  6. #==============================================================================
  7. #    [使用方法]
  8. #                                文件名   音量  音调
  9. #    在地图的备注栏里写 <BattleBGM name, volume, tone>
  10. #------------------------------------------------------------------------------
  11. #    注意事项:BattleBGM与后面的数据之间一定要有一个空格,
  12. #             文件名、音量、音调用半角逗号隔开,逗号后可有空格,也可没有。
  13. #------------------------------------------------------------------------------
  14. class Scene_Map
  15.   def pre_battle_scene
  16.     Graphics.update
  17.     Graphics.freeze
  18.     @spriteset.dispose_characters
  19.     BattleManager.save_bgm_and_bgs
  20.     a = $game_map.note.split(/<BattleBGM /)[1]
  21.     a = a.split(/>/)[0]
  22.     a = a.split(/,/)
  23.     if a
  24.       map_battle_bgm(a[0],a[1],a[2])
  25.     else
  26.       BattleManager.play_battle_bgm
  27.     end
  28.     Sound.play_battle_start
  29.   end
  30.   def map_battle_bgm(name,v=100,t=100)
  31.     Audio.bgm_play("Audio/BGM/"+name,v.to_i,t.to_i)
  32.     RPG::BGS.stop
  33.   end
  34. end
复制代码

作者: 子弹君    时间: 2014-2-28 19:11
虽然两个都可以用事件做出来,但是毕竟脚本更方便呢~
作者: 柍若    时间: 2014-3-2 10:46
战斗BGM明明刚写出来的时候几个工程亲测可用来着……(本来就是自用的:D
结果……_(:з」∠)_这两天不知道RM抽什么风突然报错了?还以为是加了新脚本有冲突,结果放到新工程里还是报错,奇怪……
想了半天没想懂为什么之前好好的突然就不能用了……也没更新RM啊……略诡异_(:з」∠)_
谁来告诉我这是为什么QAQQQ

于是轻微修改了下。各位如果上面的不能用,试试这个。
  1. #------------------------------------------------------------------------------
  2. # ■ 地图指定战斗BGM - By 柍若
  3. #------------------------------------------------------------------------------
  4. #    可以不用手动在转地图的事件切战斗BGM了,省去麻烦。
  5. #    当地图无BGM设定的时候,战斗则播放系统设置里或游戏中切换的BGM。
  6. #==============================================================================
  7. #    [使用方法]
  8. #                                文件名   音量  音调
  9. #    在地图的备注栏里写 <BattleBGM name, volume, tone>
  10. #------------------------------------------------------------------------------
  11. #    注意事项:BattleBGM与后面的数据之间一定要有一个空格,
  12. #             文件名、音量、音调用半角逗号隔开,逗号后可有空格,也可没有。
  13. #------------------------------------------------------------------------------
  14. class Scene_Map
  15.   def pre_battle_scene
  16.     Graphics.update
  17.     Graphics.freeze
  18.     @spriteset.dispose_characters
  19.     BattleManager.save_bgm_and_bgs
  20.     note = load_data(sprintf("Data/Map%03d.rvdata2", $game_map.map_id))
  21.     a = note.note.split(/<BattleBGM /)[1]
  22.     a = a.split(/>/)[0]
  23.     a = a.split(/,/)
  24.     if a
  25.       map_battle_bgm(a[0],a[1],a[2])
  26.     else
  27.       BattleManager.play_battle_bgm
  28.     end
  29.     Sound.play_battle_start
  30.   end
  31.   def map_battle_bgm(name,v=100,t=100)
  32.     Audio.bgm_play("Audio/BGM/"+name,v.to_i,t.to_i)
  33.     RPG::BGS.stop
  34.   end
  35. end
复制代码





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