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

Project1

 找回密码
 注册会员
搜索

关于血量影响防御的问题

查看数: 2252 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-2-22 17:26

正文摘要:

本帖最后由 letppigogo 于 2017-2-22 22:18 编辑 这是我自己做的脚本,目的是当目标的力量大于等于300时,血量小于最高血量的25% 受到的伤害会降低50%,但单进入测试会出错。请哪位高手帮我看下是哪里有问题。 &n ...

回复

letppigogo 发表于 2017-2-23 09:01:48
RyanBern 发表于 2017-2-23 08:44
if self.str >=300 and self.hp < self.maxhp / 4
  a = 0.5
end  

不亏是版主,一句话就让我茅塞顿开。
RyanBern 发表于 2017-2-23 08:44:51
RUBY 代码复制
  1. if self.str >=300 and self.hp < self.maxhp / 4
  2.   a = 0.5
  3. end  
  4. atk = [a * (attacker.atk - self.pdef / 2), 0].max
  5. self.damage = atk * (20 + attacker.str) / 20

如果目标不满足第一行的条件,导致第二行不执行,此时变量 a 无定义。如果再执行第四行就会报找不到 a 的错误。

点评

其实,报错原因是没有对nil定义 "*" 方法^_^  发表于 2017-2-23 09:18
letppigogo 发表于 2017-2-22 22:17:34
guoxiaomi 发表于 2017-2-22 21:38
虽然不知道你改了哪里,也不知道报的什么错。

但是,是不是应该把乘号后面的部分用小括号括起来:

这个代码是我手打的,忘了吧括号加进去了

点评

建议把你这段代码替换后的内容,以及具体的报错方式给出来  发表于 2017-2-22 22:18
guoxiaomi 发表于 2017-2-22 21:38:19
虽然不知道你改了哪里,也不知道报的什么错。

但是,是不是应该把乘号后面的部分用小括号括起来:

  1. atk = [a * (attacker.atk - self.pdef / 2), 0].max
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-22 00:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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