TheoAllen

Theo - Random Battle Music

May 10th, 2013
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.50 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Random Battle Music
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_BattleSound] = true
  8. # =============================================================================
  9. # CHANGE LOGS:
  10. # -----------------------------------------------------------------------------
  11. # 2013.05.11 - Started and Finished script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Script ini bisa ngebikin game ngeplay lagu battle berbeda-beda secara random.
  17.   Kamu juga bisa ngeset victory ME yang berbeda-beda
  18.  
  19.   Cara pakai :
  20.   Pasang script ini diatas main tapi dibawah material
  21.   Untuk penggunaan dalam script call, kamu bisa tulis seperti ini
  22.  
  23.   Penambahan lagu :
  24.   - add_battle_bgm(nama)
  25.   - add_battle_bgm(nama,volume)
  26.   - add_battle_bgm(nama,volume,pitch)
  27.  
  28.   Penambahan victory ME
  29.   - add_victory_me(nama)
  30.   - add_victory_me(nama,volume)
  31.   - add_victory_me(nama,volume,pitch)
  32.  
  33.   Pengurangan :
  34.   - remove_battle_bgm(nama)
  35.   - remove_victory_me(nama)
  36.  
  37.   Contoh penulisan dalam script call
  38.   add_battle_bgm("battle6")
  39.   add_battle_bgm("battle5",50,150)
  40.   remove_battle_bgm("battle1")
  41.  
  42.   TERMS OF USE :
  43.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  44.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  45.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.
  46.  
  47. =end
  48. # =============================================================================
  49. # Konfigurasi :
  50. # =============================================================================
  51. module THEO
  52.   module SOUND
  53.     # -------------------------------------------------------------------------
  54.     # List Battle BGM yang bakal di-play random
  55.     # -------------------------------------------------------------------------
  56.     BATTLE_BGM = {
  57.     # "NamaBGM" => [volume, pitch],
  58.       "Battle1" => [100,100],
  59.       "Battle2" => [100,100],
  60.       "Battle3" => [100,100],      
  61.     # Tambahin sendiri
  62.    
  63.     } # <-- jangan diapus
  64.    
  65.     # -------------------------------------------------------------------------
  66.     # List victory ME yang bakal di-play random
  67.     # -------------------------------------------------------------------------
  68.     VICTORY_ME = {
  69.     # "NamaME"   => [volume, pitch],
  70.       "Victory1" => [100,100],
  71.     # Tambahin sendiri
  72.      
  73.     } # <-- jangan diapus
  74.    
  75.     # -------------------------------------------------------------------------
  76.     # Switch ID buat mati idupin random. Kalo nilainya false berarti saat
  77.     # battle nanti akan ngerandom play sound
  78.     # -------------------------------------------------------------------------
  79.     BATTLE_SWITCH   = 99
  80.     VICTORY_SWITCH  = 99
  81.    
  82.   end
  83. end
  84. # =============================================================================
  85. # Setelah ini kalo mo ngedit, tanggung sendiri akibatnya :v
  86. # =============================================================================
  87. class Game_System
  88.   attr_reader :random_battle_bgm
  89.   attr_reader :random_victory_me
  90.  
  91.   alias pre_random_battle_bgm_init initialize
  92.   def initialize
  93.     pre_random_battle_bgm_init
  94.     load_random_battle_bgm
  95.     load_random_victory_me
  96.   end
  97.  
  98.   def load_random_battle_bgm
  99.     @random_battle_bgm = []
  100.     THEO::SOUND::BATTLE_BGM.each do |name, num|
  101.       @random_battle_bgm.push(RPG::BGM.new(name,num[0],num[1]))
  102.     end
  103.   end
  104.  
  105.   def load_random_victory_me
  106.     @random_victory_me = []
  107.     THEO::SOUND::VICTORY_ME.each do |name, num|
  108.       @random_victory_me.push(RPG::ME.new(name,num[0],num[1]))
  109.     end
  110.   end
  111.  
  112.   def add_battle_bgm=(bgm)
  113.     return if @random_battle_bgm.any? {|battle_bgm|
  114.       battle_bgm.name == bgm.name
  115.     }
  116.     @random_battle_bgm.push(bgm)
  117.   end
  118.  
  119.   def add_victory_me=(me)
  120.     return if @random_victory_me.any? {|victory|
  121.       victory.name == me.name
  122.     }
  123.     @random_victory_me.push(me)
  124.   end
  125.  
  126.   def remove_battle_bgm(name)
  127.     @random_battle_bgm.delete_if {|bgm| bgm.name == name}
  128.   end
  129.  
  130.   def remove_victory_me(name)
  131.     @random_victory_me.delete_if {|me| me.name == name}
  132.   end
  133.  
  134. end
  135.  
  136. class Game_Interpreter
  137.  
  138.   def add_battle_bgm(name,vol = 100, pitch = 100)
  139.     $game_system.add_battle_bgm = RPG::BGM.new(name,vol,pitch)
  140.   end
  141.  
  142.   def add_victory_me(name,vol = 100, pitch = 100)
  143.     $game_system.add_victory_me = RPG::ME.new(name,vol,pitch)
  144.   end
  145.  
  146.   def remove_battle_bgm(name)
  147.     $game_system.remove_battle_bgm(name)
  148.   end
  149.  
  150.   def remove_victory_me(name)
  151.     $game_system.remove_victory_me(name)
  152.   end
  153.  
  154. end
  155.  
  156. module BattleManager
  157.  
  158.   class << self
  159.     alias original_play_battle_bgm play_battle_bgm
  160.     alias original_play_battle_end_me play_battle_end_me
  161.   end
  162.  
  163.   def self.play_battle_bgm
  164.     unless $game_switches[THEO::SOUND::BATTLE_SWITCH]
  165.       play_result = rand(THEO::SOUND::BATTLE_BGM.size).to_i
  166.       $game_system.random_battle_bgm[play_result].play
  167.     else
  168.       original_play_battle_bgm
  169.     end
  170.   end
  171.  
  172.   def self.play_battle_end_me
  173.     unless $game_switches[THEO::SOUND::VICTORY_SWITCH]
  174.       play_result = rand(THEO::SOUND::VICTORY_ME.size).to_i
  175.       $game_system.random_victory_me[play_result].play
  176.     else
  177.       original_play_battle_end_me
  178.     end
  179.   end
  180.  
  181. end
Advertisement
Add Comment
Please, Sign In to add comment