Battle Music Eliminator - Guardian -  10-03-2009
 
 
This is a script I made recently for a side project.  It's incredibly simple, but I thought I'd post it here, anyway. :P  What it does is eliminate the battle music on maps of your choice so that the map background music will continue playing instead. 
 
There are three versions: All Battle Music Eliminator, which completely gets rid of the use of battle music, Battle Music Eliminator, which lets you choose which maps the effect takes place on, and Reverse Battle Music Eliminator, which lets you choose which maps the effect won't take place on (it'll work on all other maps).  Instructions in headers.  Enjoy! 
 
All Battle Music Eliminator: 
Code: #------------------------------------------------------------------------------ 
# [VX] All Battle Music Eliminator 
#------------------------------------------------------------------------------ 
# Made by Guardian(1239) 
#------------------------------------------------------------------------------ 
# This is a very simple script edit that makes the map music play through the 
# battle on all maps.  It eliminates the use of battle background music on all 
# maps, basically. 
#------------------------------------------------------------------------------ 
# Instructions: Paste in a new slot under "Materials". 
#------------------------------------------------------------------------------ 
# Copyright: You may use this script freely.  You may distribute this script as 
# long as credit is given to Guardian(1239).  You may edit this script as you 
# wish.  You may distribute an edit of this script as long as credit for the 
# original is given to Guardian(1239). 
#------------------------------------------------------------------------------ 
 
#============================================================================== 
# ** Scene_Map 
#------------------------------------------------------------------------------ 
#  This class performs the map screen processing. 
#============================================================================== 
 
class Scene_Map < Scene_Base 
  #-------------------------------------------------------------------------- 
  # * Switch to Battle Screen 
  #-------------------------------------------------------------------------- 
  def call_battle 
    @spriteset.update 
    Graphics.update 
    $game_player.make_encounter_count 
    $game_player.straighten 
    #$game_temp.map_bgm = RPG::BGM.last 
    #$game_temp.map_bgs = RPG::BGS.last 
    #RPG::BGM.stop 
    #RPG::BGS.stop 
    Sound.play_battle_start 
    #$game_system.battle_bgm.play 
    $game_temp.next_scene = nil 
    $scene = Scene_Battle.new 
  end 
end 
 
#============================================================================== 
# ** Scene_Battle 
#------------------------------------------------------------------------------ 
#  This class performs battle screen processing. 
#============================================================================== 
 
class Scene_Battle < Scene_Base 
  #-------------------------------------------------------------------------- 
  # * End Battle 
  #     result : Results (0: win, 1: escape, 2:lose) 
  #-------------------------------------------------------------------------- 
  def battle_end(result) 
    if result == 2 and not $game_troop.can_lose 
      call_gameover 
    else 
      $game_party.clear_actions 
      $game_party.remove_states_battle 
      $game_troop.clear 
      if $game_temp.battle_proc != nil 
        $game_temp.battle_proc.call(result) 
        $game_temp.battle_proc = nil 
      end 
      unless $BTEST 
        #$game_temp.map_bgm.play 
        #$game_temp.map_bgs.play 
      end 
      $scene = Scene_Map.new 
      @message_window.clear 
      Graphics.fadeout(30) 
    end 
    $game_temp.in_battle = false 
  end 
   
  #-------------------------------------------------------------------------- 
  # * Victory Processing 
  #-------------------------------------------------------------------------- 
  def process_victory 
    @info_viewport.visible = false 
    @message_window.visible = true 
    #RPG::BGM.stop 
    #~~ If you want to keep end battle music, remove the comment from the 
    #~~ line below. 
    #$game_system.battle_end_me.play 
    unless $BTEST 
      #$game_temp.map_bgm.play 
      #$game_temp.map_bgs.play 
    end 
    display_exp_and_gold 
    display_drop_items 
    display_level_up 
    battle_end(0) 
  end 
end
  
Battle Music Eliminator: 
Code: #------------------------------------------------------------------------------ 
# [VX] Battle Music Eliminator 
#------------------------------------------------------------------------------ 
# Made by Guardian(1239) 
#------------------------------------------------------------------------------ 
# This is a very simple script edit that makes the map music play through the 
# battle on specified maps.  It eliminates the use of battle background music 
# on the specified maps, basically. 
#------------------------------------------------------------------------------ 
# Instructions: Paste in a new slot under "Materials".  Edit the values for 
# "Maps" to match the ID(s) of the map(s) you want to eliminate battle music 
# on. 
#------------------------------------------------------------------------------ 
# Copyright: You may use this script freely.  You may distribute this script as 
# long as credit is given to Guardian(1239).  You may edit this script as you 
# wish.  You may distribute an edit of this script as long as credit for the 
# original is given to Guardian(1239). 
#------------------------------------------------------------------------------ 
 
module NO_BATTLE_BGM 
  # Edit these values to match the ID(s) of the map(s) you wish to eliminate 
  # battle music on. 
  Maps = [1] 
end 
 
#============================================================================== 
# ** Scene_Map 
#------------------------------------------------------------------------------ 
#  This class performs the map screen processing. 
#============================================================================== 
 
