Project1

标题: RMVA战斗音乐脚本 [打印本页]

作者: uuiio797    时间: 2012-12-23 19:33
标题: RMVA战斗音乐脚本
本帖最后由 uuiio797 于 2012-12-23 19:38 编辑

用途是战斗播放地图音乐一直循环,用法和其他说明在脚本里。
下载附件地址:http://pan.baidu.com/share/link? ... 3859016&third=0
复制该脚本到你的工程就行了。
RUBY 代码复制
  1. #===============================================================================
  2. # ■ 战斗播放地图音乐脚本
  3. #-------------------------------------------------------------------------------
  4. #    当战斗时地图音乐保持并战斗继续播放地图设置好的音乐。
  5. #
  6. #===============================================================================
  7. #  说明:已经放在BATTLE_BGM_MAP的地图ID会不断的播放地图设置好的音乐,当开关号码
  8. #        为关闭时该地图的战斗胜利音乐不会播放,打开时则播放,其他没放在BATTLE_BGM
  9. #        _MAP的地图ID开关号码会自动打开,放在那的地图ID需要自己动手设置该地图,
  10. #        该地图也会战斗关闭开关号码。
  11. #  
  12. #  使用方法:当需要设置战斗时播放地图音乐的地图ID放到BATTLE_BGM_MAP的[]里,默认
  13. #            系统里的战斗音乐放在DEFAULT_BGM里,控制战斗胜利音乐的开关,当该开关
  14. #            打开时播放战斗胜利音乐,关闭时则不播放战斗胜利音乐。
  15. #
  16. #  作者:uuiio797
  17. #
  18. #===============================================================================
  19. module Battle_Bgm
  20.  
  21.   BATTLE_BGM_MAP = [1] # 战斗时播放地图音乐的地图ID
  22.  
  23.   DEFAULT_BGM = ["Battle2" ,100 , 100] # 系统设置的默认战斗音乐(音乐名字,音量,音调)
  24.  
  25.   SWICTH_ME = 1 # 控制播放战斗胜利音乐的开关号码,该开关打开时播放默认胜利音乐,关闭时不播放胜利音乐
  26.  
  27. end
  28.  
  29. #==============================================================================
  30. # ■ BattleManager
  31. #------------------------------------------------------------------------------
  32. #  戰鬥過程的管理器。
  33. #==============================================================================
  34. module BattleManager
  35.  
  36.   #--------------------------------------------------------------------------
  37.   # ● 勝利時的處理 【再定义】
  38.   #--------------------------------------------------------------------------
  39.   def self.process_victory
  40.     case $game_switches[Battle_Bgm::SWICTH_ME] # 开关号码
  41.     when true # 默认,播放胜利音乐
  42.       play_battle_end_me
  43.       replay_bgm_and_bgs
  44.       $game_message.add(sprintf(Vocab::Victory, $game_party.name))
  45.       display_exp
  46.       gain_gold
  47.       gain_drop_items
  48.       gain_exp
  49.       SceneManager.return
  50.       battle_end(0)
  51.       return true
  52.     when false # 不播放胜利音乐
  53.       replay_bgm_and_bgs
  54.       $game_message.add(sprintf(Vocab::Victory, $game_party.name))
  55.       display_exp
  56.       gain_gold
  57.       gain_drop_items
  58.       gain_exp
  59.       SceneManager.return
  60.       battle_end(0)
  61.       return true
  62.     end
  63.   end
  64. end
  65.  
  66. #=============================================================================
  67. # ▼ Scene_Map
  68. #-----------------------------------------------------------------------------
  69. #    战斗保持地图音乐的场景
  70. #=============================================================================
  71. class Scene_Map < Scene_Base
  72.  
  73.   #---------------------------------------------------------------------------
  74.   # ● 开始处理【再定义】
  75.   #---------------------------------------------------------------------------
  76.   def start
  77.     super
  78.     SceneManager.clear
  79.     $game_player.straighten
  80.     $game_map.refresh
  81.     $game_message.visible = false
  82.     create_spriteset
  83.     create_all_windows
  84.     @menu_calling = false
  85.   end
  86.  
  87.   #--------------------------------------------------------------------------
  88.   # ● 更新畫面 【再定义】
  89.   #--------------------------------------------------------------------------
  90.   def update
  91.     super
  92.     $game_map.update(true)
  93.     $game_player.update
  94.     $game_timer.update
  95.     @spriteset.update
  96.     update_scene if scene_change_ok?
  97.     # 切换地图时开关1号自动开启(播放地图为战斗音乐的地图)
  98.     $game_switches[Battle_Bgm::SWICTH_ME] = true unless is_map_bgm?
  99.     # 当你不要自动关闭该开关时再该代码前面加个#注释掉
  100.     $game_switches[Battle_Bgm::SWICTH_ME] = false if is_map_bgm?
  101.   end
  102.  
  103.   #--------------------------------------------------------------------------
  104.   # ● 切換戰鬥畫面前的處理 【再定义】
  105.   #--------------------------------------------------------------------------
  106.   def pre_battle_scene
  107.     Graphics.update
  108.     Graphics.freeze
  109.     @spriteset.dispose_characters
  110.     BattleManager.save_bgm_and_bgs
  111.     play_map_bgm if is_map_bgm? # 该地图ID战斗时播放地图音乐
  112.     play_default_bgm unless is_map_bgm? # 其他地图播放默认战斗音乐
  113.     BattleManager.play_battle_bgm   
  114.     Sound.play_battle_start
  115.   end
  116.  
  117.   #---------------------------------------------------------------------------
  118.   # ● 保持地图ID的音乐
  119.   #---------------------------------------------------------------------------
  120.   def is_map_bgm?
  121.     return Battle_Bgm::BATTLE_BGM_MAP.include?($game_map.map_id)
  122.   end
  123.  
  124.   #--------------------------------------------------------------------------
  125.   # ● 播放地图音乐
  126.   #--------------------------------------------------------------------------
  127.   def play_map_bgm
  128.     BattleManager.replay_bgm_and_bgs
  129.     $game_system.battle_bgm = BattleManager.replay_bgm_and_bgs # 战斗时播放地图音乐
  130.   end
  131.  
  132.   #--------------------------------------------------------------------------
  133.   # ● 播放默认战斗音乐
  134.   #--------------------------------------------------------------------------
  135.   def play_default_bgm
  136.     filename = Battle_Bgm::DEFAULT_BGM[0]
  137.     volume = Battle_Bgm::DEFAULT_BGM[1]
  138.     pitch = Battle_Bgm::DEFAULT_BGM[2]
  139.     Audio.bgm_play("/Audio/BGM/" + filename, volume, pitch)
  140.     $game_system.battle_bgm = Audio.bgm_play("/Audio/BGM/" + filename, volume, pitch)
  141.   end
  142. end

作者: 黄濑凉太    时间: 2013-4-1 09:43
好脚本,顶个!
作者: 墨瞑    时间: 2013-4-1 11:35
看起来很不错,先做标记!




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