#===============================================================================
# ■ 战斗播放地图音乐脚本
#-------------------------------------------------------------------------------
# 当战斗时地图音乐保持并战斗继续播放地图设置好的音乐。
#
#===============================================================================
# 说明:已经放在BATTLE_BGM_MAP的地图ID会不断的播放地图设置好的音乐,当开关号码
# 为关闭时该地图的战斗胜利音乐不会播放,打开时则播放,其他没放在BATTLE_BGM
# _MAP的地图ID开关号码会自动打开,放在那的地图ID需要自己动手设置该地图,
# 该地图也会战斗关闭开关号码。
#
# 使用方法:当需要设置战斗时播放地图音乐的地图ID放到BATTLE_BGM_MAP的[]里,默认
# 系统里的战斗音乐放在DEFAULT_BGM里,控制战斗胜利音乐的开关,当该开关
# 打开时播放战斗胜利音乐,关闭时则不播放战斗胜利音乐。
#
# 作者:uuiio797
#
#===============================================================================
module Battle_Bgm
BATTLE_BGM_MAP = [1] # 战斗时播放地图音乐的地图ID
DEFAULT_BGM = ["Battle2" ,100 , 100] # 系统设置的默认战斗音乐(音乐名字,音量,音调)
SWICTH_ME = 1 # 控制播放战斗胜利音乐的开关号码,该开关打开时播放默认胜利音乐,关闭时不播放胜利音乐
end
#==============================================================================
# ■ BattleManager
#------------------------------------------------------------------------------
# 戰鬥過程的管理器。
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# ● 勝利時的處理 【再定义】
#--------------------------------------------------------------------------
def self.process_victory
case $game_switches[Battle_Bgm::SWICTH_ME] # 开关号码
when true # 默认,播放胜利音乐
play_battle_end_me
replay_bgm_and_bgs
$game_message.add(sprintf(Vocab::Victory, $game_party.name))
display_exp
gain_gold
gain_drop_items
gain_exp
SceneManager.return
battle_end(0)
return true
when false # 不播放胜利音乐
replay_bgm_and_bgs
$game_message.add(sprintf(Vocab::Victory, $game_party.name))
display_exp
gain_gold
gain_drop_items
gain_exp
SceneManager.return
battle_end(0)
return true
end
end
end
#=============================================================================
# ▼ Scene_Map
#-----------------------------------------------------------------------------
# 战斗保持地图音乐的场景
#=============================================================================
class Scene_Map < Scene_Base
#---------------------------------------------------------------------------
# ● 开始处理【再定义】
#---------------------------------------------------------------------------
def start
super
SceneManager.clear
$game_player.straighten
$game_map.refresh
$game_message.visible = false
create_spriteset
create_all_windows
@menu_calling = false
end
#--------------------------------------------------------------------------
# ● 更新畫面 【再定义】
#--------------------------------------------------------------------------
def update
super
$game_map.update(true)
$game_player.update
$game_timer.update
@spriteset.update
update_scene if scene_change_ok?
# 切换地图时开关1号自动开启(播放地图为战斗音乐的地图)
$game_switches[Battle_Bgm::SWICTH_ME] = true unless is_map_bgm?
# 当你不要自动关闭该开关时再该代码前面加个#注释掉
$game_switches[Battle_Bgm::SWICTH_ME] = false if is_map_bgm?
end
#--------------------------------------------------------------------------
# ● 切換戰鬥畫面前的處理 【再定义】
#--------------------------------------------------------------------------
def pre_battle_scene
Graphics.update
Graphics.freeze
@spriteset.dispose_characters
BattleManager.save_bgm_and_bgs
play_map_bgm if is_map_bgm? # 该地图ID战斗时播放地图音乐
play_default_bgm unless is_map_bgm? # 其他地图播放默认战斗音乐
BattleManager.play_battle_bgm
Sound.play_battle_start
end
#---------------------------------------------------------------------------
# ● 保持地图ID的音乐
#---------------------------------------------------------------------------
def is_map_bgm?
return Battle_Bgm::BATTLE_BGM_MAP.include?($game_map.map_id)
end
#--------------------------------------------------------------------------
# ● 播放地图音乐
#--------------------------------------------------------------------------
def play_map_bgm
BattleManager.replay_bgm_and_bgs
$game_system.battle_bgm = BattleManager.replay_bgm_and_bgs # 战斗时播放地图音乐
end
#--------------------------------------------------------------------------
# ● 播放默认战斗音乐
#--------------------------------------------------------------------------
def play_default_bgm
filename = Battle_Bgm::DEFAULT_BGM[0]
volume = Battle_Bgm::DEFAULT_BGM[1]
pitch = Battle_Bgm::DEFAULT_BGM[2]
Audio.bgm_play("/Audio/BGM/" + filename, volume, pitch)
$game_system.battle_bgm = Audio.bgm_play("/Audio/BGM/" + filename, volume, pitch)
end
end