class Scene_Map < Scene_Base 
  include NO_BATTLE_BGM 
  #-------------------------------------------------------------------------- 
  # * Switch to Battle Screen 
  #-------------------------------------------------------------------------- 
  def call_battle 
    @spriteset.update 
    Graphics.update 
    $game_player.make_encounter_count 
    $game_player.straighten 
    if Maps.include?($game_map.map_id) 
      #$game_temp.map_bgm = RPG::BGM.last 
      #$game_temp.map_bgs = RPG::BGS.last 
      #RPG::BGM.stop 
      #RPG::BGS.stop 
      Sound.play_battle_start 
      #$game_system.battle_bgm.play 
      $game_temp.next_scene = nil 
      $scene = Scene_Battle.new 
    else 
      $game_temp.map_bgm = RPG::BGM.last 
      $game_temp.map_bgs = RPG::BGS.last 
      RPG::BGM.stop 
      RPG::BGS.stop 
      Sound.play_battle_start 
      $game_system.battle_bgm.play 
      $game_temp.next_scene = nil 
      $scene = Scene_Battle.new 
    end 
  end 
end 
 
#============================================================================== 
# ** Scene_Battle 
#------------------------------------------------------------------------------ 
#  This class performs battle screen processing. 
#============================================================================== 
 
class Scene_Battle < Scene_Base 
  include NO_BATTLE_BGM 
  #-------------------------------------------------------------------------- 
  # * End Battle 
  #     result : Results (0: win, 1: escape, 2:lose) 
  #-------------------------------------------------------------------------- 
  def battle_end(result) 
    if result == 2 and not $game_troop.can_lose 
      call_gameover 
    else 
      $game_party.clear_actions 
      $game_party.remove_states_battle 
      $game_troop.clear 
      if $game_temp.battle_proc != nil 
        $game_temp.battle_proc.call(result) 
        $game_temp.battle_proc = nil 
      end 
      if Maps.include?($game_map.map_id) 
        unless $BTEST 
          #$game_temp.map_bgm.play 
          #$game_temp.map_bgs.play 
        end 
      else 
        unless $BTEST 
          $game_temp.map_bgm.play 
          $game_temp.map_bgs.play 
        end 
      end 
      $scene = Scene_Map.new 
      @message_window.clear 
      Graphics.fadeout(30) 
    end 
    $game_temp.in_battle = false 
  end 
   
  #-------------------------------------------------------------------------- 
  # * Victory Processing 
  #-------------------------------------------------------------------------- 
  def process_victory 
    @info_viewport.visible = false 
    @message_window.visible = true 
    if Maps.include?($game_map.map_id) 
      #RPG::BGM.stop 
      #~~ If you want to keep end battle music, remove the comment from the 
      #~~ line below. 
      #$game_system.battle_end_me.play 
      unless $BTEST 
        #$game_temp.map_bgm.play 
        #$game_temp.map_bgs.play 
      end 
    else 
      RPG::BGM.stop 
      $game_system.battle_end_me.play 
      unless $BTEST 
        $game_temp.map_bgm.play 
        $game_temp.map_bgs.play 
      end 
    end 
    display_exp_and_gold 
    display_drop_items 
    display_level_up 
    battle_end(0) 
  end 
end
  
Reverse Battle Music Eliminator: 
Code: #------------------------------------------------------------------------------ 
# [VX] Reverse Battle Music Eliminator 
#------------------------------------------------------------------------------ 
# Made by Guardian(1239) 
#------------------------------------------------------------------------------ 
# This is a very simple script edit that makes the map music play through the 
# battle on all but specified maps.  It eliminates the use of battle background 
# music on all but the specified maps, basically. 
#------------------------------------------------------------------------------ 
# Instructions: Paste in a new slot under "Materials".  Edit the values for 
# "Maps" to match the ID(s) of the map(s) you don't want to eliminate battle  
# music on. 
#------------------------------------------------------------------------------ 
# Copyright: You may use this script freely.  You may distribute this script as 
# long as credit is given to Guardian(1239).  You may edit this script as you 
# wish.  You may distribute an edit of this script as long as credit for the 
# original is given to Guardian(1239). 
#------------------------------------------------------------------------------ 
 
module INCLUDE_BATTLE_BGM 
  # Edit these values to match the ID(s) of the map(s) you don't 
  # wish to eliminate battle music on. 
  Maps = [1] 
end 
 
#============================================================================== 
# ** Scene_Map 
#------------------------------------------------------------------------------ 
#  This class performs the map screen processing. 
#============================================================================== 
 
