Project1

标题: 一种被动技能的制作思路 [打印本页]

作者: cftx    时间: 2007-8-12 00:43
标题: 一种被动技能的制作思路
前不久朋友问到的,这里是我的方法
首先,我是利用多个技能模拟技能的等级的,这就需要方便的得到技能等级,用一个简单的过程就可以啦!
  1. def lv(a,b,actor)
  2.   if actor.is_a?(Game_Actor)
  3.   for i in a..b
  4.     if actor.skill_learn?(i)
  5.       return i-a+1
  6.     end
  7.   end
  8.   end
  9.   return 0
  10. end
复制代码

定义这个过程后,就可以用def(技能lv1的编号,技能lvMAX的编号,角色)来得到某个角色的某个技能等级了。
以这个技能为例




在我的数据库中,宗和之心得 Lv1是250号,而LvMAX是259号

要让这个被动技能生效,在Game_Battler 3找到普通攻击时的必杀处理
if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
修改一下
if rand(100) < (4 * attacker.dex / self.agi + 2*lv(250,259,attacker))
          self.damage *= 2
          self.critical = true
        end
lv(250,259,attacker)得到攻击者的宗和之心得等级,然后就可以获得被动技能的效果啦!

这个被动系统其实还应该包括被动技能的显示方法之类的处理,今天累了.....下次再说吧
作者: cftx    时间: 2007-8-12 00:43
标题: 一种被动技能的制作思路
前不久朋友问到的,这里是我的方法
首先,我是利用多个技能模拟技能的等级的,这就需要方便的得到技能等级,用一个简单的过程就可以啦!
  1. def lv(a,b,actor)
  2.   if actor.is_a?(Game_Actor)
  3.   for i in a..b
  4.     if actor.skill_learn?(i)
  5.       return i-a+1
  6.     end
  7.   end
  8.   end
  9.   return 0
  10. end
复制代码

定义这个过程后,就可以用def(技能lv1的编号,技能lvMAX的编号,角色)来得到某个角色的某个技能等级了。
以这个技能为例




在我的数据库中,宗和之心得 Lv1是250号,而LvMAX是259号

要让这个被动技能生效,在Game_Battler 3找到普通攻击时的必杀处理
if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
修改一下
if rand(100) < (4 * attacker.dex / self.agi + 2*lv(250,259,attacker))
          self.damage *= 2
          self.critical = true
        end
lv(250,259,attacker)得到攻击者的宗和之心得等级,然后就可以获得被动技能的效果啦!

这个被动系统其实还应该包括被动技能的显示方法之类的处理,今天累了.....下次再说吧
作者: 夺爱    时间: 2007-8-12 02:18
走过...
作者: 小真·爱舞    时间: 2007-8-12 03:10
这个方式...占用数据库..我是不喜欢。
作者: K’    时间: 2007-8-12 03:46
对于占用数据库这点,私以为,利用 技能名 + 变量 的实现即可解决。
作者: 风雪优游    时间: 2007-8-12 06:39
我……记得主站上有被动技能脚本……

http://rpg.blue/web/htm/news270.htm

不知道两个有什么区别
作者: Eclair    时间: 2008-2-1 00:39
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1