Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- Set a multiple weapon classes id by notetag: <classes id: id, id, id, ... >
- Ex: <classes id: 1, 3, 5, 8>
- Set a required weapon class to enable Armor / Accessories being equipped
- by notetag: <req wpn class: number>
- Ex: <req wpn class: 1>
- So, the armor / accessories can only be equipped if an equipped weapon has
- the class id which is configured in armor / accessories notetag.
- =end
- #==============================================================================
- # ** RPG::Armor
- #==============================================================================
- class RPG::Armor < RPG::EquipItem
- def req_wpn_class
- note =~ /<req wpn class: (\d+)>/i ? $1.to_i : 0
- end
- end
- #==============================================================================
- # ** DataManager
- #==============================================================================
- module DataManager
- class << self
- alias pre_load_multiple_classes_database load_database
- end
- def self.load_database
- pre_load_multiple_classes_database
- load_multiple_classes
- end
- def self.load_multiple_classes
- [$data_weapons].each do |database|
- database.each do |obj|
- next unless obj
- obj.load_multiple_classes
- end
- end
- end
- end
- #==============================================================================
- # ** RPG::EquipItem
- #==============================================================================
- class RPG::EquipItem < RPG::BaseItem
- attr_accessor :classes_array
- def load_multiple_classes
- @classes_array = []
- classes_regexp = /<(?:CLASSES_ID|classes id):[ ]*[ ]*(\d+(?:\s*,\s*\d+)*)>/i
- self.note.split(/[\r\n]+/).each { |line|
- case line
- when classes_regexp
- $1.scan(/\d+/).each { |num|
- @classes_array.push(num.to_i) if num.to_i > 0 }
- end
- }
- end
- end
- #~ #==============================================================================
- #~ # ** RPG::Weapon
- #~ #==============================================================================
- #~ class RPG::Weapon < RPG::EquipItem
- #~ def class_id
- #~ note =~ /<class id: (\d+)>/i ? $1.to_i : 0
- #~ end
- #~ end
- #==============================================================================
- # ** Window_EquipItem
- #==============================================================================
- class Window_EquipItem < Window_ItemList
- #--------------------------------------------------------------------------
- # * Display in Enabled State?
- #--------------------------------------------------------------------------
- alias old_enable? enable?
- def enable?(item)
- if item && item.etype_id == @actor.equip_slots[-1]
- if @actor.equips[0]
- #~ if item.req_wpn_class != @actor.equips[0].class_id
- if !@actor.equips[0].classes_array.include?(item.req_wpn_class)
- return false
- else
- return old_enable?(item)
- end
- else
- if item.req_wpn_class > 0
- return false
- else
- return old_enable?(item)
- end
- end
- else
- return old_enable?(item)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement