查看: 2041|回复: 3

[已经解决] 我想做一个全语音战斗

[复制链接]
梦石
0
星屑
50
在线时间
157 小时
注册时间
2013-8-20
回帖
189
发表于 2013-11-28 19:26:51 | 显示全部楼层 |阅读模式

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

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

×
我想做一个全语音战斗,就像游戏“默砂之歌”那样的,@迷糊的安安 ,你能给我提供一下脚本吗?正巧我和你一样也用碧之轨迹里的语音,谢谢。

砂上描绘的愿想<

梦石
15
星屑
4156
在线时间
5078 小时
注册时间
2012-1-15
回帖
4362

开拓者贵宾短篇七成年组亚军剧作品鉴家

发表于 2013-11-28 20:03:28 | 显示全部楼层
=w= 脚本都是发布区找的。
无明病目虚空见花月 睁眼梦不绝
回复

使用道具 举报

梦石
0
星屑
55
在线时间
416 小时
注册时间
2012-11-30
回帖
146
发表于 2013-11-29 12:17:07 | 显示全部楼层
放技能时播放SE??

<object width="630" height="500" align="middle" id="reader" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-44455354000
回复

使用道具 举报

梦石
0
星屑
4235
在线时间
2671 小时
注册时间
2012-3-1
回帖
680
发表于 2013-12-9 18:21:19 | 显示全部楼层
本帖最后由 卡奥尼特 于 2013-12-9 18:41 编辑

http://www.atelier-rgss.com/RGSS/Battle/ACE_BAT10.html
战斗全语音的脚本,大概就是这个了。但我没有用过这个脚本
此脚本不能直接贴到脚本编辑器上,还需要对应的声音文件
SE.rar (1.33 MB, 下载次数: 60)
[pre lang="ruby" line="1"]#==============================================================================
# +++ MOG - Battle Cry (V1.0) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#==============================================================================
# Sistema de execução de multiplas vozes aleatórias durante a batalha.
# O sistema funciona tanto para inimigos como para os personagens.
#===============================================================================
module MOG_BATTLE_CRY
  
  # Não modifique essa parte.
  # ☢CAUTION!!☢ Don't Touch.^_^
  ACTOR_SKILL = []
  ACTOR_ITEM = []
  ACTOR_GENERAL_ACTION = []
  ACTOR_DAMAGE = []
  ACTOR_RECOVER = []
  ACTOR_DEFEATED = []
  ACTOR_BATTLE_START = []  
  ACTOR_BATTLE_END = []
  ACTOR_BATTLE_ESCAPE = []
  ACTOR_TURN_ACTIVE = []
  ACTOR_LEVEL_UP = []  
  ENEMY_SKILL = []
  ENEMY_GENERAL_ACTION = []
  ENEMY_DAMAGE = []
  ENEMY_RECOVER = []
  ENEMY_DEFEATED = []
  
  # ----------------------------------------------------------------------------
  # Definição do volume da voz.
  VOLUME = 130
  
  # Exemplo de configuração geral, o modo de configurar é igual para todas as
  # ações do battler.
  #
  # ACTOR_SKILL[ A ] = {  B=>["C","C","C"],
  #
  # A - ID do battler.
  # B - ID da skill. (Caso necessário)
  # C - Nome do arquivo de som.
  
  
  #----------------------------------------------------------------------------
  # BATTLE START
  #----------------------------------------------------------------------------  
  ACTOR_BATTLE_START[1] = ["V_ACT1_START_1","V_ACT1_START_2"]
  ACTOR_BATTLE_START[2] = ["V_ACT2_START_1","V_ACT2_START_2","V_ACT2_START_3"]
  ACTOR_BATTLE_START[3] = ["V_ACT3_START_1","V_ACT3_START_2"]
  ACTOR_BATTLE_START[4] = ["V_ACT4_START_1","V_ACT4_START_2","V_ACT4_START_3"]
  
  #----------------------------------------------------------------------------
  # BATTLE END
  #----------------------------------------------------------------------------   
  ACTOR_BATTLE_END[1] = ["V_ACT1_WIN_1","V_ACT1_WIN_2"]
  ACTOR_BATTLE_END[2] = ["V_ACT2_WIN_1","V_ACT2_WIN_2","V_ACT2_WIN_3"]
  ACTOR_BATTLE_END[3] = ["V_ACT3_WIN_1","V_ACT3_WIN_2","V_ACT3_WIN_3"]
  ACTOR_BATTLE_END[4] = ["V_ACT4_WIN_1","V_ACT4_WIN_2"]
  
  #----------------------------------------------------------------------------
  # BATTLE ESCAPE
  #----------------------------------------------------------------------------      
  ACTOR_BATTLE_ESCAPE[1] = ["V_ACT1_SKILL_9"]
  ACTOR_BATTLE_ESCAPE[2] = ["V_ACT2_SKILL_4"]
  ACTOR_BATTLE_ESCAPE[3] = ["V_ACT3_SKILL_4"]
  ACTOR_BATTLE_ESCAPE[4] = ["V_ACT4_SKILL_7"]
  
  #----------------------------------------------------------------------------
  # ACTOR TURN ACTIVE
  #----------------------------------------------------------------------------
  # Funciona apenas com script MOG AT SYSTEM.
  ACTOR_TURN_ACTIVE[1] = ["V_ACT1_TURN_1","V_ACT1_TURN_2","V_ACT1_TURN_3"]
  ACTOR_TURN_ACTIVE[2] = ["V_ACT2_TURN_1","V_ACT2_TURN_2","V_ACT2_TURN_3"]
  ACTOR_TURN_ACTIVE[3] = ["V_ACT3_TURN_1","V_ACT3_TURN_2","V_ACT3_TURN_3"]
  ACTOR_TURN_ACTIVE[4] = ["V_ACT4_TURN_1","V_ACT4_TURN_2","V_ACT4_TURN_3"]  
  
  #----------------------------------------------------------------------------
  # ACTOR LEVEL UP
  #----------------------------------------------------------------------------  
  ACTOR_LEVEL_UP[1] = ["V_ACT1_TURN_1"]
  ACTOR_LEVEL_UP[2] = ["V_ACT2_TURN_1"]
  ACTOR_LEVEL_UP[3] = ["V_ACT3_TURN_1"]
  ACTOR_LEVEL_UP[4] = ["V_ACT4_TURN_1"]
  
  #----------------------------------------------------------------------------
  # ACTOR SKILL
  #----------------------------------------------------------------------------
  ACTOR_SKILL[1] = {
  1=>["V_ACT1_ATTACK_1","V_ACT1_ATTACK_2","V_ACT1_ATTACK_3"],
  2=>["V_ACT1_WIN_1","V_ACT1_WIN_2"]
  }  
  
  ACTOR_SKILL[2] = {
  1=>["V_ACT2_ATTACK_1","V_ACT2_ATTACK_2","V_ACT2_ATTACK_3"],
  2=>["V_ACT2_WIN_1","V_ACT2_WIN_2","V_ACT2_WIN_3"],
  26=>["V_ACT2_SKILL_6","V_ACT2_SKILL_7","V_ACT2_SKILL_8"],
  29=>["V_ACT2_SKILL_6","V_ACT2_SKILL_7","V_ACT2_SKILL_8"],
  32=>["V_ACT2_SKILL_6","V_ACT2_SKILL_7","V_ACT2_SKILL_8"],
  33=>["V_ACT2_SKILL_6","V_ACT2_SKILL_7","V_ACT2_SKILL_8"],
  }
  
  ACTOR_SKILL[3] = {
  1=>["V_ACT3_ATTACK_1","V_ACT3_ATTACK_2","V_ACT3_ATTACK_3"],
  2=>["V_ACT3_SKILL_4"],
  26=>["V_ACT3_SKILL_3","V_ACT3_SKILL_6","V_ACT3_SKILL_7"],
  76=>["V_ACT3_SKILL_3","V_ACT3_SKILL_6","V_ACT3_SKILL_7"],
  77=>["V_ACT3_SKILL_3","V_ACT3_SKILL_6","V_ACT3_SKILL_7"],
  78=>["V_ACT3_SKILL_3","V_ACT3_SKILL_6","V_ACT3_SKILL_7"]
  }
  
  ACTOR_SKILL[4] = {
  1=>["V_ACT4_ATTACK_1","V_ACT4_ATTACK_2","V_ACT4_ATTACK_3"],
  2=>["V_ACT4_SKILL_3","V_ACT4_SKILL_8"],
  51=>["V_ACT4_SKILL_1","V_ACT4_SKILL_4","V_ACT4_SKILL_6","V_ACT4_SKILL_9"],
  53=>["V_ACT4_SKILL_1","V_ACT4_SKILL_4","V_ACT4_SKILL_6","V_ACT4_SKILL_9"],
  61=>["V_ACT4_SKILL_1","V_ACT4_SKILL_4","V_ACT4_SKILL_6","V_ACT4_SKILL_9"],
  66=>["V_ACT4_SKILL_1","V_ACT4_SKILL_4","V_ACT4_SKILL_6","V_ACT4_SKILL_9"],
  74=>["V_ACT4_SKILL_1","V_ACT4_SKILL_4","V_ACT4_SKILL_6","V_ACT4_SKILL_9"]
  }
  
  #----------------------------------------------------------------------------
  # ACTOR ITEM
  #----------------------------------------------------------------------------
  ACTOR_ITEM[1] = {
  1=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"], 2=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"],
  3=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"], 4=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"],
  5=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"], 6=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"],
  7=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"], 8=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"],
  17=>["V_ACT1_SKILL_6","V_ACT1_SKILL_7"]
  }  
  
  ACTOR_ITEM[2] = {
  1=>["V_ACT2_RECOVER_2"],  2=>["V_ACT2_RECOVER_2"],  3=>["V_ACT2_RECOVER_2"],
  4=>["V_ACT2_RECOVER_2"],  5=>["V_ACT2_RECOVER_2"],  6=>["V_ACT2_RECOVER_2"],
  7=>["V_ACT2_RECOVER_2"],  8=>["V_ACT2_RECOVER_2"],  17=>["V_ACT2_RECOVER_2"]
  }
  
  ACTOR_ITEM[3] = {
  1=>["V_ACT3_WIN_2"],  2=>["V_ACT3_WIN_2"],  3=>["V_ACT3_WIN_2"],
  4=>["V_ACT3_WIN_2"],  5=>["V_ACT3_WIN_2"],  6=>["V_ACT3_WIN_2"],
  7=>["V_ACT3_WIN_2"],  8=>["V_ACT3_WIN_2"],  17=>["V_ACT3_WIN_2"]
  }  
   
  ACTOR_ITEM[4] = {
  1=>["V_ACT4_START_3"],  2=>["V_ACT4_START_3"],  3=>["V_ACT4_START_3"],
  4=>["V_ACT4_START_3"],  5=>["V_ACT4_START_3"],  6=>["V_ACT4_START_3"],
  7=>["V_ACT4_START_3"],  8=>["V_ACT4_START_3"],  17=>["V_ACT4_START_3"]
  }  
  
  #----------------------------------------------------------------------------
  # ACTOR GENERAL ACTION *( STANDARD / FOR ALL SKILLS / ITEMS)
  #----------------------------------------------------------------------------  
  # Definição das vozes para habilidades não especificas. Essas vozes serão
  # ativadas em todas habilidades que não estejam definidas na função ACTOR SKILL.
  # Naturalmente se não desejar essa função basta não definir nada.
  ACTOR_GENERAL_ACTION[2] = ["V_ACT2_ATTACK_1","V_ACT2_ATTACK_2","V_ACT2_ATTACK_3"]
  
  #----------------------------------------------------------------------------
  # ACTOR DAMAGE
  #----------------------------------------------------------------------------
  ACTOR_DAMAGE[1] = ["V_ACT1_DAMAGE_1","V_ACT1_DAMAGE_2"]
  ACTOR_DAMAGE[2] = ["V_ACT2_DAMAGE_1","V_ACT2_DAMAGE_2","V_ACT2_DAMAGE_3"]
  ACTOR_DAMAGE[3] = ["V_ACT3_DAMAGE_1","V_ACT3_DAMAGE_2","V_ACT3_DAMAGE_3"]
  ACTOR_DAMAGE[4] = ["V_ACT4_DAMAGE_1","V_ACT4_DAMAGE_2","V_ACT4_DAMAGE_3"]
   
  #----------------------------------------------------------------------------
  # ACTOR RECOVER
  #----------------------------------------------------------------------------
  ACTOR_RECOVER[1] = ["V_ACT1_RECOVER_1","V_ACT1_RECOVER_2"]
  ACTOR_RECOVER[2] = ["V_ACT2_RECOVER_1","V_ACT2_RECOVER_2"]
  ACTOR_RECOVER[3] = ["V_ACT3_RECOVER_1","V_ACT3_RECOVER_2"]
  ACTOR_RECOVER[4] = ["V_ACT4_RECOVER_1","V_ACT4_RECOVER_2"]
  
  #----------------------------------------------------------------------------
  # ACTOR DEFEATED
  #----------------------------------------------------------------------------
  ACTOR_DEFEATED[1] = ["V_ACT1_DEFEAT_1"]
  ACTOR_DEFEATED[2] = ["V_ACT2_DEFEAT_1"]
  ACTOR_DEFEATED[3] = ["V_ACT3_DEFEAT_1"]
  ACTOR_DEFEATED[4] = ["V_ACT4_DEFEAT_1","V_ACT4_DEFEAT_2"]  
  
  #----------------------------------------------------------------------------
  # ENEMY SKILL
  #----------------------------------------------------------------------------
  ENEMY_SKILL[7] = {
  135=>["V_ENE1_SKILL_3"]
  }   
  ENEMY_SKILL[9] = {
  137=>["Cel_Attack_01","Cel_Attack_02","Cel_Attack_03","Cel_Attack_04"]
  }      
  
  
  #----------------------------------------------------------------------------
  # ENEMY GENERAL SKILLS
  #----------------------------------------------------------------------------  
  ENEMY_GENERAL_ACTION[7] = ["V_ENE1_ATTACK_1","V_ENE1_ATTACK_2","V_ENE1_ATTACK_3"]
  
  #----------------------------------------------------------------------------
  # ENEMY DAMAGE
  #----------------------------------------------------------------------------
  ENEMY_DAMAGE[7] = ["V_ENE1_DAMAGE_1","V_ENE1_DAMAGE_2","V_ENE1_DAMAGE_3"]
  ENEMY_DAMAGE[9] = ["Cel_Damage1","Cel_Damage2"]
  
  #----------------------------------------------------------------------------
  # ENEMY RECOVER
  #----------------------------------------------------------------------------
  ENEMY_RECOVER[7] = []
  
  #----------------------------------------------------------------------------
  # ENEMY DEFEATED
  #----------------------------------------------------------------------------
  ENEMY_DEFEATED[7] =  ["V_ENE1_DEFEAT_1"]

