查看: 3692|回复: 3

[有事请教] 关于YEP的伤害公式设置报错

[复制链接]
梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
发表于 2018-3-4 20:47:44 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我在攻击技能的备注处备注如下
获取随机数,当随机数大于某值时,伤害增加,攻击时会报错。谢谢各位了,求解。
<Damage Formula>
int ran = (int)(Math.random() * 100)
    if (ran > 7) {
      value = a.mat * 7;
    } else if (element > 8) {
      value = a.mat * 20;
    } else if (element > 9) {
      value = a.mat * 100;
    }
  }
</Damage Formula>
QQ截图20180304204709.png
梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
回帖
668
 楼主| 发表于 2018-3-4 21:12:17 | 显示全部楼层
我测试了,是随机数的问题,加了这下面一截就会报错
int ran = (int)(Math.random() * 100)
那么如何实现在攻击时判定随机数呢?
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2018-3-4 21:33:30 | 显示全部楼层
本帖最后由 百里_飞柳 于 2018-3-4 21:36 编辑

……js里有int类型的吗?
你后面都是大于小于判定不需要严格变更为整数呀
后面来了个 element 又是啥
而且你确定你的判定写对了吗?先判定大于7,再判定大于8……?在浮动范围为0-100时……??

以及总觉得需要一个 return
  1. <Damage Formula>
  2. var ran = Math.random() * 10;
  3. if (ran >= 7 && ran < 8) {
  4.    value = a.mat * 7;
  5. } else if (ran >= 8 && ran < 9) {
  6.    value = a.mat * 20;
  7. } else if (ran >= 9) {
  8.     value = a.mat * 100;
  9. }
  10. return value;
  11. </Damage Formula>
复制代码

回复

使用道具 举报

梦石
0
星屑
4716
在线时间
501 小时
注册时间
2013-12-7
回帖
333

极短28参与极短27参与

发表于 2018-3-6 22:28:10 | 显示全部楼层
本帖最后由 ekmomo 于 2018-3-6 22:47 编辑

var ran = Math.floor(Math.random() * 100)  //0 - 99 随机
Math.random() 取 0-1 开区间小数
Math.floor()向下取整
不论是从优化还是JS本身BUG角度考虑,一定要做取整。
另外千万不要return,eval + return 即使不报错也会非常非常非常影响效率。

要用element 还要var element = $dataSkills[this._item._itemId].damage.elementId;
//我知道你其实可能不想用…
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部