Project1

标题: 如何让战斗音乐延续地图音乐,中间没有明显的切换痕迹? [打印本页]

作者: 我的米呀    时间: 2011-6-28 22:16
标题: 如何让战斗音乐延续地图音乐,中间没有明显的切换痕迹?
RT,最好能有开关控制,比如平时用地图音乐作为战斗音乐,BOSS再用另外的音乐。dsu_plus_rewardpost_czw
作者: wsmyzc    时间: 2011-6-28 23:16
脚本如下
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ BGM 継続 - KGC_ContinueBGM ◆ VX ◆
  3. #_/    ◇ Last update : 2008/08/31 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  マップ BGM のまま戦闘に突入する演出などを可能にする機能を追加します。
  6. #_/============================================================================
  7. #_/  他のスクリプトに影響を与える可能性があるため、できるだけ「素材」の最上部に
  8. #_/ 導入してください。
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  10. $imported = {} if $imported == nil
  11. $imported["ContinueBGM"] = true

  12. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  13. #==============================================================================
  14. # ■ RPG::AudioFile
  15. #==============================================================================

  16. class RPG::AudioFile
  17.   #--------------------------------------------------------------------------
  18.   # ○ 一致判定
  19.   #--------------------------------------------------------------------------
  20.   def equal?(obj)
  21.     return false unless obj.is_a?(RPG::AudioFile)
  22.     return false if self.name != obj.name
  23.     return false if self.volume != obj.volume
  24.     return false if self.pitch != obj.pitch

  25.     return true
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ○ 等値演算子
  29.   #--------------------------------------------------------------------------
  30.   def ==(obj)
  31.     return self.equal?(obj)
  32.   end
  33. end

  34. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  35. #==============================================================================
  36. # ■ Scene_Map
  37. #==============================================================================

  38. class Scene_Map < Scene_Base
  39.   #--------------------------------------------------------------------------
  40.   # ● バトル画面への切り替え
  41.   #--------------------------------------------------------------------------
  42.   def call_battle
  43.     @spriteset.update
  44.     Graphics.update
  45.     $game_player.make_encounter_count
  46.     $game_player.straighten
  47.     $game_temp.map_bgm = RPG::BGM.last
  48.     $game_temp.map_bgs = RPG::BGS.last

  49.     if $game_temp.map_bgm != $game_system.battle_bgm
  50.       RPG::BGM.stop
  51.       RPG::BGS.stop
  52.     end

  53.     Sound.play_battle_start
  54.     $game_system.battle_bgm.play
  55.     $game_temp.next_scene = nil
  56.     $scene = Scene_Battle.new
  57.   end
  58. end

  59. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  60. #==============================================================================
  61. # ■ Scene_Battle
  62. #==============================================================================

  63. class Scene_Battle < Scene_Base
  64.   #--------------------------------------------------------------------------
  65.   # ● 勝利の処理
  66.   #--------------------------------------------------------------------------
  67.   def process_victory
  68.     @info_viewport.visible = false
  69.     @message_window.visible = true
  70.     unless $game_system.battle_end_me.name.empty?
  71.       RPG::BGM.stop
  72.       $game_system.battle_end_me.play
  73.     end
  74.     unless $BTEST
  75.       $game_temp.map_bgm.play
  76.       $game_temp.map_bgs.play
  77.     end
  78.     display_exp_and_gold
  79.     display_drop_items
  80.     display_level_up
  81.     battle_end(0)
  82.   end
  83. end
复制代码
用这个就能不重新播了,BOSS的话用事件改就行了
作者: 仲秋启明    时间: 2011-6-29 08:51
Scene_Battle中搜索bgm,总共三处
                  bgs,总共三处
                  battle_end_me,总共一处(可不改)
都注释了就好了,战斗要更换BGM的时候就在战斗前播放




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