你的第一个 CounterStrikeSharp 插件:Hello World
编写 CounterStrikeSharp 插件并不需要丰富的编程经验。一个能运行的插件,就是一个小小的 C# 类加上一个项目文件。本指南带你从零开始,一直做到在服务器控制台看到 Hello World,而你在这里学到的内容同样适用于更大的插件。
安装 .NET 8 SDK
CounterStrikeSharp 插件是用 C# 在 .NET 8 上编写的。请在电脑上安装 .NET 8 SDK,然后打开终端确认它可以使用。该命令会显示已安装的版本,版本号应以 8 开头。
dotnet --version
创建项目
新建一个空文件夹,在其中打开终端,生成一个类库项目。你在这里取的名字会成为插件 DLL 的名称,所以请选一个清晰且不含空格的名字。
dotnet new classlib --name HelloWorldPlugin
编辑项目文件
打开生成的 .csproj 文件,用下面的内容替换原有内容。关键是对 CounterStrikeSharp.API 的引用,它让你能够访问游戏。请删除自动生成的 Class1.cs 文件,用不到它。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.*" />
</ItemGroup>
</Project>
编写插件
创建 HelloWorldPlugin.cs。每个插件都是一个继承 BasePlugin 的类,并为自己指定名称和版本。Load 方法在服务器加载插件时只执行一次,你自己的代码就从这里开始。
using CounterStrikeSharp.API.Core;
namespace HelloWorldPlugin;
public class HelloWorldPlugin : BasePlugin
{
public override string ModuleName => "Hello World Plugin";
public override string ModuleVersion => "1.0.0";
public override void Load(bool hotReload) { Console.WriteLine("Hello World!"); }}
编译
你可以用 dotnet build -c Release 在本地编译,也可以省去环境配置:把文件夹(项目文件和 .cs 文件)压缩成 zip,上传到我们的编译器。它会还原软件包、构建插件,并返回可直接使用的 zip。
复制到服务器
从 zip 中只复制插件文件夹,放到服务器的 addons/counterstrikesharp/plugins 里。文件夹与 DLL 的名称必须相同。我们 zip 中的 dependencies 文件夹,CounterStrikeSharp 已经自带,请不要复制。
查看控制台
重启服务器,或在服务器运行时加载插件。你应该能在服务器控制台看到自己的消息。如果没有,请运行 css_plugins list 看看插件是否被找到,并阅读我们关于插件无法加载的指南。
Hello World!
CounterStrikeSharp.API Loaded Successfully.
修改并重新加载
插件运行正常后,改一改消息内容,重新编译并替换 DLL。CounterStrikeSharp 支持热重载,所以在开发服务器上,你常常不用重启就能试用新版本。接下来要学的是命令和游戏事件,我们的其他指南里都有介绍。
这篇教程对你有帮助吗?
Barlap 为社区打造。