end

#===============================================================================
# ■ Battle Cry
#===============================================================================
module BATTLE_CRY
  
  include MOG_BATTLE_CRY
  
  #--------------------------------------------------------------------------
  # ● Execute Battle Cry
  #--------------------------------------------------------------------------      
  def execute_battle_cry(type = 0, skill_id = nil, battler = nil)
      @type = type
      @skill_id = skill_id
      @battler = battler
      case @type
         when 0 # START #
           check_members_alive
           voice_list = ACTOR_BATTLE_START[@battler.id] rescue nil         
         when 1 # END   #
            check_members_alive
            voice_list = ACTOR_BATTLE_END[@battler.id] rescue nil
         when 2 # SKILL #
            if @battler.is_a?(Game_Actor)
               voice = ACTOR_SKILL[@battler.id] rescue nil     
            else  
               voice = ENEMY_SKILL[@battler.enemy_id] rescue nil
            end
            voice_list = voice[@skill_id] rescue nil
            if voice_list == nil # GENERAL ACTION
               if @battler.is_a?(Game_Actor)
                  voice_list = ACTOR_GENERAL_ACTION[@battler.id] rescue nil     
               else  
                  voice_list = ENEMY_GENERAL_ACTION[@battler.enemy_id] rescue nil
               end
            end  
         when 3 # DAMAGE #
            if @battler.hp > 0
               if @battler.is_a?(Game_Actor)
                  voice_list = ACTOR_DAMAGE[@battler.id] rescue nil     
               else  
                  voice_list = ENEMY_DAMAGE[@battler.enemy_id] rescue nil
               end            
            else # DEFEATED #
               if @battler.is_a?(Game_Actor)
                  voice_list = ACTOR_DEFEATED[@battler.id] rescue nil     
               else  
                  voice_list = ENEMY_DEFEATED[@battler.enemy_id] rescue nil
               end                        
            end
         when 4 # RECOVER #
              if @battler.is_a?(Game_Actor)
                 voice_list = ACTOR_RECOVER[@battler.id] rescue nil     
              else  
                 voice_list = ENEMY_RECOVER[@battler.enemy_id] rescue nil
              end            
         when 5 # ITEM #
               voice = ACTOR_ITEM[@battler.id] rescue nil     
               voice_list = voice[@skill_id] rescue nil
            if voice_list == nil # GENERAL SKILLS
               voice_list = ACTOR_GENERAL_ACTION[@battler.id] rescue nil     
            end         
         when 6 # START #
               check_members_alive
               voice_list = ACTOR_BATTLE_ESCAPE[@battler.id] rescue nil
         when 7 # TURN #
               voice_list = ACTOR_TURN_ACTIVE[@battler.id] rescue nil            
      end
      play_battle_cry(voice_list)
      check_battle_addons
  end
  
  #--------------------------------------------------------------------------
  # ● Play Battle Cry
  #--------------------------------------------------------------------------      
  def play_battle_cry(voice_list)
      return if voice_list == nil
      voice_id = voice_list[rand(voice_list.size)]
      Audio.se_play("Audio/SE/" + voice_id.to_s,VOLUME,100) rescue nil      
  end
  
  #--------------------------------------------------------------------------
  # ● Check Members Alive
  #--------------------------------------------------------------------------        
  def check_members_alive
      alive_members = []
      id = 0
      for i in $game_party.battle_members
          alive_members.push(i) if i.hp > 0
      end   
      members_id = rand(alive_members.size)
      for i in alive_members
          if members_id == id
             @battler = i
             break
          end   
          id += 1
       end            
       @battler = alive_members[members_id]
  end     
  
  #--------------------------------------------------------------------------
  # ● Check Battle Addons
  #--------------------------------------------------------------------------      
  def check_battle_addons
      if $mog_rgss3_battle_hud != nil and MOG_BATTLE_HUD::BATTLER_FACE_ENABLE and
         @battler != nil and @battler.is_a?(Game_Actor)
         if @type == 0 or @type == 1 or @type == 6
            @battler.battler_face = [2,3,50]
         elsif @type == 7
            @battler.battler_face = [0,3,50]
         end   
      end  
  end  
  
