module EE module ActorAsItem #--------------------------------------------------------------------------- ACTORS = [ # Dont edit this line #--------------------------------------------------------------------------- #--------------------------------------------------------------------- # [item_type, item_id, actor_id], # item_type: :item, :weapon, or :armor #--------------------------------------------------------------------- [:weapon, 1, 5], [:item, 1, 3], #--------------------------------------------------------------------------- ] # Dont edit this line #--------------------------------------------------------------------------- def self.items return ACTORS.select{ |arr| arr.first == :item} end def self.weapons return ACTORS.select{ |arr| arr.first == :weapon} end def self.armors return ACTORS.select{ |arr| arr.first == :armor} end def self.get_items(item_class) return items if item_class == RPG::Item return weapons if item_class == RPG::Weapon return armors if item_class == RPG::Armor return [] end def self.get_actor_id(item_class, item_id) get_items(item_class).each do |arr| return arr[2] if arr[1] == item_id end return nil end endendclass Game_Party alias :e222_gp_gi_ias :gain_item def gain_item(item, amount, include_equip = false) e222_gp_gi_ias(item, amount, include_equip) container = item_container(item.class) return unless container actor_id = EE::ActorAsItem.get_actor_id(item.class, item.id) return unless actor_id if item_number(item) > 0 $game_party.add_actor(actor_id) else $game_party.remove_actor(actor_id) if $game_party.all_members.size > 1 end end def actors return @actors endendclass Game_Map alias :e222_gm_update_ias :update def update(update_main = false) e222_gm_update_ias(update_main) check_party_equip end def check_party_equip $game_party.all_members.each do |actor| actor.equips.each do |item| next unless item actor_id = EE::ActorAsItem.get_actor_id(item.class, item.id) next unless actor_id $game_party.add_actor(actor_id) unless $game_party.actors.include?(actor_id) end end endend