(2022年/Windows向け)CS1.6鯖の構築

需要がありそうだったので、調べました。 なんか分かったら随時更新します。

  • 2022/09/04: MetaMod,AMX Mod X,PodBot,CSDM当たりの手順を追加(記事を分けるかも)

前提

  • Windows 10 (64bit)
  • Noob向けではない(公開手順などは各自で)
  • CounterStrike 1.6を持っているSteamアカウント(いつも遊んでいるアカウントとは別のアカウントが望ましい)

履歴

2022/12/29: 匿名ログインだと失敗するようになっていたのでSteamアカウントにログインする手順に修正

HLDSの導入

フォルダを作成する

日本語や半角スペースを含まないフォルダを作る。例えば C:\hlds にする。(場所を変える場合は以降、適宜読み替える)

コマンドプロンプト(cmd)を開き、以下のコマンドを実行する。

mkdir C:\hlds

コマンドプロンプトの開き方は色々あるが、例えば以下のようにする。

SteamCMDをダウンロードする

https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

ダウンロード後、解凍し、steamcmd.exeC:\hldsへコピーする。

Half-LifeのModであるCS1.6(cstrike)を導入する

AppIdの90はCounter-Strike 1.6 dedicated serverを指すらしいが、その割になぜかcstrikeというModがついてこない。なので、この2つをsteamcmd経由で導入する。

コマンドプロンプト(cmd)を開き、steamcmd の対話モードを起動する。 CounterStrike 1.6を購入しているSteamアカウントのアカウント名を入れてログインを始める。

このときアカウントは念のため遊ぶものとは別のものが望ましい(不正なsteamcmdをつかまされた場合にアカウントが流出してしまうリスクがあるため。そうそうできる事ではないが用心しましょう)

cd C:\hlds
steamcmd +login "Steamアカウント名"

するとパスワードと(2要素認証設定済みの場合は)ワンタイムパスワードを求められるので入力する。

認証が成功すると、プロンプトが Steam> となるので入力を続ける。

app_update 90 validate

成功時は Success! App '90' fully installed.と出力される。続いて以下を入力。

app_set_config 90 mod cstrike
app_update 90 mod cstrike validate

成功時は Success! App '90' fully installed.と出力される

この時点で、C:\hlds\steamapps\common\Half-Life にファイルが作られているはずである。

終わったら quitと打つか、Ctrl+Cで終了する。(Ctrl+Cだと色々表示されるが問題ない)

また、何度もダウンロードを伴うコマンド操作していると、サーバからはじかれて一定時間タイムアウトが続いてしまうことがある。

エラーになったときは再試行

app_update操作を行ったとき、たまに Error! App '90' state is 0x10E after update job. といったエラーとなり、失敗することがある。

この場合は再度同じコマンドを再度実行する。

2022/12/29時点: なお、匿名ログインだと app_update 時にError! App '90' state is 0x6 after update job.と出て失敗する。

コマンドプロンプト(cmd)を開き、steamcmd の対話モードを起動する。

cd C:\hlds
steamcmd +login anonymous

Steam>app_update 90 validate
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x61) downloading, progress: 0.90 (493992 / 54874837)
Error! App '90' state is 0x10E after update job.

Steam>app_update 90 validate
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Error! App '90' state is 0x6 after update job.

こういったトラブルになったとき、logs/content_log.txtなどを見ると原因の推測ができるかもしれない。

今回の現象は以下のようにreceived 401 (Unauthorized)となって認可エラーになっていることが分かる。(ログインしているユーザに権限が無い=匿名ユーザにはアクセスする権利がない?)