end

#==============================================================================
# ■ BattleManager
#==============================================================================
class << BattleManager
  include BATTLE_CRY

  #--------------------------------------------------------------------------
  # ● Battle Start
  #--------------------------------------------------------------------------  
  alias mog_battle_cry_battle_start battle_start
  def battle_start
      mog_battle_cry_battle_start
    #  execute_battle_cry(0, nil, nil)
  end  
  
  #--------------------------------------------------------------------------
  # ● Process Victory
  #--------------------------------------------------------------------------   
  alias mog_battle_cry_process_victory process_victory
  def process_victory
      execute_battle_cry(1, nil, nil)         
      mog_battle_cry_process_victory
  end  
  
  #--------------------------------------------------------------------------
  # ● Process Abort
  #--------------------------------------------------------------------------      
  alias mog_battle_cry_process_abort process_abort
  def process_abort
      execute_battle_cry(6, nil, nil)
      mog_battle_cry_process_abort
  end  
  
end

#==============================================================================
# ■ Game Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
  include BATTLE_CRY
  
  #--------------------------------------------------------------------------
  # ● Execute Damage
  #--------------------------------------------------------------------------      
  alias mog_battle_cry_execute_damage execute_damage
  def execute_damage(user)
      mog_battle_cry_execute_damage(user)   
      execute_battle_cry_damage
  end

  #--------------------------------------------------------------------------
  # ● Execute Battle Cry Damage
  #--------------------------------------------------------------------------        
  def execute_battle_cry_damage
      if @result.hp_damage > 0
         execute_battle_cry(3, nil, self)
      elsif @result.hp_damage < 0   
         execute_battle_cry(4, nil, self)
      else
         if @result.hp_damage == 0
            if @result.mp_damage > 0
               execute_battle_cry(3, nil, self)
            elsif @result.mp_damage < 0
               execute_battle_cry(4, nil, self)
            end   
         end   
      end
  end  

  #--------------------------------------------------------------------------
  # ● Item Effect Recover HP
  #--------------------------------------------------------------------------         
  alias mog_battle_cry_item_effect_recover_hp item_effect_recover_hp  
  def item_effect_recover_hp(user, item, effect)
      chp = self.hp
      mog_battle_cry_item_effect_recover_hp(user, item, effect)
      if self.hp > chp
         execute_battle_cry(4, nil, self)
      elsif self.hp < chp
         execute_battle_cry(3, nil, self)
      end  
  end
   
  #--------------------------------------------------------------------------
  # ● Item Effect Reover MP
  #--------------------------------------------------------------------------            
  alias mog_battle_cry_item_effect_recover_mp item_effect_recover_mp
  def item_effect_recover_mp(user, item, effect)
      cmp = self.mp
      mog_battle_cry_item_effect_recover_mp(user, item, effect)
      if self.mp > cmp
         execute_battle_cry(4, nil, self)
      elsif self.mp < cmp
         execute_battle_cry(3, nil, self)
      end        
  end  
  
