Skip to content

特性

Streamer

Streamer 替代了原生函数的ObjectGangZone3dText等所有api,这意味着您必须使用 Streamer 插件,原来的函数您自己开发实现,但强烈不建议,并且可能引发未知问题。

自动销毁实例

当游戏模式退出时,所有的 Streamer/车辆/文本绘制/菜单...实例会自动销毁,这意味着您不再需要重复的写大量的销毁函数。

不过,假设您的实例需要在玩家断开连接时销毁,您仍然需要手动销毁。

弃用

弃用了可以被 JavaScript 内置函数或第三方库实现的函数,比如 floatabsstrcmpsqlite dbsetTimer 等操作。 这意味着您应当使用 JavaScript 库,不再需要也不应该使用原生开发的一些插件,比如 mysql,timerfix 等。

字符串获取

对于大部分字符串获取,您不再需要像原生开发那样定义一个固定长度的数组。 Infernus 内部已经对常用的函数进行了处理,原理是定义了一个最大长度的字符串数组,然后自动迭代数组到第一个字节为 0 的点截取为字符串,比如 GetPlayerName,即 player.getName()

截取的方法来自国际化中的实用函数,如果您遇到一些场景类似的您不必再重复造轮子。

颜色转换

Infernus 底层的颜色转换使用了Peter Szombati 的 samp-node-lib 源码,用于您在开发过程中调用某些函数时,使用更语义化的颜色,比如 #fff#ffffff(r, g, b)(r, g, b, a)

如果您在某些场景,比如文本绘制使用了颜色值后,未按照您的预期,却渲染成了黑色或白色,您可以尝试换一种格式,比如将原有的#fff,改为 (255,255,255,255),或者依旧使用原生开发的数字型格式。

玩家属性

  • getFps():获取玩家当前帧率,只能每间隔 1 秒获取 1 次更新,并且可能为 0
  • lastUpdateTick:玩家最后一次更新的时间戳。
  • lastUpdateFpsTick:玩家最后一次更新的 fps 时间戳。
  • lastDrunkLevel:玩家最后一次更新的醉酒级别。

暂停事件

内置了玩家暂停 onPause 和恢复 onResume 的回调事件, 它不一定适用于 sa 重制版 或 安卓版,并且它是通过计时器和onUpdate来判定的,具有误差。

TIP

玩家网络情况不好的情况下也可能会误触发到该回调。