[2022-12-29 14:43:48] HTTP (SteamCache,183) - cache1-tyo2.steamcontent.com (155.133.239.6:80 / 155.133.239.6:80, host: cache1-tyo2.steamcontent.com): Failed to get manifest request Code for depot 11 manifest 4720911300072406946 - Access Denied (15) - continuing without it
[2022-12-29 14:43:48] HTTP (SteamCache,183) - cache1-tyo2.steamcontent.com (155.133.239.6:80 / 155.133.239.6:80, host: cache1-tyo2.steamcontent.com): cache1-tyo2.steamcontent.com/depot/11/manifest/4720911300072406946/5 - received 401 (Unauthorized) HTTP response
[2022-12-29 14:43:48] HTTP (SteamCache,183) - cache1-tyo2.steamcontent.com (155.133.239.6:80 / 155.133.239.6:80, host: cache1-tyo2.steamcontent.com): Received 401 (Unauthorized) HTTP response for depot 11
[2022-12-29 14:43:48] HTTP (SteamCache,183) - cache1-tyo2.steamcontent.com (155.133.239.6:80 / 155.133.239.6:80, host: cache1-tyo2.steamcontent.com): Closing connection
[2022-12-29 14:43:48] Created download interface of type 'CDN' (2) to host steampipe.akamaized.net (steampipe.akamaized.net)
[2022-12-29 14:43:48] HTTP (SteamCache,67) - cache3-tyo2.steamcontent.com (155.133.239.7:80 / 155.133.239.7:80, host: cache3-tyo2.steamcontent.com): Failed to get manifest request Code for depot 11 manifest 4720911300072406946 - Access Denied (15) - continuing without it
[2022-12-29 14:43:49] HTTP (SteamCache,67) - cache3-tyo2.steamcontent.com (155.133.239.7:80 / 155.133.239.7:80, host: cache3-tyo2.steamcontent.com): cache3-tyo2.steamcontent.com/depot/11/manifest/4720911300072406946/5 - received 401 (Unauthorized) HTTP response
[2022-12-29 14:43:49] HTTP (SteamCache,67) - cache3-tyo2.steamcontent.com (155.133.239.7:80 / 155.133.239.7:80, host: cache3-tyo2.steamcontent.com): Received 401 (Unauthorized) HTTP response for depot 11
[2022-12-29 14:43:49] HTTP (SteamCache,67) - cache3-tyo2.steamcontent.com (155.133.239.7:80 / 155.133.239.7:80, host: cache3-tyo2.steamcontent.com): Closing connection

設定ファイルを配置する

試合をするとき昔使っていたconfigファイルを使う

drive.google.com

  • lo3.cfg: rcon exec lo3.cfg のように使う。試合を始める時に使う。カウントダウンが行われ、その後試合開始とする
  • tr.cfg: rcon exec tr.cfg のように使う。試合を始める前のウォームアップ用(時間や所持金を増やす)
  • server.cfg: 起動時に読まれるファイル。サーバの設定を書く。lo3.cfgからも読み出される
  • match.cfg: 試合用の設定にリセットする。lo3.cfgから読み出される

server.cfgのサーバ名(hostname)とサーバパスワード(sv_password)とrconパスワード(rcon_password)を適宜設定する。

HLDSの起動と操作

HLDSの起動

コマンドベースで行う。

cd "C:\hlds\steamapps\common\Half-Life"
hlds.exe -game cstrike -console -port 27017 +map de_dust2 +maxplayers 16 

以下のような画面が表示されていればサーバが動いている状態。

サーバ起動時に何度も打つことになるので、以下のようにstart-hlds.batのようなバッチファイルにまとめておくと良い。

cd %~dp0
start hlds.exe -game cstrike -console -port 27017 +map de_dust2 +maxplayers 10

rcon操作

rcon(Remote Controlの略?)でクライアントからサーバの操作ができる。 サーバに設定されているrcon操作用のパスワードが必要。

コマンド名 引数 意味
rcon_password パスワード rcon_password foo rcon操作時に使うパスワードを設定する
rcon_address IPアドレス or FQDN rcon_address foo.example rcon操作先のアドレス(未指定の場合はローカル or 接続中のサーバ)
rcon_port ポート番号 rcon_port 27017 rcon操作先のサーバのポート番号(未指定の場合はローカル or 接続中のサーバ)
rcon コマンド名 rcon exec lo3.cfg サーバ上で コマンド名 のコマンドを実行する。

よく使う操作

