TheoAllen

Theo - Minimum Level Equip

Aug 5th, 2013
458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.12 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Minimum Level Equip Requirement
  3. # Version : 1.0c
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_MinLevelEquip] = true
  8. # =============================================================================
  9. # CHANGE LOGS:
  10. # -----------------------------------------------------------------------------
  11. # 2013.09.21 - Bug fix when optimizing equip
  12. # 2013.08.10 - Bug fix when unequip item
  13. # 2013.08.05 - Finished script
  14. # =============================================================================
  15. =begin
  16.  
  17.   Perkenalan :
  18.   Script ini ngebikin setiap equip bisa disetting level minimalnya buat
  19.   digunain
  20.  
  21.   Cara penggunaan :
  22.   Pasang dibawah material namun diatas main
  23.   Gunakan notetag <min level: n> pada note equip. Dimana n adalah level minimal
  24.   yang dibutuhkan untuk diequip
  25.  
  26.   Terms of Use :
  27.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  28.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  29.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.
  30.  
  31. =end
  32. # =============================================================================
  33. # Tidak ada konfigurasi
  34. # =============================================================================
  35. class << DataManager
  36.  
  37.   alias theo_equip_level_load_db load_database
  38.   def load_database
  39.     theo_equip_level_load_db
  40.     load_equip_minimum_level
  41.   end
  42.  
  43.   def load_equip_minimum_level
  44.     ($data_armors + $data_weapons).compact.each do |equip|
  45.       equip.load_minimum_level_req
  46.     end
  47.   end
  48.  
  49. end
  50.  
  51. class RPG::EquipItem < RPG::BaseItem
  52.   attr_accessor :minimum_level
  53.  
  54.   def load_minimum_level_req
  55.     @minimum_level = 1
  56.     self.note.split(/[\r\n]+/).each do |line|
  57.       case line
  58.       when /<(?:MIN_LEVEL|min level): [ ]*(\d+)>/i
  59.         @minimum_level = $1.to_i
  60.       end
  61.     end
  62.   end
  63.  
  64. end
  65.  
  66. class Window_EquipItem < Window_ItemList
  67.  
  68.   alias theo_min_equip_level_enable? enable?
  69.   def enable?(item)
  70.     return theo_min_equip_level_enable?(item) && sufficient_level?(item)
  71.   end
  72.  
  73.   def sufficient_level?(item)
  74.     return true unless item
  75.     return @actor.level >= item.minimum_level
  76.   end
  77.  
  78. end
  79.  
  80. class Game_Actor < Game_Battler
  81.   #--------------------------------------------------------------------------
  82.   # Overwrite Optimize Equipment
  83.   #--------------------------------------------------------------------------
  84.   def optimize_equipments
  85.     clear_equipments
  86.     equip_slots.size.times do |i|
  87.       next if !equip_change_ok?(i)
  88.       items = $game_party.equip_items.select do |item|
  89.         item.etype_id == equip_slots[i] &&
  90.         equippable?(item) && item.performance >= 0 &&
  91.         sufficient_equip_level?(item)
  92.       end
  93.       change_equip(i, items.max_by {|item| item.performance })
  94.     end
  95.   end
  96.  
  97.   def sufficient_equip_level?(item)
  98.     level >= item.minimum_level
  99.   end
  100. end
Advertisement
Add Comment
Please, Sign In to add comment