end

#==============================================================================
# ■ Game Action
#==============================================================================
class Scene_Battle < Scene_Base
include BATTLE_CRY
  
  #--------------------------------------------------------------------------
  # ● Show Animations
  #--------------------------------------------------------------------------     
  alias mog_battle_cry_show_animation show_animation
  def show_animation(targets, animation_id)
      if @subject.is_a?(Game_Actor) and @subject.current_action.item.is_a?(RPG::Item)
          execute_battle_cry(5, @subject.current_action.item.id, @subject)
      else   
          execute_battle_cry(2, @subject.current_action.item.id, @subject)
      end  
      mog_battle_cry_show_animation(targets, animation_id)
  end
  
  if $mog_rgss3_at_system != nil
  #--------------------------------------------------------------------------
  # ● Update AT Actor
  #--------------------------------------------------------------------------            
  alias mog_battle_cry_update_at_actor update_at_actor
  def update_at_actor(battler)   
       mog_battle_cry_update_at_actor(battler)  
       execute_battle_cry(7, nil, battler) if battler.is_a?(Game_Actor)
  end   
  end   
  
  #--------------------------------------------------------------------------
  # ● Battle Start
  #--------------------------------------------------------------------------  
  alias mog_battle_cry_update_battle update
  def update
      mog_battle_cry_update_battle
      execute_battle_cry_start
  end   
  
  #--------------------------------------------------------------------------
  # ● Execite Battle Cry Start
  #--------------------------------------------------------------------------   
  def execute_battle_cry_start
      return if @battle_cry_start != nil
      @battle_cry_start = true
      execute_battle_cry(0, nil, nil)
  end
end  

$mog_rgss3_battle_cry = true[/pre]   

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 感谢帮忙

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部