コマンド名 引数 意味
changelevel マップ名 rcon changelevel de_dust2 マップを変更する。

身内に公開

UDPポートの27017を使う。(デフォルトの場合)

接続コマンドを用意して接続者に案内する。

connect ホスト名:ポート番号; password パスワード;

利用者にはコンソールを開き、接続コマンドを貼り付けて接続してもらう。 (IRC時代はキーワードでこの接続情報を応答するボットが居たのでdiscordでも同じようなボットを作ると便利かもしれない。パスワードは固定なので)

Mod導入

以降は、非公式のプログラムを導入してゲームを拡張する手順となる。

誰かが公開しているプログラムを動かすことになるため、悪意のあるプログラムを動かすことになるかもしれないためリスクがあることを注意する。自己責任。自己防衛。

MetaMod: プラグインでゲームの機能を拡張するためのMod

http://metamod.org/

プラグインのリストは以下。

http://metamod.org/plugins.html

MetaModのダウンロード

2022/09/04時点、公式からは1.20、AMX Mod Xからは少し修正された1.21.1-amが配布されている。

おそらく、AMX Mod Xを入れたい場合がほとんどなので、ここではAMX Mod Xで配布されている1.21.1-amで導入することを前提に進める。

なお、ビルド時期自体は公式の1.20は2013年2月、AMX Mod Xの1.21.1-amは2013年9月ビルドされている。ソースコードはGitHubで公開されており、その内容はさほど大差はなさそう。試した感じ、概ねどちらでも動作する。

MetaModの導入

Explorerの設定でファイルの拡張子は表示するようにしておく

cstrike/addons/metamod/dlls のフォルダを作る。

ダウンロードしたmetamod.dllcstrike/addons/metamod/dlls へコピー

元々ある cstrike/liblist.gam のコピー(バックアップ)を取る

liblist.gam をメモ帳で開き、gamedllで始まる1行をgamedll "addons\metamod\dlls\metamod.dllへ書き換える。

# gamedll dlls\mp.dll
gamedll "addons\metamod\dlls\metamod.dll

以上。

なお、他のプラグインを導入するときは、cstrike/addons/metamod/plugins.ini に列挙していく必要があるが、必要に応じて手順を書く(AMX Mod X, PodBotなどの導入で書くことになる)

この時点でHLDSを起動すると、コンソールに以下のようなMetaModが動いているらしいログが流れることで確認できる。

AMX Mod X : プラグインでゲームの機能を拡張

https://www.amxmodx.org/

以下のコミュニティWikiが詳しい。

Category:Documentation (AMX Mod X) - AlliedModders Wiki

プラグインhttps://www.amxmodx.org/compiler.php?mod=2&cat=0&plugin=&author=&go=search (公式のリスト)から参照できる他、様々な場所で公開されている。

大抵はフォーラムで公開とサポートをしていることが多く、対応がしっかりしていそうなものを選ぶ指標にするといいかもしれない。

AMX Mod Xのダウンロード

2022/09/04時点では、公式から安定版として1.8.2開発版として1.9.0が配布されている。ここでは1.8.2を使う。

CS1.6で扱うには以下の2つが必要。

AMX Mod X Baseの導入

AMX Mod X Baseのzipを展開し、中にあるamxmodxcstrike/addonsへコピーする。 cstrike/addons/amxmodxの中は以下のようになる。

次にMetaModのプラグイン設定ファイル cstrike/addons/metamod/plugins.ini をメモ帳などで開き、 win32 addons/amxmodx/dlls/amxmodx_mm.dll を追記する。

win32 addons/amxmodx/dlls/amxmodx_mm.dll

以上。これでMetaMod経由でAMX Mod Xが動作する。

AMX Mod X CounterStrike Addonの導入

AMX Mod X CounterStrike Addonのzipを展開し、cstrike/addons/amxmodx へ上書きコピーを行う。

上書きがあるが、上記の手順でAMX Mod Xを初めて入れた場合は、cstrike用の設定を追記するだけなので悪影響はないはず。

