Skip to content

插件

必要工作

WARNING

您必须在pawn.legacy_pluginssamp-node 放到其他插件的后面,以确保其他插件先加载。

如果您需要用到传统的插件,您必须像传统的原生开发那样,将插件的 dll/so 放入 plugins 文件夹,然后在config.json中配置pawn.legacy_plugins,并且通过 pawno/qawno 引入这些插件的.inc 文件,然后修改pawn.main_scripts为您编译的.amx文件。

由于插件有数种搭配可能性,所以infernus-starter只组合了常见的无 raknet 和带 raknet 的版本。

如果您没能以正确的方式使用插件,在服务器启动时通常你会收到类似的错误信息,也有一些插件是由于运行时的问题。

[Error] Function not registered: CA_DestroyObject
[Error] File or function is not found

包装开发

有关包装的实现请参考 infernus 的相关代码和 samp-nodewiki

由于一些可能是插件或samp-node,或sampgdk,又或是omp的底层实现,您有可能无法直接使用 samp-node 调用到插件/omp 组件的native函数,也可能无法直接注册回调函数。

例如 raknet无法被直接调用,所以infernus绕了很大的弯路,通过polyfill来实现调用。

如果您开发包装遇到类似的问题,可能需要参考 raknetpolyfill 绕弯路来实现,除非未来的某一天 samp-node和其他生态可以完全兼容omp