アクター固有装備 in VX Ace


ツクールXPには存在したアクター固有装備をVX Aceでも復活させてみます。 武器、防具のメモに 固有[ID,...] と記載するとそのアクターIDのアクターのみ装備可能の武器、防具を作成可能です 変更点 まだなし
#==============================================================================
# ■ アクター固有装備 By 貪藻矢射妥←
#------------------------------------------------------------------------------
# ツクールXPには存在したアクター固有装備をVX Aceでも復活させてみます。
# 
# 武器、防具のメモに
# 固有[ID,...]
# と記載するとそのアクターIDのアクターのみ装備可能の武器、防具を作成可能です
# 
#==============================================================================
# 更新っぽいもの
# まだなし

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["EquipFix_Custom"] = true

#==============================================================================
# ■ Window_EquipItem
#------------------------------------------------------------------------------
#  装備画面で、装備変更の候補となるアイテムの一覧を表示するウィンドウです。
#==============================================================================

class Window_EquipItem < Window_ItemList
  include Equip_Extend
  #--------------------------------------------------------------------------
  # ● アイテムをリストに含めるかどうか
  #--------------------------------------------------------------------------
  def include?(item)
    return true if item == nil
    return false unless item.is_a?(RPG::EquipItem)
    return false if @slot_id < 0
    
    if $OuterFlgs["EquipFix_Custom"]
      text = item.note.clone
      fix_id = text =~ /固有\[(\S+)\]/ ? $1.split(/,/) : nil
    
      if fix_id
        for c in 0...fix_id.size
          fix_id[c] = fix_id[c].to_i
        end
      end
    
      return false if fix_id && !fix_id.include?(@actor.id)
    end
    
    if $OuterFlgs["Equip_Extend"]
      if item.is_a?(RPG::Armor)
        for cnt in INNER_ETYPE
          if @actor.equip_slots[@slot_id] == cnt[0]
            return false if ATYPE_EXTEND[cnt][1].include?(item.atype_id)
            return true if ATYPE_EXTEND[cnt][0].include?(item.atype_id) && @actor.equippable?(item)
          end
          if @actor.equip_slots[@slot_id] == cnt[1]
            return true if ATYPE_EXTEND[cnt][1].include?(item.atype_id) && @actor.equippable?(item)
            return false if ATYPE_EXTEND[cnt][0].include?(item.atype_id)
          end
        end
      end
    end
    return false if item.etype_id != @actor.equip_slots[@slot_id]
    return @actor.equippable?(item)
  end
end

戻る