この時点でHLDSを起動すると、コンソールに以下のようなAMX Mod Xが動いているらしいログが流れることで確認できる。

もし、出力されない場合は、cstrike/addons/metamod/plugins.ini の記述が誤っている可能性が高い。ファイルのパス(アドレス)が正しいか、記述の内容が正しいか確認する。

AMXXプラグインの導入

cstrike/addonsamxmodx/pluginsプラグイン プラグイン名.amxx を配置し、 cstrike/addons/amxmodx/configs/plugins.iniプラグイン名.amxx を記述するだけ。

上から順番に読み取られる。プラグインによっては順序関係がある場合がある点に注意する。

AMX Mod Xの権限管理

https://wiki.alliedmods.net/Adding_Admins_(AMX_Mod_X)

cstrike/addons/amxmodx/configs/users.ini に書き込む

 "Steam ID" "" "権限" "ce"

Steam IDは色々なやり方でわかる。接続した状態でHLDSのコンソールでusersとするか、rcon usersとする。

権限は abcdefghijklmnopqrstu 選んでつける。(なお、これは全部の権限を持つことを意味する。サーバ管理者とかにつける。) 権限の対応は以下。

https://www.amxmodx.org/api/amxconst#section-admin-privilege-and-authentication-constants

PodBot MetaMod: BOTを動かすMetaModプラグイン

http://podbotmm.bots-united.com/doc_v3/index.html

BOTが動きます。

waypointsというMap上でBOTが動く道筋の情報が書かれているファイルを用意する必要がある。メジャーなマップは用意されていたり、aimマップなどは有志が公開してくれている場合もある。しかしデスマッチサーバではキャンプを続けたりすることもあり、合わない場合もある。(一応設定でキャンプする時間を減らすなどで軽減できる。カスタマイズはよくわからない・・・)

PodBotをダウンロードする

http://podbotmm.bots-united.com/doc_v3/html/pbmm_install.htmlから入手できる。様々なプラグインも込々で入っているAll-In-Oneパッケージもあるが今回はPodBot単品で導入する。

PodBotを導入する

Zipを展開すると podbot というフォルダがあるのでこれをそのまま cstrike/addons にコピーする。cstrike/addons/podbotの中は以下のようになる。

MetaModのプラグイン設定ファイル cstrike/addons/metamod/plugin.ini を開き、win32 addons/podbot/podbot_mm.dllを追加する。もし、AMX Mod Xがある場合はその行はそのまま残すようにする。(以下、例)

win32 addons/amxmodx/dlls/amxmodx_mm.dll
win32 addons/podbot/podbot_mm.dll

この時点でHLDSを起動すると、コンソールに以下のようなPodBotが動いているらしいログが流れることで確認できる。

PodBotの設定ファイル

cstrike/addons/podbot/podbot.cfg に設定が書かれている。

以下はファイルに書かれている適当な翻訳とか。あまり調査できていない。

* がある行は個人的に確認しておいた方がよさそうな設定。 設定値なので、rcon pb_ffa 1 とかで設定できる。

