本帖最后由 taroxd 于 2014-4-5 11:47 编辑
tottoyea 发表于 2014-4-5 10:13
谢谢楼上的各位。
通过公共事件是可以实现的,但是当物品和技能很多的时候就会悲剧……这就是为什么我在1L ...
未经仔细测试
# 在角色处备注 <add skill x by y> 表示当持有道具y时习得技能x class RPG::Actor < RPG::BaseItem def add_skill_item @add_skill_item ||= @note.scan(/<add\s*skill\s*(\d+)\s*by\s*(\d+)>/i).map {|(s, i)| [s.to_i, $data_items[i.to_i]] } end end class Game_Actor < Game_Battler alias added_skills_without_item added_skills def added_skills added_skills_without_item | actor.add_skill_item.select {|(_, item)| $game_party.has_item?(item) }.map(&:first) end end
# 在角色处备注 <add skill x by y> 表示当持有道具y时习得技能x
class RPG::Actor < RPG::BaseItem
def add_skill_item
@add_skill_item ||=
@note.scan(/<add\s*skill\s*(\d+)\s*by\s*(\d+)>/i).map {|(s, i)|
[s.to_i, $data_items[i.to_i]] }
end
end
class Game_Actor < Game_Battler
alias added_skills_without_item added_skills
def added_skills
added_skills_without_item | actor.add_skill_item.select {|(_, item)|
$game_party.has_item?(item) }.map(&:first)
end
end
|