Advertisement
Kakakadafi

Script Fixes

Aug 3rd, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.19 KB | None | 0 0
  1. =begin
  2.     Set a multiple weapon classes id by notetag: <classes id: id, id, id, ... >
  3.     Ex: <classes id: 1, 3, 5, 8>
  4.    
  5.     Set a required weapon class to enable Armor / Accessories being equipped
  6.     by notetag: <req wpn class: number>
  7.     Ex: <req wpn class: 1>
  8.    
  9.     So, the armor / accessories can only be equipped if an equipped weapon has
  10.     the class id which is configured in armor / accessories notetag.
  11. =end
  12.  
  13. #==============================================================================
  14. # ** RPG::Armor
  15. #==============================================================================
  16.  
  17. class RPG::Armor < RPG::EquipItem
  18.   def req_wpn_class
  19.     note =~ /<req wpn class: (\d+)>/i ? $1.to_i : 0
  20.   end
  21. end
  22.  
  23. #==============================================================================
  24. # ** DataManager
  25. #==============================================================================
  26.  
  27. module DataManager
  28.  
  29.   class << self
  30.     alias pre_load_multiple_classes_database load_database
  31.   end
  32.  
  33.   def self.load_database
  34.     pre_load_multiple_classes_database
  35.     load_multiple_classes
  36.   end
  37.  
  38.   def self.load_multiple_classes
  39.     [$data_weapons].each do |database|
  40.       database.each do |obj|
  41.         next unless obj
  42.         obj.load_multiple_classes
  43.       end
  44.     end
  45.   end
  46.  
  47. end
  48.  
  49. #==============================================================================
  50. # ** RPG::EquipItem
  51. #==============================================================================
  52.  
  53. class RPG::EquipItem < RPG::BaseItem
  54.   attr_accessor :classes_array
  55.  
  56.   def load_multiple_classes
  57.     @classes_array = []
  58.     classes_regexp = /<(?:CLASSES_ID|classes id):[ ]*[ ]*(\d+(?:\s*,\s*\d+)*)>/i
  59.     self.note.split(/[\r\n]+/).each { |line|
  60.       case line
  61.       when classes_regexp
  62.         $1.scan(/\d+/).each { |num|
  63.         @classes_array.push(num.to_i) if num.to_i > 0 }
  64.       end
  65.     }
  66.   end
  67.  
  68. end
  69.  
  70. #~ #==============================================================================
  71. #~ # ** RPG::Weapon
  72. #~ #==============================================================================
  73.  
  74. #~ class RPG::Weapon < RPG::EquipItem
  75. #~   def class_id
  76. #~     note =~ /<class id: (\d+)>/i ? $1.to_i : 0
  77. #~   end
  78. #~ end
  79.  
  80. #==============================================================================
  81. # ** Window_EquipItem
  82. #==============================================================================
  83.  
  84. class Window_EquipItem < Window_ItemList
  85.   #--------------------------------------------------------------------------
  86.   # * Display in Enabled State?
  87.   #--------------------------------------------------------------------------
  88.   alias old_enable? enable?
  89.   def enable?(item)
  90.     if item && item.etype_id == @actor.equip_slots[-1]
  91.       if @actor.equips[0]
  92. #~         if item.req_wpn_class != @actor.equips[0].class_id
  93.         if !@actor.equips[0].classes_array.include?(item.req_wpn_class)
  94.           return false
  95.         else
  96.           return old_enable?(item)
  97.         end
  98.       else
  99.         if item.req_wpn_class > 0
  100.           return false
  101.         else
  102.           return old_enable?(item)
  103.         end
  104.       end
  105.     else
  106.       return old_enable?(item)
  107.     end
  108.   end
  109. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement