赞 | 90 |
VIP | 350 |
好人卡 | 311 |
积分 | 101 |
经验 | 150139 |
最后登录 | 2024-7-17 |
在线时间 | 5020 小时 |
Lv4.逐梦者 (版主) 无限の剣制
- 梦石
- 0
- 星屑
- 10074
- 在线时间
- 5020 小时
- 注册时间
- 2013-2-28
- 帖子
- 5030
|
本帖最后由 VIPArcher 于 2014-11-8 20:28 编辑
写着玩着练练手的。不知道是否符合楼主要求。
用法是在可以偷学敌人技能的技能里备注上<技能偷取 概率%>,例如<技能偷取 10%>
就是这个技能有10%几率偷学到目标敌人行为模式里技能编号大于7的一个技能,
如果这个技能是使用偷学技能的角色已经会的技能则同样偷学失败。
BUG更新,当攻击没技能可偷取的敌人时显示失败- class Game_Enemy < Game_Battler
- def evemy_skills
- skills = []
- enemy.actions.select {|a| a.skill_id > 7}.each {|e|
- skills.push e.skill_id}
- skills
- end
- end
- class Game_Battler < Game_BattlerBase
- #--------------------------------------------------------------------------
- # ● 应用技能/物品效果
- #--------------------------------------------------------------------------
- alias skill_get_item_apply item_apply
- def item_apply(user, item)
- skill_get_item_apply(user, item)
- evemy_skills_get(self,user,$1.to_i) if item.note =~ /<技能偷取\s*(\d+?)%>/
- end
- #--------------------------------------------------------------------------
- # ● 应用偷取技能
- #--------------------------------------------------------------------------
- def evemy_skills_get(evemy,user,rate)
- return if user.enemy?
- skill = evemy.evemy_skills.sample
- return SceneManager.scene.add_battlelog("#{evemy.name}没有技能可以偷学") if skill.nil?
- if user.skill_learn?($data_skills[skill]) || rand > rate / 100.0
- return SceneManager.scene.add_battlelog("#{user.name}没能偷学到技能")
- else
- user.learn_skill(skill)
- return SceneManager.scene.add_battlelog("#{user.name}学会了#{$data_skills[skill].name}")
- end
- end
- end
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # ● 追加战斗信息
- #--------------------------------------------------------------------------
- def add_battlelog(text)
- @log_window.add_text(text)
- end
- end
复制代码 未详细测试,还请楼主详细测试一番回来报告一下问题可好? |
|