#==============================================================================
# ■ ItemCategory
#
# 物品新增類別
#------------------------------------------------------------------------------
# 作者 怨飄靈
#------------------------------------------------------------------------------
# ITEMTYPE => 用語
# ITEMSYMBOL => symbol
#==============================================================================
module ItemCategory
ITEMTYPE = ["材料","01"]
ITEMSYMBOL = [:m_item,:f_item]
end
#==============================================================================
# ■ RPG::Item
#------------------------------------------------------------------------------
# 新增類別判斷 => 根據 m_item? 的格式定義新增名稱
#
# itype_id == n n = 自設數字
#
# 並在 normal_item? 中的 itype_id 之後加入 && !n
#
# 調用方法 在數據庫的物品描述欄加上 itype_id[n]
#
# n 必須對應到類別的 n 才有作用
#==============================================================================
class RPG::Item < RPG::UsableItem
#--------------------------------------------------------------------------
# itype_id
#--------------------------------------------------------------------------
def itype_id
if /itype_id\[(\d+)]/ =~ @note
return $1.to_i
else
return nil
end
end
#--------------------------------------------------------------------------
# 一般類別
#--------------------------------------------------------------------------
def normal_item?
itype_id == nil
end
#--------------------------------------------------------------------------
# 新增分類1
#--------------------------------------------------------------------------
def m_item?
itype_id == 3
end
#--------------------------------------------------------------------------
# 新增分類2
#--------------------------------------------------------------------------
def f_item?
itype_id == 4
end
end
#==============================================================================
# ■ Window_ItemList
#------------------------------------------------------------------------------
# 物品画面中,显示持有物品的窗口。
#------------------------------------------------------------------------------
# 新增條件分歧
#
# symbol 按照 ItemCategory::ITEMSYMBOL[n]對應
#
# 格式為 item.is_a?(RPG::Item) && item.ex_item?
#
# 注 ex_item? 為上面的新增類別判斷,請依照自訂的類別判斷代換
#==============================================================================
class Window_ItemList < Window_Selectable
def include?(item)
case @category
when :item
item.is_a?(RPG::Item) && !item.key_item? && item.normal_item?
when :weapon
item.is_a?(RPG::Weapon)
when :armor
item.is_a?(RPG::Armor)
when :key_item
item.is_a?(RPG::Item) && item.key_item?
when ItemCategory::ITEMSYMBOL[0]
item.is_a?(RPG::Item) && item.m_item?
when ItemCategory::ITEMSYMBOL[1]
item.is_a?(RPG::Item) && item.f_item?
else
false
end
end
end
#==============================================================================
# ■ Window_ItemCategory
#------------------------------------------------------------------------------
# 物品畫面和商店畫面中,顯示裝備、所持物品等專案清單的視窗。
#==============================================================================
class Window_ItemCategory < Window_HorzCommand
def make_command_list
add_command(Vocab::item, :item)
add_command(Vocab::weapon, :weapon)
add_command(Vocab::armor, :armor)
add_command(Vocab::key_item, :key_item)
ItemCategory::ITEMTYPE.size.times {|i| add_command(ItemCategory::ITEMTYPE[i],ItemCategory::ITEMSYMBOL[i]) }
end
end