* キー デフォルト 意味
pb_minbots 0
pb_maxbots 16
pb_bot_quota_match 0
pb_bot_join_team "ANY"
pb_skin 5
pb_timer_sound 0.5
pb_timer_pickup 0.3
pb_timer_grenade 0.5
* pb_spray 0:無効 1:有効 1 Botがスプレーを使う
* pb_ffa 0:無効 1:有効 0 FFAモード(仲間をコロコロし始める)
pb_firsthumanrestart 0:無効 1:有効 0 人が初めて入った場合、ラウンドをリセット
pb_shootthruwalls 0:無効 1:有効 1 壁の向こう側を打つ(居ると分かっている場合?)
pb_passwordkey "_pbadminpw"
* pb_password 文字列 "your_password" pb menuコマンドのパスワード。適宜修正。
pb_numfollowuser 数値 5 "Follow me"と人が言った場合に従うbotの最大数
pb_minbotskill 0~100 95 Botの強さ下限
pb_maxbotskill 0~100 100 Botの強さ上限
pb_maxweaponpickup 10 Botが1ラウンドで拾うことができる武器の数
pb_mapstartbotdelay 数値(秒) 10 マップ開始時にBOTを参加させる遅延時間(秒)
pb_autokill 0:無効 1:有効 0 BOTだけ生き残っていたらBOTをkillする?
pb_autokilldelay 数値(秒) 45 pd_autokill有効時に指定秒数だけ遅らせる(有効にするなら早い方がいいのでは?)
* pb_maxcamptime 数値(秒) 30 キャンプしている時間
pb_jasonmode 0:無効 1:有効 0 BOTはナイフ攻撃のみにする
pb_detailnames 1,2,3,4,5 1 | BOTの名前の表記を幾つかから選ぶ
pb_dangerfactor 2000 学習値。死んだ場所を危険と認識して重み付けするときの係数
* pb_chat 0:無効 1:有効 1 BOTがチャットを飛ばすようになる
* pb_latencybot 0 スコアボードのLatencyの表示 0:表示しない 1:BOT, 2:適当な値
* pb_radio 0 BOTがradioを使う用になる
pb_aim_type 1-4 4 BOTのAIMの仕方?
pb_aim_spring_stiffness_x 13.0
pb_aim_spring_stiffness_y 13.0
pb_aim_damper_coefficient_x 0.22
pb_aim_damper_coefficient_y 0.22
pb_aim_deviation_x 2.0
pb_aim_deviation_y 1.0
pb_aim_influence_x_on_y 0.25
pb_aim_influence_y_on_x 0.17
pb_aim_offset_delay 1.2
pb_aim_notarget_slowdown_ratio 0.5
pb_aim_target_anticipation_ratio 2.2
pb_restrweapons "00000000000000000000000000"
pb_restrequipammo "000000000"

Podbotのコマンド

pb help などで確認できる。

起動時にBOTが追加されるのはcstrike/addons/podbot/podbot.cfgpb add 100と書かれているため。

waypointsについて

先に書いた通り、waypointsはマップ毎に用意する必要があり、無い場合はBOTを動かすことができない。

もし作成手順はドキュメントがあるので参考にする(よくわからない)

http://podbotmm.bots-united.com/doc_v3/html/pbmm_wp_basic.html

CSDM: デスマッチにするAMX Mod X プラグイン

  • 武器選択
  • 死んでも即座に復活

などなどデスマッチ(DM)に必要な要素を動かすプラグイン

オリジナルはBAILOPAN氏の実装だが、アップデートで動作しなくなったらしい。

フォーラムにアップデートや細かい改修を入れた CSDM 2.1.3d KWo beta が2006年頃から公開されており、今回はこれを使用する。

(2015年頃、CSDMがクラッシュするからと実装しなおしたDeathmatch FFA 1.2もあり、試した感じは動いたが、無限リロードができないとかとか細かい部分が足りない感じがある。あとフォーラム上もあまり良い雰囲気ではなさそうだった。)

CSDM 2.1.3d KWo betaのダウンロード

フォーラム CSDM 2.1.3d KWo beta からダウンロードする。

CSDM 2.1.3d KWo betaを導入する

cstrike/addons/amxmodx のフォルダに上書きコピーする。

なお、plugins-csdm.iniがあるため、cstrike/addons/amxmodx/configs/plugins.ini の修正は不要。

CSDMの設定ファイル

cstrike/addons/amxmodx/configs/csdm.cfg に書かれている。

iniファイルっぽくセクションごとに分かれて定義されている。

[[settings]]

設定値 デフォルト 意味
enabled 1 CSDMを有効化
strip_weapons 1 開始時に装備を脱がす
weapons_stay 0
spawnmode preset スポーンするモード。noneはマップの決められた場所でスポーン。presetは決められた場所からランダムにスポーン。
remove_bomb 1 爆弾を削除する
spawn_wait_time 0.75 リスポーンまでの待ち時間

[[ffa]]

FFAモード

設定値 デフォルト 意味
enabled 1 FFAモード有効(同チーム攻撃できる)
radar_disable 1 レーダーの味方の位置を隠す

