我正在将 FiveM 的 Lua 脚本转换为 JavaScript(NodeJS 平台),我遇到了一个奇怪的问题,我无法理解。
我正在转换的功能很简单,它需要一个 FiveM 标识符(由 Fivem 记录的用户的 steamid)并将其从十六进制转换为十进制。然后它将十进制值传递给 Steam Web API,以便我们可以解析配置文件名称/头像等的 json 响应。
代码本身工作正常。问题与转换有关。出于显而易见的原因,我无法发布 API 密钥或 Steam ID,因此我将其空白以进行演示。
在 LUA 中:
local steamid = tonumber(tempSteam,16)
检索十六进制蒸汽 id 并转换为 dec。
在 JS 中:
var steamid = parseInt(tempSteam,16);
相当于上面的JS。
奇怪的是这个。在 JS 中传入 tempSteam 会导致 steamid 以 ###0 结尾,这与我以 ###6 结尾的个人资料不匹配(所有其他数字都相同)。
编辑:剪切解释内容,我后来发现(感谢评论)JS 无法转换 64 位值。所以我现在需要找到一个解决方法。