模仿现成代码来改就好
用于模仿的代码:
Game_BattlerBase
RPG::Skill
最后的代码:
class Game_BattlerBase #-------------------------------------------------------------------------- # ● 检查物品的使用条件 #-------------------------------------------------------------------------- alias cld99_item_conditions_met? item_conditions_met? def item_conditions_met?(item) item_cost_payable?(item) && cld99_item_conditions_met?(item) end #-------------------------------------------------------------------------- # ● 判定是否足够扣除物品的使用消耗 (以TP为例) #-------------------------------------------------------------------------- def item_cost_payable?(item) tp >= item_tp_cost(item) end #-------------------------------------------------------------------------- # ● 计算物品消费的 TP #-------------------------------------------------------------------------- def item_tp_cost(item) item.tp_cost end end class RPG::Item < RPG::UsableItem alias cld99_initialize initialize def initialize cld99_initialize @tp_cost = tp_cost_initialize end def tp_cost_initialize regexp = /\<tp_cost\[(\d+)\]\>/ #例:物品的备注中写<tp_cost[20]>表示物品消耗TP20 value= item.note.scan(regexp) #[nil] 或 [["value"]] return value[0] ? value[0][0].to_i : 0 end attr_accessor :tp_cost end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 检查物品的使用条件
#--------------------------------------------------------------------------
alias cld99_item_conditions_met? item_conditions_met?
def item_conditions_met?(item)
item_cost_payable?(item) && cld99_item_conditions_met?(item)
end
#--------------------------------------------------------------------------
# ● 判定是否足够扣除物品的使用消耗 (以TP为例)
#--------------------------------------------------------------------------
def item_cost_payable?(item)
tp >= item_tp_cost(item)
end
#--------------------------------------------------------------------------
# ● 计算物品消费的 TP
#--------------------------------------------------------------------------
def item_tp_cost(item)
item.tp_cost
end
end
class RPG::Item < RPG::UsableItem
alias cld99_initialize initialize
def initialize
cld99_initialize
@tp_cost = tp_cost_initialize
end
def tp_cost_initialize
regexp = /\<tp_cost\[(\d+)\]\>/
#例:物品的备注中写<tp_cost[20]>表示物品消耗TP20
value= item.note.scan(regexp) #[nil] 或 [["value"]]
return value[0] ? value[0][0].to_i : 0
end
attr_accessor :tp_cost
end
仅提供一个思路,未实测
|