赞 | 0 |
VIP | 135 |
好人卡 | 6 |
积分 | 3 |
经验 | 37799 |
最后登录 | 2020-4-30 |
在线时间 | 812 小时 |
Lv2.观梦者 旅之愚者
- 梦石
- 0
- 星屑
- 275
- 在线时间
- 812 小时
- 注册时间
- 2007-7-28
- 帖子
- 2148
|
回复 DeathKing 的帖子- #在Game_Actor#skill_can_use?方法中调用时可传递self.index给第二个参数
- def self.skill_can_use?(skill,actor_id)
- # 如果传递过来的skill为空
- return false if skill == nil
- # 读取need_item项的参数
- need_item = skill.read_notes["need_item"]
- # need_item参数为空的话返回true
- return true if need_item == nil
- # 重新生成参数列表
- need_item_clone = []
- need_item.each do |e|
- need_item_clone << [ e.split(",")[0].to_i , e.split(",")[1].to_i ]
- end
- need_item = need_item_clone
- # 产生一个队伍物品的哈希克隆(item_id => number)
- party_items = Hash.new{0}
- $game_party.items.each do |it|
- party_items[it.id] = $game_party.item_number(it)
- end
- # 如果是第一个行动的角色或者不在战斗中则跳过
- unless actor_id == 0 or $game_temp.in_battle == false
- # 计算到前一个角色技能消耗为止的剩余物品数量哈希
- 0.upto(actor_id-1) do |ai|
- action = $game_party.members[ai].action
- next if action.kind != 1
- temp_cost = $data_skills[action.skill_id].read_notes["need_item"]
- next if temp_cost == nil
- temp_cost = temp_cost.collect{|e|[e.split(",")[0].to_i,e.split(",")[1].to_i]}
- temp_cost.each do |e|
- party_items[e[0]] -= e[1]
- end
- end
- end
-
- # 判定剩余物品是否足够使用技能
- need_item.each do |e|
- return false if (party_items[e[0]] < e[1])
- end
- return true
- end
复制代码 这个方法我改写了,并且已经注释,麻烦死君更新一下啦~ |
|