#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ アイテム詳細設定 - 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: " % 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