TheoAllen

Theo - Enemy Level Scaling

Jan 30th, 2014
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.90 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Enemy Level Scaling
  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. # Requires :
  8. # >> Theo - Enemy Class & Level
  9. # >> Theo - Condition Checker (Optional)
  10. # =============================================================================
  11. ($imported ||= {})[:Theo_ELevelScalling] = true
  12. # =============================================================================
  13. # Change Logs:
  14. # -----------------------------------------------------------------------------
  15. # 2014.01.31 - Finished Script
  16. # =============================================================================
  17. =begin
  18.  
  19.   ----------------------------------------------------------------------------
  20.   Perkenalan :
  21.   Ini adalah script addon dari script enemy class n level gw. Seperti titlenya,
  22.   script ini untuk ngebikin kamu bisa ngebuat skala level enemy dimana level
  23.   enemy ngikutin karakter
  24.  
  25.   ----------------------------------------------------------------------------
  26.   Cara penggunaan :
  27.   Pasang script ini di bawah script "Theo - Enemy Class and Level"
  28.  
  29.   ----------------------------------------------------------------------------
  30.   Notetags (gunakan pada note di database enemy) :
  31.  
  32.   <level max: n>
  33.   Untuk menentukan sampai level berapa enemy akan terus naek ngikutin party
  34.  
  35.   <exp per level: n>
  36.   Tambahan EXP jika level enemy naek ngikutin party. Semisal level awalnya 1
  37.   dan musuh naek level 3 karena ngikutin party. Jika reward exp awalnya cuman
  38.   10 maka jika kamu gunakan notetag ini, reward EXP akan bertambah n * level
  39.  
  40.   ----------------------------------------------------------------------------
  41.   Terms of use :
  42.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  43.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  44.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.
  45.  
  46. =end
  47. # =============================================================================
  48. # Sedikit konfigurasi :
  49. # =============================================================================
  50. module THEO
  51.   module ENEMY
  52.    
  53.   # =========================================================================
  54.     Party_Level = 1  # Party level mode checker
  55.   # -------------------------------------------------------------------------
  56.   # Mode pengecekan level scaling. Kamu bisa mengisinya dengan angka 1 s.d 3
  57.   # Berikut keterangan e
  58.   #
  59.   # 1. Highest Level
  60.   # 2. Average Level (Butuh Theo - Condition Checker)
  61.   # 3. Lowest Level (Butuh Theo - Condition Checker)
  62.   #
  63.   # Jika di dalam party kamu terdapat actor dengan level 1,3,5,7 dan kamu
  64.   # mengeset mode ini ke angka 1 maka level enemy adalah 7
  65.   # =========================================================================
  66.    
  67.   # =========================================================================
  68.     Exp_Plus = 10
  69.   # -------------------------------------------------------------------------
  70.   # Nilai default dari exp per level yang udah gw jelasin diatas
  71.   # =========================================================================
  72.    
  73.   end
  74. end
  75. # =============================================================================
  76. # Akhir dari konfigurasi
  77. # =============================================================================
  78. class RPG::Enemy < RPG::BaseItem
  79.   attr_accessor :level_max
  80.   attr_accessor :exp_plus
  81.  
  82.   alias theo_elevel_scalling_load_cnl load_class_and_level
  83.   def load_class_and_level
  84.     theo_elevel_scalling_load_cnl
  85.     @level_max = 99
  86.     @exp_plus = THEO::ENEMY::Exp_Plus
  87.     note.split(/[\r\n]+/).each do |line|
  88.       case line
  89.       when /<level[\s_]+max\s*:\s*(\d+)>/
  90.         @level_max = $1.to_i
  91.       when /<exp[\s_]+per[\s_]+level\s*:\s*(\d+)>/i
  92.         @exp_plus = $1.to_i
  93.       end
  94.     end
  95.   end
  96.  
  97. end
  98.  
  99. class Game_Enemy < Game_Battler
  100.  
  101.   alias theo_elevel_scaling_setup setup_class_and_level
  102.   def setup_class_and_level(enemy_id)
  103.     theo_elevel_scaling_setup(enemy_id)
  104.     @level = [[party_level, @level].max,$data_enemies[enemy_id].level_max].min
  105.   end
  106.  
  107.   def party_level
  108.     case Party_Level
  109.     when 1
  110.       return $game_party.highest_level
  111.     when 2
  112.       return $game_party.average_level
  113.     when 3
  114.       return $game_party.lowest_level
  115.     else
  116.       return $game_party.highest_level
  117.     end
  118.   end
  119.  
  120.   alias theo_elevel_scaling_exp exp
  121.   def exp
  122.     theo_elevel_scaling_exp + exp_scale_plus
  123.   end
  124.  
  125.   def exp_scale_plus
  126.     (@level - $data_enemies[enemy_id].level) * $data_enemies[enemy_id].exp_plus
  127.   end
  128.  
  129. end
  130.  
  131. if [2,3].any? {|type|THEO::ENEMY::Party_Level == type } &&
  132.   !$imported[:Theo_ConditionCheck]
  133.   msgbox "This script need Theo - Condition Checker"
  134.   exit
  135. end
Advertisement
Add Comment
Please, Sign In to add comment