注意: このページは最後に更新されてから
2832 日が経過している記事です。
文章が腐敗している可能性があります。その点を考慮した上で確認ください。
SRCDS運用マニュアル
提供: kimoto's wiki
目次
概要
- このページはSRCDSの運用をする上で気づいたこととかをメモするものです。
- この記事執筆時点で1年のTF2 SRCDSの運用経験あり、という感じで。
基本的なこと
srcds_run の起動オプション
- 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
- http://www.sourcemm.net/snapshots
- meta version でバージョン確認
- meta list で Metamod Plugin をリストアップ
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
- 詳細はAllidedModdersのページに書いてあります。
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 を入れると入ってる。
- https://developer.valvesoftware.com/wiki/VBSP
- TODO: 使い方マジわかりにくいので後で書く
- このやり方の利点
- 結構面倒くさいけどこのやり方はすごくスマート。
- bsp 配布するだけでよくなるし、なんか完成された感じの雰囲気がしてて良い。
- デメリット
- bspzip で素材を bsp に入れることによってbsp 自体のチェックサムがおかしくなる
- サーバーとクライアントでチェックサムが違うとユーザーは join できなくなる
- しかもクライアントはデフォルトでマップデータの再ダウンロードしてくれないのでかなりだるい感じになる。従ってファイル名を変更して作り直した方が良い。
- しかーし、ファイル名を変更してしまうと、光源の設定がおかしくなる、なんでかって言うとcubemapがmapname変わると破棄される? ため。cubemapは光の反射とかの性質を事前にプリコンパイルしといたもの。
- しかもクライアントはデフォルトでマップデータの再ダウンロードしてくれないのでかなりだるい感じになる。従ってファイル名を変更して作り直した方が良い。
- サーバーとクライアントでチェックサムが違うとユーザーは join できなくなる
- bspzip で素材を bsp に入れることによってbsp 自体のチェックサムがおかしくなる
関連記事
- なんか Mapping 関係の知識については以前まとめた。