はじめてのCounterStrikeSharpプラグイン:Hello World
CounterStrikeSharpのプラグインを書くのに、プログラミングの経験は多くなくて構いません。動くプラグインは、小さなC#クラスとプロジェクトファイルだけでできています。このガイドでは、何もない状態からサーバーコンソールにHello Worldが表示されるまでを進めます。ここで学ぶ内容は、もっと大きなプラグインでもそのまま使えます。
.NET 8 SDKをインストールする
CounterStrikeSharpのプラグインは、.NET 8上のC#で書きます。パソコンに.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メソッドは、サーバーがプラグインを読み込んだときに1回だけ実行され、あなたのコードはここから始まります。
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 コミュニティのために。