[[misc]]

設定値 デフォルト 意味
remove_objectives abcd 不明
block_buy 1 購入できないようにする
ammo_refill 1 弾がなくなると自動で補充(リロードは必要)
spawn_radio_msg 0 不明(スポーン時のラジオメッセージ?)
hide_money 1 所持金を隠す
hide_timer 1 タイマーを隠す

[[stripper]]

(よくわからない。classに書かれたものを削除するとかだと思う。開始時にハンドガン持ってたりするので。)

設定値 デフォルト 意味
enabled 1
class player_weaponstrip
game_player_equip
item_healthkit
item_battery
armoury_entity
item_longjump

[[protection]]

復活時の保護

設定値 デフォルト 意味
enabled 1 復活直後の無防備なタイミングがなくなるよう無敵にする
glowing 1 (不明)
colorst "255 0 0 200" Terroristの色?(赤)
colorsct "0 0 255 200" CTの色?(青)
colorsffa "0 255 0 200" FFA対象の色?(緑)
time 3 復活直後の無敵時間(秒)

[[equip]]

装備メニューに関する情報

設定値 デフォルト 意味
menus ps スポーン時の持たせる装備メニューに表示するもの
p: Primary武器
s: Secondary武器
g: グレネード
a: アーマー
b: 買い物?
autoitems ah 持たせるアイテムフラグ
a: arrmor
h: helmet
g: granades
d: 解除キット
n: ナイトヴィジョンゴーグル
grenades fhs 持たせるグレネードの種類。flash,he.smoke
fnadesnum 2 Flash Granadeを持たせる
always_allow_gunmenu 0 いつでも"guns"とチャットする(/say guns コマンド)と装備メニューを出せるようにする

その他

よくわかっていない。

  • [[secondary]]: Secondary武器メニューに表示する武器
  • [[primary]]: Primary武器のメニューに表示する武器
  • [[botsecondary]]: BOTのSecondary武器?
  • [[botprimary]]: BOTのPrimary武器?
  • [[items]]: itemプラグイン(よくわからない。敵を倒すとアイテムを落とすとか、回復するとか?)

CSDMのスポーン場所の修正

スポーンする場所がクソすぎる、とよく言われる場合にはCSDMに付属しているspawn_editorで修正することができる。(オリジナルでは別プラグインだったが、KWo版ではなぜか組み込まれている)

権限設定を行っておく

spawn_editorを使うには、AMX Mod Xで権限"f=ADMIN_MAP"がある必要がある。通常はサーバ管理者がスポーンを編集するはずなので管理者なら問題ないでしょう。

ただ、AMXXの権限設定作業は必要なので、edit_spawnsを実行しても権限が無いと言われる場合やそもそも設定していない場合、 #AMX Mod Xの権限管理 を参考に設定・見直しをしてほしい。

spawn_editor の実行

ゲームを起動し、CSDMを導入したサーバに接続したら、コンソールを開きedit_spawns

コンソールからゲーム画面に戻ると、編集メニューが表示される

  1. 現在の場所にスポーン地点を追加する
  2. スポーン地点を編集する
  3. スポーン地点を削除する
  4. 現在の位置から最も近いスポーン地点を選択する

backとかは...わかるよね...

スポーン地点を追加する

1を押すとメニューがスポーン追加用に切り替わる

それぞれの番号を押すと現在の位置、向きで「スポーン地点」が設置される。 1:ランダム、2:T用、3:CT用を意味する。

DMマップなら常に1、aimマップならどっちをBOT側にするか決めて2,3を使い分ける感じ。

設置すると以下の半透明なオブジェクトが置かれる。

左から1:ランダム、2:T用、3:CT用でおいた場合になる。見た目でどのスポーン地点かわかる。

これでスポーン地点の設定が完了。設定した時点で勝手に addons\amxmodx\configs\csdm\マップ名.spawns.cfgに保存される。

スポーン地点の編集操作

あるスポーン地点に近い状態で4を押すと、選択状態になり黄色いオーラを放つ。

