Project1

标题: 修改了下伤害算式,但是fixnum报错 [打印本页]

作者: 余英卜月    时间: 2012-4-25 22:08
标题: 修改了下伤害算式,但是fixnum报错

      # 计算威力([(攻击侧的LV×0.4+2)×技巧威力×攻击侧的特殊攻击力÷防御侧的
      #特殊防御力÷50+2)×各类修正× 236÷255
      power = (user.level * 4 / 10 + 2) * skill.power * [(user.atk * skill.atk_f + user.matk * skill.agi_f) / 100] / [(self.pdef * skill.pdef_f / 100 + self.mdef * skill.mdef_f / 100) / 50+ 2] * 236 / 255

  我没想到这个算式会这么长.........
  一开始是float报错,把0.4改成*4/10之后就是“Arrar can't be coerced into Fixnum”
  然后我就无解了...
  难道真的是因为算式太长的关系......已经超出那条灰色的边界很长很长了.....dsu_plus_rewardpost_czw
作者: lsu666666    时间: 2012-4-25 22:10
本帖最后由 lsu666666 于 2012-4-25 22:38 编辑

樓主參考這個 也是同樣問題
{:2_273:}
Array can't be coerced into fixnum什么意思?
http://rpg.blue/thread-74930-1-1.html
作者: 余英卜月    时间: 2012-4-25 22:20
lsu666666 发表于 2012-4-25 22:10
樓主參考這個 有解決方法

Array can't be coerced into fixnum什么意思?

...还是没搞定...不知是哪儿调用错了...

原始脚本是:
# 计算威力
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
        power -= self.pdef * skill.pdef_f / 200
        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0].max
      end
      # 计算倍率
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # 计算基本伤害
      self.damage = power * rate / 20

我改成了
# 计算威力([(攻击侧的LV×0.4+2)×技巧威力×攻击侧的特殊攻击力÷防御侧的
      #特殊防御力÷50+2)×各类修正× 236÷255
      power = (user.level * 4 / 10 + 2) * skill.power * [(user.atk * skill.atk_f + user.agi * skill.agi_f) / 100] / [(self.pdef * skill.pdef_f / 100 + self.mdef * skill.mdef_f / 100) / 50 + 2] * 236 / 255  
      if power > 0
#        power -= self.pdef * skill.pdef_f / 200
#        power -= self.mdef * skill.mdef_f / 200
        power = [power, 0].max
      end
      # 计算倍率()
#      rate = 20
#      rate += (user.str * skill.str_f / 100)
#      rate += (user.dex * skill.dex_f / 100)
#      rate += (user.agi * skill.agi_f / 100)
#      rate += (user.int * skill.int_f / 100)
      # 计算基本伤害
      self.damage = power     #* rate / 20

  而且报错的就是计算式那一行....
作者: 吉井明久    时间: 2012-4-25 22:43
这里可不需要中括号。换成小括号即可。

你可不是在做作业而是在写程序。程序可只识别小括号。

中括号是用来作为数组了…
作者: 余英卜月    时间: 2012-4-25 22:48
吉井明久 发表于 2012-4-25 22:43
这里可不需要中括号。换成小括号即可。

你可不是在做作业而是在写程序。程序可只识别小括号。

多谢...{:2_249:}

现在又出了个情况叫做 divided by 0.....
怎么就被0分割了...囧啊


‘‘──余英卜月于2012-4-25 22:54补充以下内容

搞定了....不过虽然不报错了,但是根据这个算式打出的招莫有伤害啊....太坑了...
唉...
谢谢了
’’




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