查看: 3601|回复: 2

[已经解决] 如何提升暴击(必杀)伤害?

[复制链接]
梦石
0
星屑
50
在线时间
274 小时
注册时间
2013-12-14
回帖
89
发表于 2015-3-9 18:58:01 | 显示全部楼层 |阅读模式

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

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

×
如何通过使用道具或附加状态,使暴击伤害提升?
比如:未使用道具态时是1.5倍,使用道具后则变为2倍。

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-3-9 23:14:38 | 显示全部楼层
估计你动用过make_damage_value来写技能吧,那么就把改的方法告诉你。
  1.   def make_damage_value(user, item)
  2.     value = item.damage.eval(user, self, $game_variables)
  3.     value *= item_element_rate(user, item)
  4.     value *= pdr if item.physical?
  5.     value *= mdr if item.magical?
  6.     value *= rec if item.damage.recover?
  7.     value = apply_critical(value) if @result.critical
  8.     value = apply_variance(value, item.damage.variance)
  9.     value = apply_guard(value)
  10.     @result.make_damage(value.to_i, item)
  11.   end
复制代码
这是make_damage_value原方法,
其中这句
  1.     value = apply_critical(value) if @result.critical
复制代码
是当此次攻击判断为暴击的时候调用暴击计算的方法,也就是
  1.   def apply_critical(damage)
  2.     damage * 3
  3.   end
复制代码
这个方法的作用是单纯的将传递过来的“伤害”乘以三倍,并返回到make_damage_value中。
所以只要改动这个方法就行了,根据你的要求是想要根据user(使用者)的状态改变暴击伤害倍数,
那么我们要做的是给这个方法追加一个新的参数,让这个方法能够根据user进行判断。
  1.   def apply_critical(damage, user)
  2.     damage *= user.state?(2) 2 : 1.5
  3.   end
复制代码
这样的效果就是如果使用者处在状态2,则暴击效果为2倍,否则是1.5倍
然后改变make_damage_value中的判断是否暴击的那一行,让它在判断为暴击的时候能够传递使用者的参数过来进行判断,
  1.     value = apply_critical(value, user) if @result.critical
复制代码
以上就是实现的具体过程。

点评

我这整层楼就是在说怎么修改……而且还是一步步说的,你找对地方,买我发的东西替换对了就行了。  发表于 2015-3-11 02:20
不能直接拿来替换Game_Battler的那三行么...... 脚本盲球教一下应该怎么修改...  发表于 2015-3-11 01:51
没有任何问题,只说明你没看懂我写的什么,然后没写对,仅此而已。  发表于 2015-3-11 00:34
不是,damage *= user.state?(2) 2 : 1.5这一句好像有问题....  发表于 2015-3-11 00:20
都说了这是实现的方法,不是现成的脚本。  发表于 2015-3-11 00:15

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
274 小时
注册时间
2013-12-14
回帖
89
 楼主| 发表于 2015-3-10 06:54:17 | 显示全部楼层
本帖最后由 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号的属性比率的更改作出不同的伤害了,装备,道具也可以使用了吧。
理论上我觉得是可行的……但总觉得有哪里不对的样子。

点评

谢谢帮忙,可以结贴了。  发表于 2015-3-11 01:27
可以的,只要两个一致就可以。  发表于 2015-3-11 00:45
直接a改user可以的吧  发表于 2015-3-11 00:40
首先你得有个“a”,你把我告诉你的方法里def apply_critical(damage, user)中的“user”改成“a”应该就可以了。  发表于 2015-3-10 19:20
damage * 3*a.element_rate(10)没写错什么吧,感觉不能直接这么写的样子= =  发表于 2015-3-10 19:17
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部