注意: このページは最後に更新されてから 1439 日が経過している記事です。 文章が腐敗している可能性があります。その点を考慮した上で確認ください。

SRCDS運用マニュアル

提供: kimoto's wiki

概要

  • このページはSRCDSの運用をする上で気づいたこととかをメモするものです。
    • この記事執筆時点で1年のTF2 SRCDSの運用経験あり、という感じで。

基本的なこと

srcds_run の起動オプション

HLDS UpdateTool

  • 指定のゲームのDedicated Serverを取得する方法
$ wget http://www.steampowered.com/download/hldsupdatetool.bin -O hldsupdatetool.bin
$ chmod u+x ./hldsupdatetool.bin
$ ./hldsupdatetool.bin
$ ./steam -command update -game "$GAME" -dir "$GAME"

以下、$GAME に game の名前が入れたらよい (tfとか)

SteamPipe

  • 指定のゲームの Dedicated Server を取得する方法
$ wget http://media.steampowered.com/client/steamcmd_linux.tar.gz -O ./steamcmd_linux.tar.gz
$ tar xvfz ./steamcmd_linux.tar.gz
$ ./steamcmd.sh +login anonymous +force_install_dir ./tf +app_update 232250 validate +quit

これはTF2のインストール例。232250 ってのが TF2 の appid になる。 appid の一覧はこのページにある。 https://developer.valvesoftware.com/wiki/Steam_Application_IDs

SteamPipe でサーバーを自動アップデートする方法

これすればいい http://kimoto.hatenablog.com/entry/2013/05/15/101433

-autoupdate に、-steamcmd_script と -steam_dir ってのを指定する必要が出てきた、みたいな感じ。steamcmd_scriptってのは、steamcmd実行した後に入力する必要があるコマンド達を箇条書きにしただけのテキストファイル(簡単)

MetaMod

SourceMod

  • http://www.sourcemod.net/snapshots.php
  • sm version でバージョン確認
  • sm plugins refresh で SourceMod プラグインのリロードが出来る
  • sm plugins list で SourceMod プラグインをリストアップ

多国語化 / Localization

やり方

1. addons/sourcemod/configs/languages.cfg の設定

"Languages"
{
	"en"			"English"
	"ja"			"Japanese" /* Added */
}

想定してるクライアントの言語を設定します


2. addons/sourcemod/configs/core.cfg でサーバーのデフォルト言語を設定します

	/**
	 * Language that multilingual enabled plugins and extensions will use to print messages.
	 * Only languages listed in languages.cfg are valid.
	 *
	 * The default value is "en"
	 */
	"ServerLang"	"en"

3. AllowClLanguageVar の設定 2.と同じファイルにあります

これは On にしてください。

	/**
	 * Enables or disables whether SourceMod reads a client's cl_language cvar to set
	 * their language for server-side phrase translation.
	 *
	 * "on"		- Translate using the client's language (default)
	 * "off"	- Translate using default server's language
	 */
	"AllowClLanguageVar"		"On"

mm_basedir / sm_basepath

  • 一台のサーバーで複数インスタンス立ち上げる時に、導入するSourceModプラグインやMetamodプラグインをインスタンスごとに変更できる。
    • (ちなみにMetamodは、mm_pluginsfile で iniファイルをサーバーごとに変更したほうが良いかなって気がする)
  • sm_basepathで指定したディレクトリにあるsourcemod plugin(extensionなども)が読み込まれる

サンプル

例えばインスタンスごとに違うSourceModプラグインを設定したい場合は、以下のようにsrcds起動時の引数を指定すれば良い。

Instance1

./srcds_run +sm_basepath addons/sourcemod1

Instance2

./srcds_run +sm_basepath addons/sourcemod2

Stripper:Source

雑多なネタ

マップバグを直す方法

紫と黒の縞模様テクスチャになってしまってる場所がある場合

  • これはその場所のテクスチャが見つからない場合に起こりうる。
  • たとえばここでは例として mvm_example.bsp というマップを fix するときの手順をまとめてみる
やり方1: resファイルを利用してダウンロードさせる方法
  • mvm_example.bsp と同じフォルダに、mvm_example.res ファイルというのを作成すると、このマップの切り替わり時に、この res ファイルに記載されたファイルを自動でクライアントがサーバーから取得してくれるようになる。
    • resファイルの書き方は以下のような感じ
"Resources" 
{ 
  "models/Rocks/rock007Scale3.sw.vtx" "file"
  "models/Rocks/rock007scale3.mdl" "file"
  "models/Rocks/rock007Scale3.phy" "file"
}
やり方2: bspファイル自体に必要な material を入れる
  • 実は bsp ファイルにはそのマップに必要な素材を格納出来るような感じのファイルフォーマットになっている。そしてそこには zip で入れることが出来る。
  • これには vbsp コマンドを使う。SourceSDK を入れると入ってる。
  • このやり方の利点
    • 結構面倒くさいけどこのやり方はすごくスマート。
    • bsp 配布するだけでよくなるし、なんか完成された感じの雰囲気がしてて良い。
  • デメリット
    • bspzip で素材を bsp に入れることによってbsp 自体のチェックサムがおかしくなる
      • サーバーとクライアントでチェックサムが違うとユーザーは join できなくなる
        • しかもクライアントはデフォルトでマップデータの再ダウンロードしてくれないのでかなりだるい感じになる。従ってファイル名を変更して作り直した方が良い。
          • しかーし、ファイル名を変更してしまうと、光源の設定がおかしくなる、なんでかって言うとcubemapがmapname変わると破棄される? ため。cubemapは光の反射とかの性質を事前にプリコンパイルしといたもの。

関連記事