ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 六、制作你的第一个插件 ### 6.1 首次编写的准备 1. 打开记事本 或 `UE编辑器` 2. 然后准备好AMXX编译器(可通过[这里][5]下载) ### 6.2 开始编写 > 首先我们需要定义 `注册什么模块` 这个部分并不难,由于是第一个插件。我们不需要写的太难 我们用 `#include <模块名>` 为基础模块 `amxmodx` 来完成注册,代码如下 ``` #include <amxmodx> ``` 如上,我们就完成了注册插件模块 `amxmodx` ,接下来我们需要定义三个信息,他们分别是 > * 插件名 * 插件版本号 * 插件作者名 我们通过 `register_plugin( )` 来完成注册 ``` register_plugin("插件名", "插件版本号", "插件作者名") ``` > 中间的这三个部分叫参数,将他们写进去后需要用 `" "` 引号来把他们包围起来 接下来我们需要用 `plugin_init()` 来注册, `register_plugin` 事件 代码如下: ``` public plugint_init() { register_plugin("插件名", "插件版本号", "插件作者名") } ``` 将整个代码组合之后就会变成 ``` #include <amxmodx> public plugin_init() { register_plugin("插件名", "插件版本号", "插件作者名") } ``` 到这里,已经完成了基础代码构造,接下来我们需要做的是该插件做上功能 > 第一次,我们指定一个可以简单完成的目标吧。 按 Y 键输入 `/test` 提示一些信息 提示信息我们用到的是 `client_print( )` 他的作用是在游戏中打印指定的文字 示例: ``` client_print(id, print_chat, "这是一些信息") ``` > 这个信息需要由一个函数所包含 比如说: ``` public test(id) { client_print(id, print_chat, "这是一些信息") } ``` > 我们需要注册一个 `客户端命令` 才能完成触发这个函数。 然后通过函数引发 `client_print` 注册客户端的命令的代码为 `register_clcmd( )` 这个代码由两个参数注册 > * 注册什么命令 * 触发什么函数 比如说: ``` register_clcmd("say /abc", "thefunc") ``` 上述示例代表 通过按Y键输入 `/abc` 触发 `thefunc` 函数 > 注册客户端命令的代码必须写到 `plugin_init()` 里面进行注册 当所有代码组合后,就会变成如下示例: ``` #include <amxmodx> public plugin_init() { register_plugin("插件名", "插件版本号", "插件作者名") register_clcmd("注册什么命令", "触发什么函数") } ``` 我们的目标是 按Y键输入 `/test` 触发一段信息,这里的信息我们通过`函数(public)` 触发 首先我们需要将 `注册什么命令` 引号中的部分改成 `say /test` 示例: ``` register_clcmd("say /test", "触发什么函数") //注册客户端命令 ``` > 在 `触发什么函数` 这个参数部分,我们可以自己定义一个 `名字`,比如说 `test_func` 填入进去即可 示例如下: ``` register_clcmd("say /test", "test_func") //注册客户端命令 ``` 接下来要做的就是触发函数,现在我们还没有定义 `被触发` 的那个函数 > 定义触发函数,需要触发的函数的名字 然后在 `plugin_init()` 括号外写入 `public 函数名` 示例: ``` #include <amxmodx> public plugin_init() { register_plugin("插件名", "插件版本号", "插件作者名") register_clcmd("say /test", "test_func") //注册客户端命令 } public test_func(id) { client_print(id, print_chat, "这是一些信息") } ``` > 请注意:注册`客户端命令`那里,触发的函数名要和下方这个 `public 函数名` 对应 接下来,我们需要在 `被触发的函数` 里写上 `client_print` 的打印信息 示例: ``` #include <amxmodx> public plugin_init() { register_plugin("插件名", "插件版本号", "插件作者名") register_clcmd("say /test", "test_func") //注册客户端命令 } public test_func(id) { client_print(id, print_chat, "这是一些信息") } ``` > 提示:由于如果不是 `UE编辑器` 更改代码保存后可能会出现 `ANIS/UTF-8` 乱码问题。 建议在初学插件的时候使用 `英文` 来替代(但注释中的中文可以除外) 比如: ``` public test_func(id) { client_print(id, print_chat, "Hello World") } ``` ### 6.3 编译这个源代码成为插件 当我们写好了一个源代码后,接下来的事情就需要交给 `编译器` 然后让他转义为 `AMXX`插件 如果还没有编译器,可以点击 [这里](http://120.25.198.85:7500/ExploerFile/index.php?share/file&user=admin&sid=FXPVnMux) 下载 > 跟着我做: 1. 复制 `编写好的源代码` 到 编译器目录下 然后 `粘贴` 2. 将源代码文件(.SMA)用鼠标拖拽到编译器目录下的 `compile.exe` 文件上,然后放开鼠标 3. 若成功编译,你会在编译器目录看见 compiled 文件夹。 4. 在这个文件夹中 就会找到你编译后的插件 > 不太能理解? 你可以看下面的动态图来 `帮助` 你 ![](http://120.25.198.85:7500/ExploerFile/index.php?share/fileProxy&user=guest&sid=RwGtAHYQ) > 到这里,你的第一个插件就制作完成了 插件安装到游戏的过程 可参考 `2.3 将插件安装到游戏中`