本帖最后由 喵呜喵5 于 2015-12-5 23:01 编辑
(!item || $game_party.has_item?(item)):判断技能消耗的物品是否存在,如果存在,返回真(允许使用技能),否则返回假(不允许使用技能)
若item为nil,说明该技能不需要消耗物品,不管身上的物品时怎么样的都必定允许使用技能,故直接返回真
上面那段代码无法理解的话,看这段:
class Game_Actor alias xxx001_skill_cost_payable? skill_cost_payable? def skill_cost_payable?(skill) judge_mp_tp = xxx001_skill_cost_payable?(skill) # 判断MP、TP是否足够 return false unless judge_mp_tp # MP、TP不够时,技能无法使用 # MP、TP充足时 item = $data_items[skill.item_cost] # 获取技能消耗的物品 return true unless item # 当物品不存在时,该技能不需要消耗物品,可以使用 judge_item = $game_party.has_item?(item) # 判断角色身上是否有技能消耗品 if judge_item # 当角色身上有对应消耗品时 return true # 技能可以使用 else # 当角色身上没有对应消耗品时 return false # 技能无法使用 end end end
class Game_Actor
alias xxx001_skill_cost_payable? skill_cost_payable?
def skill_cost_payable?(skill)
judge_mp_tp = xxx001_skill_cost_payable?(skill) # 判断MP、TP是否足够
return false unless judge_mp_tp # MP、TP不够时,技能无法使用
# MP、TP充足时
item = $data_items[skill.item_cost] # 获取技能消耗的物品
return true unless item # 当物品不存在时,该技能不需要消耗物品,可以使用
judge_item = $game_party.has_item?(item) # 判断角色身上是否有技能消耗品
if judge_item # 当角色身上有对应消耗品时
return true # 技能可以使用
else # 当角色身上没有对应消耗品时
return false # 技能无法使用
end
end
end
|