Project1

标题: 如何用技能临时改变人物的闪避值?(关于隐身技能) [打印本页]

作者: 烤猫    时间: 2010-7-5 18:34
标题: 如何用技能临时改变人物的闪避值?(关于隐身技能)
本帖最后由 烤猫 于 2010-7-7 12:10 编辑

我做个游戏,想在里面加一个“隐身”技能,效果是怪物不会对其进行攻击或者受到的攻击全闪。我在网上查了半天也没有一个可行的办法。请问有人有让人物暂时(几回合内)不被攻击或者提高闪避到100的方法吗?或者能够让敏捷影响到闪避的方法也行。
作者: wangswz    时间: 2010-7-5 21:00
Game_Battler
calc_eva
插入

  1. if self.is_a?(Game_Actor)                 #己方角色
  2.   if self.skill_learn?($data_skills[183])#如果角色学习了183号技能就被动增加回避率20%
  3.     eva += 20
  4.   end
  5. end
复制代码

作者: wangswz    时间: 2010-7-5 21:53
那就再来一个!
if self.state?(70) 当拥有状态70时
作者: 烤猫    时间: 2010-7-5 21:58
本帖最后由 烤猫 于 2010-7-5 22:08 编辑
  1. if self.is_a?(Game_Actor)                 #己方角色
  2.   if self.state?(26)
  3.     eva += 100                    #如果有26号状态闪避加100
  4.   end
  5. end
复制代码
这个代码用了出错,先以为是因为闪避超过100了,但后来只加20闪避也出错,就是    eva += 100   这一行出的错。这个代码不知是不是有点问题?或者我 if self.state?(26) 这句加错地方了?
作者: darkdrium    时间: 2010-7-5 22:18
回复 烤猫 的帖子
  1.   def calc_eva(user, obj = nil)
  2.     eva = self.eva
  3.     unless obj == nil                       # 若是使用技能或者使用物品
  4.       eva = 0 unless obj.physical_attack    # 如果不是物理攻击则为0%
  5.     end
  6.     unless parriable?                       # 如果无法躲避
  7.       eva = 0                               # 0%
  8.     end
  9.     return eva
  10.   end
复制代码
添加到return那句之前
作者: 烤猫    时间: 2010-7-6 07:50
  1.     eva = self.eva
  2.     unless obj == nil                       # 不是普通攻击的情况下
  3.       eva = 0 unless obj.physical_attack    # 除物理攻击以外的情况为 0%
  4.     end
  5.     unless parriable?                       # 不能回避状态的情况下
  6.       eva = 0                               # 回避率为 0%
  7.     end
  8.     if self.is_a?(Game_Actor)                 #己方角色
  9.   if self.state?(26)
  10.     eva += 100                    #如果有26号状态闪避加100
  11.   end
  12. end
  13.     return eva
  14.   end
复制代码
行了,测试攻击全闪。谢谢!




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