Project1
标题:
如何用技能临时改变人物的闪避值?(关于隐身技能)
[打印本页]
作者:
烤猫
时间:
2010-7-5 18:34
标题:
如何用技能临时改变人物的闪避值?(关于隐身技能)
本帖最后由 烤猫 于 2010-7-7 12:10 编辑
我做个游戏,想在里面加一个“隐身”技能,效果是怪物不会对其进行攻击或者受到的攻击全闪。我在网上查了半天也没有一个可行的办法。请问有人有让人物暂时(几回合内)不被攻击或者提高闪避到100的方法吗?或者能够让敏捷影响到闪避的方法也行。
作者:
wangswz
时间:
2010-7-5 21:00
Game_Battler
calc_eva
插入
if self.is_a?(Game_Actor) #己方角色
if self.skill_learn?($data_skills[183])#如果角色学习了183号技能就被动增加回避率20%
eva += 20
end
end
复制代码
作者:
wangswz
时间:
2010-7-5 21:53
那就再来一个!
if self.state?(70) 当拥有状态70时
作者:
烤猫
时间:
2010-7-5 21:58
本帖最后由 烤猫 于 2010-7-5 22:08 编辑
if self.is_a?(Game_Actor) #己方角色
if self.state?(26)
eva += 100 #如果有26号状态闪避加100
end
end
复制代码
这个代码用了出错,先以为是因为闪避超过100了,但后来只加20闪避也出错,就是 eva += 100 这一行出的错。这个代码不知是不是有点问题?或者我 if self.state?(26) 这句加错地方了?
作者:
darkdrium
时间:
2010-7-5 22:18
回复
烤猫
的帖子
def calc_eva(user, obj = nil)
eva = self.eva
unless obj == nil # 若是使用技能或者使用物品
eva = 0 unless obj.physical_attack # 如果不是物理攻击则为0%
end
unless parriable? # 如果无法躲避
eva = 0 # 0%
end
return eva
end
复制代码
添加到return那句之前
作者:
烤猫
时间:
2010-7-6 07:50
eva = self.eva
unless obj == nil # 不是普通攻击的情况下
eva = 0 unless obj.physical_attack # 除物理攻击以外的情况为 0%
end
unless parriable? # 不能回避状态的情况下
eva = 0 # 回避率为 0%
end
if self.is_a?(Game_Actor) #己方角色
if self.state?(26)
eva += 100 #如果有26号状态闪避加100
end
end
return eva
end
复制代码
行了,测试攻击全闪。谢谢!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1