class Scene_Map < Scene_Base 
  include INCLUDE_BATTLE_BGM 
  #-------------------------------------------------------------------------- 
  # * Switch to Battle Screen 
  #-------------------------------------------------------------------------- 
  def call_battle 
    @spriteset.update 
    Graphics.update 
    $game_player.make_encounter_count 
    $game_player.straighten 
    if Maps.include?($game_map.map_id) 
      $game_temp.map_bgm = RPG::BGM.last 
      $game_temp.map_bgs = RPG::BGS.last 
      RPG::BGM.stop 
      RPG::BGS.stop 
      Sound.play_battle_start 
      $game_system.battle_bgm.play 
      $game_temp.next_scene = nil 
      $scene = Scene_Battle.new 
    else 
      #$game_temp.map_bgm = RPG::BGM.last 
      #$game_temp.map_bgs = RPG::BGS.last 
      #RPG::BGM.stop 
      #RPG::BGS.stop 
      Sound.play_battle_start 
      #$game_system.battle_bgm.play 
      $game_temp.next_scene = nil 
      $scene = Scene_Battle.new 
    end 
  end 
end 
 
#============================================================================== 
# ** Scene_Battle 
#------------------------------------------------------------------------------ 
#  This class performs battle screen processing. 
#============================================================================== 
 
class Scene_Battle < Scene_Base 
  include INCLUDE_BATTLE_BGM 
  #-------------------------------------------------------------------------- 
  # * End Battle 
  #     result : Results (0: win, 1: escape, 2:lose) 
  #-------------------------------------------------------------------------- 
  def battle_end(result) 
    if result == 2 and not $game_troop.can_lose 
      call_gameover 
    else 
      $game_party.clear_actions 
      $game_party.remove_states_battle 
      $game_troop.clear 
      if $game_temp.battle_proc != nil 
        $game_temp.battle_proc.call(result) 
        $game_temp.battle_proc = nil 
      end 
      if Maps.include?($game_map.map_id) 
        unless $BTEST 
          $game_temp.map_bgm.play 
          $game_temp.map_bgs.play 
        end 
      else 
        unless $BTEST 
          #$game_temp.map_bgm.play 
          #$game_temp.map_bgs.play 
        end 
      end 
      $scene = Scene_Map.new 
      @message_window.clear 
      Graphics.fadeout(30) 
    end 
    $game_temp.in_battle = false 
  end 
   
  #-------------------------------------------------------------------------- 
  # * Victory Processing 
  #-------------------------------------------------------------------------- 
  def process_victory 
    @info_viewport.visible = false 
    @message_window.visible = true 
    if Maps.include?($game_map.map_id) 
      RPG::BGM.stop 
      $game_system.battle_end_me.play 
      unless $BTEST 
        $game_temp.map_bgm.play 
        $game_temp.map_bgs.play 
      end 
    else 
      #RPG::BGM.stop 
      #~~ If you want to keep end battle music, remove the comment from the 
      #~~ line below. 
      #$game_system.battle_end_me.play 
      unless $BTEST 
        #$game_temp.map_bgm.play 
        #$game_temp.map_bgs.play 
      end 
    end 
    display_exp_and_gold 
    display_drop_items 
    display_level_up 
    battle_end(0) 
  end 
end
  
 
Questions and Answers 
Q: Can you make this for XP? 
A: No.  Sorry, but it would be a completely different script and I only made this one because I needed it. 
 
Q: It's not working/there's an error! 
A: Write down what error (if you're getting an error) you're shown and post it.  This edits a couple of classes that could be used in other scripts (especially battle system scripts), so there's probably a compatibility problem.  If you think there's a compatibility error, you'll need to contact the maker of your other script(s).  I'm presenting this "as-is", which basically means I'll fix problems with this script but I'm not going to spend my time making it compatible with other scripts. 
 
Q: Can you do such-and-such/make a similar script? 
Probably not.  I'm pretty new to scripting, but you can post your suggestion and I'll let you know what I'm capable of (or maybe someone else can help if they see the suggestion).
 
 
 
Battle Music Eliminator - TheRexion -  10-08-2009
 
 
This would be somewhat easier with events
 
 
 
Battle Music Eliminator - Alpha-Mad -  10-08-2009
 
 
I'm not sure this is possible with events.  I'm not entirely sure about VX but in XP, you can't just eliminate the battle music and have the map music play through.  If this is the case with VX, then this is a great script.  Wish I had it for XP  
 
 
 
Battle Music Eliminator - Guardian -  10-08-2009
 
 
No, this isn't possible to do with events.  Trust me, I always check that first.  XD  You can do the basic - turn off the battle music, but you can't make the background music keep playing.  Here's the battle call from Scene_Map: 
Code: def call_battle 
    @spriteset.update 
    Graphics.update 
    $game_player.make_encounter_count 
    $game_player.straighten 
    $game_temp.map_bgm = RPG::BGM.last 
    $game_temp.map_bgs = RPG::BGS.last 
    RPG::BGM.stop 
    RPG::BGS.stop 
    Sound.play_battle_start 
    $game_system.battle_bgm.play 
    $game_temp.next_scene = nil 
    $scene = Scene_Battle.new 
  end
  Those RPG::BGM.stop and RPG::BGS.stop can't be changed via events; they're built into the system.  In my script I just commented those lines out and, for the ones where you choose the maps, added a conditional branch. 
 
I may look into doing it for XP in the future, but for now I've only got the VX version.  
 
 
 
 |