CounterStrikeSharpの環境を構築してHello Worldしよう

1.8k words

これを見る前に…

前提として公式のドキュメント見たほうが早いです。 英語読める人はこっち見るのおすすめ。

とりあえず入れよう

筆者は本番環境がWindowsであるため開発環境もWindowsで構築しています。

自分の環境

開発

  • Windows 10 22H2
  • .NET 8.0.101
  • Visual Studio Code

テストサーバー

  • VMWare Workstation
  • Windows 11 23H2

サーバーの環境構築

0. Windows環境の場合

Visual Studio再頒布可能パッケージがないとWindowsのサーバーでは動作しないのでインストールしておいてください。

1. SteamCMDからCounterStrike2をインストールする

  1. https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip からsteamcmd.zipをダウンロード
  2. steamcmd.zipを解凍
  3. 中にあるsteamcmd.exeを実行
  4. force_install_dir <インストール先>でインストール先を指定
  5. login anonymous でログイン
  6. app_update 730 でインストール開始
  7. 終わるまで待つ

2. Metamodを入れる

ここから2.x系のMetamodをダウンロードしたら

  1. Metamodを解凍してgame/csgoディレクトリにaddonsディレクトリをコピペ
  2. game/csgoディレクトリの中にあるgameinfo.giを開く
  3. Game_LowViolence csgo_lvの下にGame csgo/addons/metamodを追加する
  4. サーバー起動

3. CounterStrikeSharpを入れる

  1. ここからcounterstrikesharp-with-runtime-build-***-windows-*******.zipをダウンロード
  2. Metamodを解凍してgame/csgoディレクトリにaddonsディレクトリをコピペ
  3. サーバー起動

4. 確認

サーバーが起動したらmeta listと打って、CounterStrikeSharpが出てくればOK

開発環境構築

1. .NET SDKを入れる

まずここから.NET 8.0のSDKをダウンロードします。

2. NETのクラスライブラリを作成する

以下のコマンドを使用して、クラスライブラリのプロジェクトを作成します。

1
dotnet new classlib --name <ProjectName>

3. 依存関係を追加する

<ProjectName>.csprojがあるディレクトリで、以下のコマンドを使用してCounterStrikeSharpAPIを依存関係として追加します。

1
dotnet add package CounterStrikeSharp.API

4. とりあえずHello Worldしておく

以下のようなコードで適当にhelloworld.csとかで保存すればHello World出来ます。

1
2
3
4
5
6
7
8
9
10
11
12
namespace VeryNicePlugin {
public class VeryNicePlugin: BasePlugin {
public override string ModuleName => "Plugin Name";

public override string ModuleVersion => "0.0.1";

public override void Load(bool hotReload)
{
Console.WriteLine("Hello World!");
}
}
}

5. コンパイル

  1. <ProjectName>.csprojがあるディレクトリでdotnet build --configuration Releaseを実行します。
  2. 成果物が、<ProjectName>\bin\Release\以下に生成されます

6. サーバーに導入

<ProjectName>.dllをサーバーのPluginsにコピーしてあげれば勝手にホットリロードされます。

入れる際は、plugins/<ProjectName>/<ProjectName>.dllとしないと読み込まれないので注意