110 lines
4.3 KiB
Ruby
110 lines
4.3 KiB
Ruby
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
|
|
#_/ ◆ アイテム詳細設定 - KMS_DetailedItem ◆ VX Ace ◆
|
|
#_/ ◇ Last update : 2014/01/02 (TOMY@Kamesoft) ◇
|
|
#_/----------------------------------------------------------------------------
|
|
#_/ アイテム関連の設定項目を追加します。
|
|
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
|
|
|
|
#==============================================================================
|
|
# ★ 設定項目 - BEGIN Setting ★
|
|
#==============================================================================
|
|
|
|
module KMS_DetailedItem
|
|
# ◆ デフォルトの所持数上限
|
|
DEFAULT_MAX_NUMBER = 99
|
|
end
|
|
|
|
#==============================================================================
|
|
# ☆ 設定ここまで - END Setting ☆
|
|
#==============================================================================
|
|
|
|
$kms_imported ||= {}
|
|
$kms_imported["DetailedItem"] = true
|
|
|
|
module KMS_DetailedItem
|
|
# デバッグフラグ
|
|
DEBUG = false
|
|
|
|
# 所持数上限
|
|
# 記述例 : <所持数上限 30>
|
|
REGEX_MAX_NUMBER = /(?:所持数上限|MAX_NUMBER)\s*(\d+)/i
|
|
|
|
#============================================================================
|
|
# □ ItemDetailInfo
|
|
#============================================================================
|
|
|
|
class ItemDetailInfo
|
|
#--------------------------------------------------------------------------
|
|
# ○ アクセス修飾子
|
|
#--------------------------------------------------------------------------
|
|
attr_accessor :max_number # 所持数上限
|
|
#--------------------------------------------------------------------------
|
|
# ○ オブジェクト初期化
|
|
#--------------------------------------------------------------------------
|
|
def initialize(item)
|
|
@item = item
|
|
@max_number = DEFAULT_MAX_NUMBER
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ○ 文字列変換
|
|
#--------------------------------------------------------------------------
|
|
def to_s
|
|
info = [@item.id, @max_number]
|
|
return "アイテム %03d: <max_number=%d>" % info
|
|
end
|
|
end
|
|
end
|
|
|
|
# *****************************************************************************
|
|
|
|
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
|
|
|
|
#==============================================================================
|
|
# ■ RPG::BaseItem
|
|
#==============================================================================
|
|
|
|
class RPG::BaseItem
|
|
#--------------------------------------------------------------------------
|
|
# ○ アイテム詳細情報のキャッシュ作成
|
|
#--------------------------------------------------------------------------
|
|
def kms_create_item_detail_info_cache
|
|
@kms_item_detail_info = KMS_DetailedItem::ItemDetailInfo.new(self)
|
|
|
|
note.each_line { |line|
|
|
case line
|
|
when KMS_DetailedItem::REGEX_MAX_NUMBER
|
|
@kms_item_detail_info.max_number = $1.to_i
|
|
end
|
|
}
|
|
|
|
if KMS_DetailedItem::DEBUG
|
|
print "#{@kms_item_detail_info.to_s}\n"
|
|
end
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# ○ アイテム詳細情報の取得
|
|
#--------------------------------------------------------------------------
|
|
def kms_detail_info
|
|
kms_create_item_detail_info_cache if @kms_item_detail_info.nil?
|
|
return @kms_item_detail_info
|
|
end
|
|
end
|
|
|
|
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
|
|
|
|
#==============================================================================
|
|
# ■ Game_Party
|
|
#==============================================================================
|
|
|
|
class Game_Party < Game_Unit
|
|
#--------------------------------------------------------------------------
|
|
# ● アイテムの最大所持数取得
|
|
#--------------------------------------------------------------------------
|
|
def max_item_number(item)
|
|
if item.is_a?(RPG::BaseItem)
|
|
return item.kms_detail_info.max_number
|
|
else
|
|
return KMS_DetailedItem::DEFAULT_MAX_NUMBER
|
|
end
|
|
end
|
|
end
|