求生之路2插件开发环境搭建
前言
最近又玩儿起了求生之路2,但是服务器玩儿法太单一了,想用AI整点儿活儿,写点儿奇奇怪怪的插件,或者改下别人的插件,上传到自己的服务器,那么问题就来了,我们怎么去制作一个插件呢?写代码用AI,环境得咱们自己搭建一下,这里记录下插件编译环境的搭建。
之前写过一篇比较简陋的SourceMOD环境搭建,今天专门写一篇针对求生之路2插件编写的环境搭建。
安装VScode
我们就选微软的这个编辑器来做我们的工作台啊,它有丰富的插件,而且免费,点击链接下载安装 -> Visual Studio Code。
安装完成后,我们需要在VScode的插件市场安装三个插件:
- Chinese (Simplified) (简体中文):中文支持
- SourcePawn Studio:用于SP代码的高亮、语义检查、编译等
- All Autocomplete:用于代码补全,方便写代码

下载SourceMod
这里就是重点了,既然要编译源码,那我们就得下载编译器,直接下载SourceMod,里面包含编译工具 -> SourceMod下载。
直接点击那个Windows图标进行下载,目前最新版本是1.12 - build 7255。

构建插件工作目录
接下来我们新建一个文件夹,专门用于开发求生之路2的插件,这里我的文件夹就叫l4d2-plugin,我的这个工作目录已经上传到Github了,读者们可以直接去InsectMk/l4d2-plugin查阅。我这里直接说明目录的结构,读者们可以选择自行创建,或者下载我的仓库文件后自行修改,文件结构如下(对于下面的spcomp.exe、compile.exe与include文件夹,我们需要去下载的SourceMod压缩包中提取,解压后的addons/sourcemod/scripting目录下):

1 | l4d2-plugin/ ← 工作区根 |
SourcePawn Studio配置
文件创建完成后,直接使用VScode打开该文件夹,目前对VScode来说还只是一种在编辑文本的状态,还并没有配好编译的流程。
我们之前下载了SourcePawn Studio插件,但是该插件需要进行配置,你可以通过图形界面进行设置,但是这里为了方便就直接使用VScode工作区配置settings.json的方式去配置,我们在l4d2-plugin下新建一个文件.vscode/settings.json,如果你下载我的Github仓库,就直接复制.vscode/settings.json.example,将.example后缀去除并修改即可,模板内容如下:
1 | { |
//开头的全为注释,可删除可保留。
纯本地开发
对于只需要本地开发(本地编译生成.smx后缀的插件后,自行上传到服务器)的读者来说,只需要修改配置模板中的下面几个参数即可:
- SourcePawnLanguageServer.compiler.path:编译器的路径,改成你
l4d2-plugin/spcomp.exe的绝对路径就行了 - SourcePawnLanguageServer.includeDirectories:编译时需要链接的头文件目录,改成你
l4d2-plugin/include与l4d2-plugin/include-ext的绝对路径就行了 - sourcepawn.outputDirectoryPath:存放编译后产生的
.smx插件的目录,这里就用l4d2-plugin/plugins,与服务器的left4dead2/addons/sourcemod/plugins保持同名,如果你只需要本地开发的话,你可以随意命名
热部署开发 (推荐)
场景:每次编译后,直接将最新编译.smx后缀的插件上传到服务器插件目录,并重载插件以便于游戏内测试,settings.json配置步骤如下:
配置
sourcepawn.SourceServerOptions直接看配置文件中的注释去配置即可,是用于在上传插件后在服务器l4d2终端中执行类似
sm plugins reload xxxPlugin这样的指令以热更新插件的更改其中有些踩坑点:服务端的启动参数上需要加上
-ip 0.0.0.0,这样你的开发机才能访问;password是在服务器left4dead2/cfg/server.cfg中配置的rcon_password内容配置
sourcepawn.uploadToServerAfterCompile:改成true就行了,表示编译后需要自动上传内容到服务器配置
sourcepawn.UploadOptions:与上面那个选项相关联,开启上面的选项后,使用此配置执行上传任务,还是阅读模板注释自行配置这里建议直接开启
sftp,port就直接写SSH的端口就行了,一般为22,username与password填写具有文件夹权限的用户就行了。remoteRoot就填服务器left4dead2/addons/sourcemod的绝对路径,这样与插件的存放目录plugins一拼接,就可以直接将插件放到服务器正确的插件目录了。exclude已经给你配好了,上传是会将l4d2-plugin下所有的内容上传到remoteRoot配置的路径的,排除不要上传的目录、文件就行。
踩坑:自动编译上传并重载后,源码中的配置文件描述并不会同步到addons/cfg/sourcemod/xxx.cfg,哪怕删了也不行,需要关闭服务器并删除该文件,重启服务器后正确生成
编写代码
好了,完成上面的步骤就可以进行实际的开发了,我们在l4d2-plugin/source下新建一个插件源码l4d2-plugin/source/hello/hello.sp,写入以下测试内容:
1 |
|
让鼠标聚焦到hello.sp编辑框,右键 -> Compile file 或者直接 ctrl + shift + D,执行后,会在l4d2-plugin/plugins目录下生成hello.smx

上传成功后,直接生效,不用重启服务器,也不用自己在终端输入reload指令,游戏内按u发送!hello即会打印Hello World!效果如图:

至此,你已经可以借助AI工具自主测试开发求生插件了🥳🥳🥳!!!

