TheoAllen

Theo - Item Shop Level

Sep 26th, 2013
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.69 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Item Shop Level
  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_ItemShopLevel] = true
  8. # =============================================================================
  9. # CHANGE LOGS:
  10. # -----------------------------------------------------------------------------
  11. # 2013.09.28 - Finished script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Script ini ngebikin sebuah item bisa dibeli di toko jika level party udah
  17.   memenuhi syarat.
  18.  
  19.   Cara penggunaan :
  20.   Pasang dibawah material namun diatas main.
  21.   Gunakan tag <shop level: n> pada notebox item, weapon, dan armor.
  22.   Dimana n adalah level minimal yg harus dimiliki party.
  23.  
  24.   Edit konfigurasi pengecekan level jika perlu
  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. # Sedikit konfigurasi
  34. # =============================================================================
  35.  
  36.   LevelChecker = 1
  37. # Mode pengecekan
  38. # 1 - Level tertinggi dari anggota party
  39. # 2 - Level rata-rata dari anggota party (butuh Theo - Condition Checker)
  40. # 3 - Level terendah dari anggota party (butuh Theo - Condition Checker)
  41.  
  42.   Eliminate_Excluded_Item = true
  43. # [True] Kalo level party belom memasuki syarat, item ngga akan ditampilkan
  44. # [False] Item akan ditulis transparan kalo item belom bisa dibeli
  45.  
  46. # =============================================================================
  47. # Akhir dari konfig
  48. # =============================================================================
  49. class << DataManager
  50.  
  51.   alias theo_shoplevel_load_db load_database
  52.   def load_database
  53.     theo_shoplevel_load_db
  54.     load_shoplevel_db
  55.   end
  56.  
  57.   def load_shoplevel_db
  58.     ($data_items + $data_weapons + $data_armors).compact.each do |db|
  59.       db.load_shop_level
  60.     end
  61.   end
  62.  
  63. end
  64.  
  65. class RPG::Item < RPG::UsableItem
  66.   attr_accessor :shop_level
  67.  
  68.   def load_shop_level
  69.     @shop_level = 1
  70.     note.split(/[\r\n]+/).each do |line|
  71.       if line =~ /<shop level: [ ]*(\d+)>/i
  72.         @shop_level = $1.to_i
  73.       end
  74.     end
  75.   end
  76.  
  77. end
  78.  
  79. class RPG::EquipItem < RPG::BaseItem
  80.   attr_accessor :shop_level
  81.  
  82.   def load_shop_level
  83.     @shop_level = 1
  84.     note.split(/[\r\n]+/).each do |line|
  85.       if line =~ /<(SHOP_LEVEL|shop level): [ ]*(\d+)>/i
  86.         @shop_level = $1.to_i
  87.       end
  88.     end
  89.   end
  90.  
  91. end
  92.  
  93. class Window_ShopBuy < Window_Selectable
  94.  
  95.   alias theo_shoplevel_make_items make_item_list
  96.   def make_item_list
  97.     theo_shoplevel_make_items
  98.     return unless Eliminate_Excluded_Item
  99.     @data.delete_if do |data|
  100.       sufficient_party_level?(data)
  101.     end
  102.   end
  103.  
  104.   def sufficient_party_level?(item)
  105.     case LevelChecker
  106.     when 1
  107.       item.shop_level > $game_party.highest_level
  108.     when 2
  109.       item.shop_level > $game_party.average_level rescue display_error
  110.     when 3
  111.       item.shop_level > $game_party.lowest_level rescue display_error
  112.     end
  113.   end
  114.  
  115.   alias theo_shoplevel_enable? enable?
  116.   def enable?(item)
  117.     theo_shoplevel_enable?(item) && sufficient_party_level?(item)
  118.   end
  119.  
  120.   def display_error
  121.     msgbox "Requires Theo - Condition Checker"
  122.     SceneManager.exit
  123.   end
  124.  
  125. end
Advertisement
Add Comment
Please, Sign In to add comment