查看: 2603|回复: 5

[已经解决] 如何用技能临时改变人物的闪避值?(关于隐身技能)

[复制链接]
抢楼 本帖为抢楼帖,欢迎抢楼! 
梦石
0
星屑
50
在线时间
90 小时
注册时间
2010-7-5
回帖
8
发表于 2010-7-5 18:34:49 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 烤猫 于 2010-7-7 12:10 编辑

我做个游戏,想在里面加一个“隐身”技能,效果是怪物不会对其进行攻击或者受到的攻击全闪。我在网上查了半天也没有一个可行的办法。请问有人有让人物暂时(几回合内)不被攻击或者提高闪避到100的方法吗?或者能够让敏捷影响到闪避的方法也行。
梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
回帖
1200
发表于 2010-7-5 21:00:21 | 显示全部楼层
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
复制代码

点评

楼主要临时的,用状态来做钩子会比较好  发表于 2010-7-5 21:49

评分

参与人数 1星屑 +200 收起 理由
DeathKing + 200 楼主认可

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
回帖
1200
发表于 2010-7-5 21:53:08 | 显示全部楼层
那就再来一个!
if self.state?(70) 当拥有状态70时
回复

使用道具 举报

梦石
0
星屑
50
在线时间
90 小时
注册时间
2010-7-5
回帖
8
 楼主| 发表于 2010-7-5 21:58:35 | 显示全部楼层
本帖最后由 烤猫 于 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) 这句加错地方了?

点评

会与不会,自己测试过最可靠,你说对不对?  发表于 2010-7-5 22:03
回复

使用道具 举报

梦石
0
星屑
60
在线时间
1 小时
注册时间
2009-9-19
回帖
137
发表于 2010-7-5 22:18:10 | 显示全部楼层
回复 烤猫 的帖子
  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-5 22:32
其实我觉得是楼主放错地方了而已。话说return之后的语句是无效的  发表于 2010-7-5 22:28
return eva 之后再改变eva的值就会报错吗? 啥原因?  发表于 2010-7-5 22:25
回复

使用道具 举报

梦石
0
星屑
50
在线时间
90 小时
注册时间
2010-7-5
回帖
8
 楼主| 发表于 2010-7-6 07:50:21 | 显示全部楼层
  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
复制代码
行了,测试攻击全闪。谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部