rw木头 发表于 2014-1-21 13:54:59

【优化】血量低于某值时自动切换BGM

本帖最后由 rw木头 于 2014-1-21 14:48 编辑

得到6R的M5君的授权后呢本人对他的原创脚本做了一些优(luan)化(gai) {:nm08:}

改动以及说明放在脚本注释中了,脚本比较简单就不发范例了。

=begin

===============================================================================
危急时切换BGM By喵呜喵5
===============================================================================
【说明】
战斗中队伍总HP小于一定比率时自动切换战斗BGM


===============================================================================
2014年1月21日由木头优化
优化内容:
    1.修改了可以不改变BGM名
    2.增加了可改变音量大小和音调
===============================================================================
=end

module M5ChanBgm
#==============================================================================
#设定部分
#==============================================================================

#这里设置HP的比率,当队伍的HP总百分比小于这个比率时切换BGM
DANGER = 95

#这里设置切换的BGM,不需要加路径名,可以不加后缀名,留空""切换BGM
BGM = ""

#音量的改变定量(1~100),0为不改变
VOL = 0
#音量的改变量(-100~+100),0为不改变
CVOL = 0

#音调的改变定量(50~150),0为不改变
PITCH = 0
#音调的改变量(-50~+50),0为不改变
CPITCH = 10


#==============================================================================
#设定结束
#==============================================================================
end


class Game_Troop < Game_Unit
def bgm_name
    if M5ChanBgm::BGM == ""
      return $data_system.battle_bgm.name
    else
      return M5ChanBgm::BGM
    end
end

def bgm_vol
    if M5ChanBgm::VOL
      return $data_system.battle_bgm.volume
    else
      return M5ChanBgm::VOL
    end
end

def bgm_pitch
    if M5ChanBgm::PITCH
      return $data_system.battle_bgm.pitch
    else
      return M5ChanBgm::PITCH
    end
end

def change_bgm   
    hp = 0
    mhp = 0
    @pos = 0 if !@pos
    @danger = false if @danger == nil   
    $game_party.battle_members.each do |actor|
      hp += actor.hp
      mhp += actor.mhp
    end
    if hp.to_f / mhp < (M5ChanBgm::DANGER * 0.01)
      if !@danger
      @pos = Audio.bgm_pos
      Audio.bgm_play("Audio/BGM/"+bgm_name,bgm_vol + M5ChanBgm::CVOL, bgm_pitch + M5ChanBgm::CPITCH )
      @danger = true
      end
    else
      if @danger
      $game_system.battle_bgm.play(@pos)
      @danger = false
      end
    end
end

alias m5_setup_battle_event setup_battle_event
def setup_battle_event
    change_bgm
    m5_setup_battle_event
end
end

页: [1]
查看完整版本: 【优化】血量低于某值时自动切换BGM