查看: 2650|回复: 2

[RMVA发布] RMVA战斗音乐脚本

[复制链接]
梦石
0
星屑
74
在线时间
154 小时
注册时间
2012-10-7
回帖
41
发表于 2012-12-23 19:33:36 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 uuiio797 于 2012-12-23 19:38 编辑

用途是战斗播放地图音乐一直循环,用法和其他说明在脚本里。
下载附件地址:http://pan.baidu.com/share/link? ... 3859016&third=0
复制该脚本到你的工程就行了。
[pre lang="ruby" line="1"]#===============================================================================
# ■ 战斗播放地图音乐脚本
#-------------------------------------------------------------------------------
#    当战斗时地图音乐保持并战斗继续播放地图设置好的音乐。
#
#===============================================================================
#  说明:已经放在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
  [/pre]
梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
回帖
2158
发表于 2013-4-1 09:43:11 | 显示全部楼层
好脚本,顶个!
回复

使用道具 举报

梦石
0
星屑
55
在线时间
15 小时
注册时间
2012-12-29
回帖
13
发表于 2013-4-1 11:35:24 | 显示全部楼层
看起来很不错,先做标记!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部