我有一个基于Node.js的Discord Bot,使用discord.js编写,我想要制作一个回合制战斗系统,因此我编写了一个伤害计算函数。
var damage = parseFloat( Math.floor( Math.random() * skill.dmg/5 ) + skill.dmg )
//some other factors, none causing the error
damage = Math.floor( damage )
代码非常简单,但出现错误:
类型错误:Math.floor(...)不是函数
我已经检查过每篇帖子,按照他们所做的做了,但没有任何作用,我已经清除了缓存,我已经检查了camelCase,...
我该怎么办?
主要功能代码:
var damage = parseFloat( Math.floor( Math.random() * skill.dmg/5 ) + skill.dmg )
damage += weapons[ user.inv.armor.weapon ].damage
var crit = ( ( Math.floor( Math.random() * 100 ) + skill.crit ) > 100 ? ( Math.random() + 1 ).toFixed( 1 ) : 1 )
damage *= crit
if ( !tags.includes( 'ignorant' ) ) {
damage -= enemy.stats.res
damage *= parseFloat( "0." + ( 100 - enemy.res[ tags[1] ] ) )
damage -= shields[ enemy.inv.armor.shield ].res
}
damage = Math.floor( damage )damage = Math.floor( damage )
( monster ? enemy.hp -= damage : enemy.profile.hp -= damage )
Math
,它可能在某个时候被重新定义过了。 - CarcigenicateMath.floor()
的返回值不是一个函数。在damage = Math.floor(damage)
之后的下一行是什么?那一行缺少分号,所以下一行可能是问题的原因。 - PointyparseFloat
。 - Bergi