Project1

标题: 伤害带小数 [打印本页]

作者: Anson    时间: 2013-7-23 15:24
标题: 伤害带小数
本帖最后由 Anson 于 2013-7-23 15:25 编辑

RMXP,用的是自己修改过的战斗公式

      if skill.atk_f == 0                  
              power = [(user.level*0.4+2)*skill.power*user.int/(self.mdef*2)/50+2].max
        else
              power = [(user.level*0.4+2)*skill.power*user.str/(self.pdef*2)/50+2].max
            end
            
      self.damage = [power,0].max

可能运算过于复杂,输出的伤害是带小数的,怎么变成整数,球高手!
我在下面加了一句
power=power.round
也没用

作者: 认真的学    时间: 2013-7-23 15:33
在self.damage = 之前加入试试看= =
作者: 弗雷德    时间: 2013-7-23 15:37
最后将damage转换成整型,比如加上.to_i
作者: Anson    时间: 2013-7-23 15:48
弗雷德 发表于 2013-7-23 15:37
最后将damage转换成整型,比如加上.to_i

像这样?      self.damage =self.damage.to_i
我加在      # HP 的伤害减法运算  前面会跳错
作者: 芯☆淡茹水    时间: 2013-7-23 16:21
user.level*0.4+2  改成:user.level*2/5+2
作者: Anson    时间: 2013-7-23 17:03
芯☆淡茹水 发表于 2013-7-23 16:21
user.level*0.4+2  改成:user.level*2/5+2

按你这个方法会出ZeroDivisionError
作者: 芯☆淡茹水    时间: 2013-7-23 17:05
那换成[user.level*2/5+2, 1].max
恩,就这样
作者: Anson    时间: 2013-7-23 18:11
芯☆淡茹水 发表于 2013-7-23 17:05
那换成.max
恩,就这样

修改后仍是同行相同报错
作者: 芯☆淡茹水    时间: 2013-7-23 18:22
报错这行:[(user.level*0.4+2)*skill.power*user.int/(self.mdef*2)/50+2].max
如果被攻击者的魔防:self.mdef 是 0 的话,就要报错,自己想办法改下,比如加一个定量什么的。




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