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

Project1

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

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2018-3-4 20:47:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我在攻击技能的备注处备注如下
获取随机数,当随机数大于某值时,伤害增加,攻击时会报错。谢谢各位了,求解。
<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>

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
2
 楼主| 发表于 2018-3-4 21:12:17 | 只看该作者
我测试了,是随机数的问题,加了这下面一截就会报错
int ran = (int)(Math.random() * 100)
那么如何实现在攻击时判定随机数呢?
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34893
在线时间
6756 小时
注册时间
2012-5-26
帖子
3262

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

3
发表于 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>
复制代码

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3424
在线时间
461 小时
注册时间
2013-12-7
帖子
333
4
发表于 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;
//我知道你其实可能不想用…
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-9 06:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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