TheoAllen

Theo - Enemy Swapper

Nov 7th, 2013
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.10 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Enemy Swapper
  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_EnemySwapper] = true
  8. # =============================================================================
  9. # Change Logs:
  10. # -----------------------------------------------------------------------------
  11. # 2013.11.08 - Finished script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Bosan dengan isi troop member yang itu-itu aja? Ingin membuat isi troop
  17.   member yang lebih dinamis? Script ini bisa mengabulkan keinginanmu
  18.  
  19.   Cara penggunaan :
  20.   Pasang dibawah material namun diatas main
  21.   Gunakan notetag <swap: id,id,id> pada notebox di database enemy
  22.   dimana id adalah id enemy yang bakal jadi kandidat pengganti enemy tersebut
  23.  
  24.   Semisal ...
  25.   Kamu menuliskan <swap: 1,2,3,4,5,6> pada slime (id-nya slime = 1)
  26.   Nanti saat battle, slime akan diganti dengan enemy yg memiliki id dengan
  27.   nomor 1,2,3,4,5,6
  28.  
  29.   Kamu bisa mengisi id sebanyak-banyaknya
  30.  
  31.   Terms of use :
  32.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  33.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  34.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.    
  35.  
  36. =end
  37. # =============================================================================
  38. # Tidak ada konfigurasi
  39. # =============================================================================
  40. class RPG::Enemy < RPG::BaseItem
  41.   attr_accessor :swap
  42.  
  43.   def load_swap_notetag
  44.     @swap = []
  45.     note.split(/[\r\n]+/).each do |line|
  46.       if line =~ /<swap:[ ]*(.*)>/i
  47.         @swap = $1.to_s.split(/,/).collect do |enemy_id|
  48.           id = enemy_id.to_i
  49.           next if id == 0
  50.           id
  51.         end.compact
  52.       end
  53.     end
  54.   end
  55.  
  56. end
  57.  
  58. class << DataManager
  59.  
  60.   alias theo_enemyswap_load_db load_database
  61.   def load_database
  62.     theo_enemyswap_load_db
  63.     load_eswap
  64.   end
  65.  
  66.   def load_eswap
  67.     $data_enemies.compact.each do |enemy|
  68.       enemy.load_swap_notetag
  69.     end
  70.   end
  71.  
  72. end
  73.  
  74. class Game_Troop < Game_Unit
  75.  
  76.   alias theo_enemyswap_uniq_name make_unique_names
  77.   def make_unique_names
  78.     swap_enemy_members
  79.     theo_enemyswap_uniq_name
  80.   end
  81.  
  82.   def swap_enemy_members
  83.     members.each_with_index do |game_enemy, index|
  84.       enemy_data = $data_enemies[game_enemy.enemy_id]
  85.       next if enemy_data.swap.empty?
  86.       new_id = enemy_data.swap[rand(enemy_data.swap.size)]
  87.       @enemies[index].change_id(new_id)
  88.     end
  89.   end
  90.  
  91. end
  92.  
  93. class Game_Enemy < Game_Battler
  94.  
  95.   def change_id(enemy_id)
  96.     @enemy_id = enemy_id
  97.     enemy = $data_enemies[@enemy_id]
  98.     @original_name = enemy.name
  99.     @letter = ""
  100.     @plural = false
  101.     @battler_name = enemy.battler_name
  102.     @battler_hue = enemy.battler_hue
  103.     @hp = mhp
  104.     @mp = mmp
  105.   end
  106.  
  107. end
Advertisement
Add Comment
Please, Sign In to add comment