Project1
标题:
关于YEP的伤害公式设置报错
[打印本页]
作者:
负零
时间:
2018-3-4 20:47
标题:
关于YEP的伤害公式设置报错
我在攻击技能的备注处备注如下
获取随机数,当随机数大于某值时,伤害增加,攻击时会报错。谢谢各位了,求解。
<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
(322.23 KB, 下载次数: 70)
下载附件
保存到相册
2018-3-4 20:47 上传
作者:
负零
时间:
2018-3-4 21:12
我测试了,是随机数的问题,加了这下面一截就会报错
int ran = (int)(Math.random() * 100)
那么如何实现在攻击时判定随机数呢?
作者:
百里_飞柳
时间:
2018-3-4 21:33
本帖最后由 百里_飞柳 于 2018-3-4 21:36 编辑
……js里有int类型的吗?
你后面都是大于小于判定不需要严格变更为整数呀
后面来了个 element 又是啥
而且你确定你的判定写对了吗?先判定大于7,再判定大于8……?在浮动范围为0-100时……??
以及总觉得需要一个 return
<Damage Formula>
var ran = Math.random() * 10;
if (ran >= 7 && ran < 8) {
value = a.mat * 7;
} else if (ran >= 8 && ran < 9) {
value = a.mat * 20;
} else if (ran >= 9) {
value = a.mat * 100;
}
return value;
</Damage Formula>
复制代码
作者:
ekmomo
时间:
2018-3-6 22:28
本帖最后由 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;
//我知道你其实可能不想用…
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1