この選択状態で、「2:編集」「3:削除」が行えるようになる。(選択状態にならないと押せないはず)

スポーン地点を移動させたい場合は、選択状態にした後に移動し・・・

「2」を押すと赤いオーラを放たれた状態で移動される。(この赤色オーラも選択状態。)

これでスポーン地点の編集も完了。設定した時点で勝手に addons\amxmodx\configs\csdm\マップ名.spawns.cfgに保存される。

削除したい場合は「3」を押すと削除される。

これでスポーン地点の削除も完了。設定した時点で勝手に addons\amxmodx\configs\csdm\マップ名.spawns.cfgに保存される。

雑記

HLDSのコマンドラインオプション

Windows

バイナリからそれっぽい文字列を吸い出しただけなので、使えないものもあるかもしれない。推奨列のものは指定したほうがよい。

推奨 オプション 引数 意味
-port, +port 数値 -port 27017 など、ポート番号を指定。多重起動したい場合はポート番号を分けることで可能。
-steam (無し) ??? 不明
-insecure (無し) VAC無効
-dev (無し) デバッグモード?色々表示が増える
-maxplayers 1~32 接続できるプレイヤー数
-game cstrike modを指定。
-conheight ??? 不明
-applaunch 90 指定不要。
-silent ??? 不明
-usegh ??? 不明
-console (無し) 推奨。未指定だと対話GUIを表示するが不安定な気がする。
-64OS (無し) ???
+map マップ名 推奨。起動時のマップを指定する。 +map de_dust2等。指定しないと接続できないはず。
+sv_lan `1 0` | LANモード。0で無効。公開する場合は1にする。

HLDSのcvar-list(サーバオプション・コマンド)

一覧は以下を参考に。

Counter Strike 1.6 CVar list

PodBotとCSDMを使って無限BOT撃ちするときのいい感じの設定

俺も知りたい。以下あたりを設定するといいかも。

  • PodBot
    • pb_jasonmode 1: 装備をナイフのみにする
    • pb_maxcamptime 5: キャンプし続けると困るはずなので短くする
  • CSDM
    • protectionの無敵時間を減らす

CSDMは全滅するとラウンドリセットかかるので、pb_jasonmodeにしてなるべくこっちが死なないようにしたほうが効率よく撃てそうだった。

参考リンク

TODO (やるとは言っていない)

パブリックに公開

サーバリストに載せてもらうやり方。多分できるが、今どきの安全性がよくわからないので優先度低

HLTV導入

zbotを使ったBOT撃ち環境を作る

これはzbotの配布物を入れるだけで出来るはず。

当たり前のように使ってたけど、CS:CZの機能をハックして使う良くないやり方だったらしい。なので使わない。 でも未知のマップでもwaypointを自動的に作ってくれるからすぐBot撃ちできて便利だったんだよなぁ。

"Podbot waypoints map名" で調べると有志が配布してくれているかもしれない。

Linux版のCS1.6鯖

基本的には適宜読み替えるだけで出来るはず。ダウンロードをlinuxのものにするとか、gamedllをgamedll_linuxにするとか、ファイルパスをlinuxのバイナリのものに変えるとか。できなかったらすまん。

HLDSをリバースエンジニアリングしたらしい、ReHLDSというものも気になる。AMX Mod Xもこれをサポートする動きをしてい手良さそうに見える。

https://github.com/dreamstalker/rehlds

その場合はcstrikeはRegameDLL_CSを使うらしい?

https://github.com/s1lentq/ReGameDLL_CS

PodBotの導入 完了

MetaMod1.20 + PodBot V3が動作しそう。

AMX Mod X導入する予定があるならAMX Mod Xで配布しているMetaMod(1.21.1-am)を入れておく方がよさそう(わずかに修正が入っている)

https://www.amxmodx.org/downloads.php

多分CSDMと合わせて使いたいハズなので手順はその時にまとめる。

AMX Modを導入し、投げ物や弾数を無限にするプラグインを導入する

AMX Mod X (1.8.2) は導入できる。プラグインは知らない。探せばありそう。