首先说明,是盗窃“技能”而不是盗窃技能
效果是在战斗的时候对敌人使用该技能,则可以偷盗(习得)一个技能,就和GBA上的最终幻想战略版A一样偷盗技能啦。
方法:首先在Game_Battler 3的class Game_Battler下面添加一个函数:
RUBY 代码 - #--------------------------------------------------------------------------
- # ● 取得可盗窃的技能id
- # enemy_id : 敌方id
- #--------------------------------------------------------------------------
- def steal_skill_id(enemy_id)
- case enemy_id
- when1 #幽灵
- return33 #毒
- when2 #蜥蜴
- return7 #火
- end
- end
复制代码
作用是设置某个id的敌人对应获取某个id的技能。
这里只添加了1号的幽灵和2号的蜥蜴能偷盗的技能33毒和7火,其他类推。
然后在第201行下面插入
RUBY 代码 - #技能盗取
- if user.is_a?(Game_Actor) && skill.id == 81#判定使用者为actor,偷窃技能的技能id为81
- @enemy_id = self.id#获取敌方id
- @steal_skill_id = steal_skill_id(@enemy_id)#获取可以盗取的敌人技能
- @user_skill_learn = user.skill_learn?(@steal_skill_id)#判定是否已习得技能
- @skill_name = $data_skills[@steal_skill_id].name #获取技能名称
- ifrand() < 0.5 && @user_skill_learn == false && @steal_skill_id != nil#盗取成功率&是否已学得该技能&可偷技能不为空
- user.learn_skill(@steal_skill_id) #习得技能
- self.damage = @skill_name + "skill stolen"#成功显示
- else
- self.damage = "Miss"#不成功显示
- end
- end
复制代码
这样使用技能ID81的技打中id为1的敌人时,使用技能的角色就会学会33号的技能。
习得成功显示窗口尚在研究中,这个只是个思路,按照这个思路可以方便地做出盗窃物品的脚本。
当然这样设置比较笨,你可以弄个hash表设置敌人id和可偷技能id的对应。
脚本小白,还在学习中…………
本帖来自P1论坛作者黑夜守望者,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=488030 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |