设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1529|回复: 4
打印 上一主题 下一主题

[已经解决] 修改了下伤害算式,但是fixnum报错

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2010-8-12
帖子
6
跳转到指定楼层
1
发表于 2012-4-25 22:08:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

      # 计算威力([(攻击侧的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”
  然后我就无解了...
  难道真的是因为算式太长的关系......已经超出那条灰色的边界很长很长了.....

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2188 小时
注册时间
2011-6-23
帖子
1044
2
发表于 2012-4-25 22:10:40 | 只看该作者
本帖最后由 lsu666666 于 2012-4-25 22:38 编辑

樓主參考這個 也是同樣問題
{:2_273:}
Array can't be coerced into fixnum什么意思?
http://rpg.blue/thread-74930-1-1.html
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2010-8-12
帖子
6
3
 楼主| 发表于 2012-4-25 22:20:30 | 只看该作者
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

  而且报错的就是计算式那一行....
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2011-10-6
帖子
182
4
发表于 2012-4-25 22:43:27 | 只看该作者
这里可不需要中括号。换成小括号即可。

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

中括号是用来作为数组了…
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2010-8-12
帖子
6
5
 楼主| 发表于 2012-4-25 22:48:22 | 只看该作者
吉井明久 发表于 2012-4-25 22:43
这里可不需要中括号。换成小括号即可。

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

多谢...{:2_249:}

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


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

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

点评

任何数除以0就会变成nan,小学没学好啊...  发表于 2012-4-27 10:22
回复

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 07:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表