Project1
标题:
如何提升暴击(必杀)伤害?
[打印本页]
作者:
blueeyescyj
时间:
2015-3-9 18:58
标题:
如何提升暴击(必杀)伤害?
如何通过使用道具或附加状态,使暴击伤害提升?
比如:未使用道具态时是1.5倍,使用道具后则变为2倍。
作者:
三途亚梦
时间:
2015-3-9 23:14
估计你动用过make_damage_value来写技能吧,那么就把改的方法告诉你。
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
value = apply_critical(value) if @result.critical
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
@result.make_damage(value.to_i, item)
end
复制代码
这是make_damage_value原方法,
其中这句
value = apply_critical(value) if @result.critical
复制代码
是当此次攻击判断为暴击的时候调用暴击计算的方法,也就是
def apply_critical(damage)
damage * 3
end
复制代码
这个方法的作用是单纯的将传递过来的“伤害”乘以三倍,并返回到make_damage_value中。
所以只要改动这个方法就行了,根据你的要求是想要根据user(使用者)的状态改变暴击伤害倍数,
那么我们要做的是给这个方法追加一个新的参数,让这个方法能够根据user进行判断。
def apply_critical(damage, user)
damage *= user.state?(2) 2 : 1.5
end
复制代码
这样的效果就是如果使用者处在状态2,则暴击效果为2倍,否则是1.5倍
然后改变make_damage_value中的判断是否暴击的那一行,让它在判断为暴击的时候能够传递使用者的参数过来进行判断,
value = apply_critical(value, user) if @result.critical
复制代码
以上就是实现的具体过程。
作者:
blueeyescyj
时间:
2015-3-10 06:54
本帖最后由 blueeyescyj 于 2015-3-10 07:22 编辑
三途亚梦 发表于 2015-3-9 23:14
估计你动用过make_damage_value来写技能吧,那么就把改的方法告诉你。这是make_damage_value原方 ...
感谢万分。我突然之间也想到了一个解决办法。
我可以设置一个属性,名为“必杀”,假定是10号属性。
那么,直接把必杀伤害的计算方法改成
damage * 3*a.element_rate(10)
这样就可以直接通过对10号的属性比率的更改作出不同的伤害了,装备,道具也可以使用了吧。
理论上我觉得是可行的……但总觉得有哪里不对的样子。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1