Project1

标题: 请问如何让幸运与离散度挂钩? [打印本页]

作者: 是猪别乱叫    时间: 2017-3-14 15:43
标题: 请问如何让幸运与离散度挂钩?
比如某技能离散度为50:
我方幸运比对方幸运高出两倍以上,那么打出的伤害就一定是150%最高数值,如高出一半,那么伤害就在125%~150%之间
如果敌方幸运比我方高,那么伤害在50%~100%之间
求,如何修改?
作者: 魔法丶小肉包    时间: 2017-3-14 17:12
本帖最后由 魔法丶小肉包 于 2017-3-14 20:45 编辑

举个修改的例子,具体的算法还得楼主自己去修改
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def make_damage_value(user, item)
  3.     value = item.damage.eval(user, self, $game_variables)
  4.     value *= item_element_rate(user, item)
  5.     value *= pdr if item.physical?
  6.     value *= mdr if item.magical?
  7.     value *= rec if item.damage.recover?
  8.     value = apply_critical(value) if @result.critical
  9.     value = apply_variance(user,value, item.damage.variance)
  10.     value = apply_guard(value)
  11.     @result.make_damage(value.to_i, item)
  12.   end
  13.   def apply_variance(user,damage, variance)
  14.     amp = [damage.abs * variance / 100, 0].max.to_i
  15.     var = rand(amp + 1) + rand(amp + 1) - amp
  16.     if user.luk / self.luk >= 2
  17.       damage + amp#(固定值)伤害+离散度
  18.     elsif (user.luk / self.luk >= 1.5) && (user.luk / self.luk < 2)
  19.       damage + rand(amp)#(伤害)100%~(伤害+离散度)% 离散度50→100%~150%
  20.     elsif user.luk < self.luk
  21.       damage - rand(amp)#与上面相反
  22.     else
  23.       damage >= 0 ? damage + var : damage - var #(都不满足条件)采用默认算法
  24.     end
  25.   end
  26. end





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