CS1.6 のカスタムマップをサーバから高速にダウンロードさせる設定をしてみました。
CS1.6 では、デフォルトで sv_allowdownload という CVAR があり、クライアントが持っていないファイルをサーバからゲームサーバ経由でダウンロードする機能がついていますが、帯域が非常に狭く、ダウンロードするのに非常に時間がかかってしまいます。目安としては先ほどテストしたところ、8MB のファイルのダウンロードに 5 分以上かかっていました。
ところが、ウェブサーバ経由でファイルをダウンロードさせると、帯域の制限なしにファイルを送信できるので、高速にダウンロードできるようになります。ウェブサーバ経由でのダウンロードには、sv_downloadurl という CVAR を使い、その値に cstrike ディレクトリを設定します。

ゲームサーバで使うカスタムマップファイルは、ゲームサーバとは別にホスティングして利用することを考えましたが、新たなマップを追加したり削除したりする際に、ファイルホスティングしている方も同期させるのが運用上手間になるため、今回はサブドメインに hlds という VirtualHost を立てて、そこに cstrike 以下が見られるように設定しました。cstrike 以下には server.cfg があるため、ゲームサーバのパスワードや rcon パスワードが見られてしまうため、隠蔽する必要があります。そこで、空の document root を作り、そこからの alias で必要なディレクトリが見られるようにしました。Apache の設定は以下のとおりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *:80>
    ServerName hlds.vaduz.tk
    DocumentRoot /var/www/hlds
    Alias /maps /usr/games/hlds/cstrike/maps
    Alias /models /usr/games/hlds/cstrike/models
    Alias /gfx /usr/games/hlds/cstrike/gfx
    Alias /overviews /usr/games/hlds/cstrike/overviews
    Alias /sound /usr/games/hlds/cstrike/sound
    <Directory /var/www/hlds/>
        AllowOverride All
        order deny,allow
        deny from all
        allow from all
    </Directory>
</VirtualHost>

Apache からでもアクセスできるように該当のディレクトリのオーナーを確認してください。
また、ファイルの中にはパーミッションが正しく設定されていない場合があるので、注意してください。
今回は一括で以下のコマンドで変更しました。

1
2
find /usr/games/hlds -type f -print0 | xargs -0 chmod 644
find /usr/games/hlds -type d -print0 | xargs -0 chmod 755

ウェブサーバからカスタムマップをダウンロードする設定が整いました。
ゲームサーバの設定を変更して、ウェブサーバ経由でファイルをダウンロードするように変更します。
server.cfg を以下のように変更します。

1
2
sv_allowdownload 0
sv_downloadurl "http://hlds.vaduz.tk/"

sv_allowdownload が有効のままだとウェブサーバ経由にならないので、オフにします。
sv_downloadurl は ” でクオートして、127 バイト以内に収めます。

設定後、試しにサーバに入ってみると、ほぼ一瞬でダウンロードが終了しました。
通常ファイルがない場合はサーバに入ることができないため、ないマップをダウンロードして、Steam フォルダに展開して・・・という手間が要らずに直接入ることができます。クライアントにとってもサーバに入る際の敷居が低くなるでしょう。

これは個別の問題ですが、de_russka を使用する際に、

1
cannnot continue without models/de_russka_tree_noleaves.mdl

というエラーがでてしまうことがあります。
ファイル自体は

1
models/de_russka/russka_tree_noleaves.mdl

にありますが、見ているディレクトリが違うようで、正しくダウンロードできません。
結構利用されているマップなので、透過的にダウンロードできるようにシンボリックリンクを貼っておきました。

1
2
cd /usr/games/hlds/cstrike/models
ln -s de_russka/russka_tree_noleaves.mdl de_russka_tree_noleaves.mdl
 

Sunrise Empire で使っていた練習用サーバで評判の良かったおすすめ AMX Mod X を紹介します。

  • Admin Ammo
    これは、使用する武器の弾を無限にすることができるプラグインです。
    リロードもする必要がなくなるので、壁抜きの練習などで活躍します。

    amx_ammo @ALL

    とコンソールで打つだけで利用可能です。
    他にも便利な使い方があるので、詳細はページを確認してください。

  • Nade Modes
    これは投げられるグレネードの数を無限にするプラグインです。
    投げ物の練習に活躍します。味方に効果を与えないHEグレネードやFBグレネードなどがあり、様々なオプションがクライアント側から設定可能な高機能なプラグインです。
 

Sunrise Empire ブログの方で CS の DEMO をアップロードしようとしたとき、2M のファイルサイズの制限に引っかかってしまいアップロードできなかったので、その対応方法を書いておきます。

php.ini を編集して、下記の値を適当に増やします。
今回は 100M に増やしました。

1
2
upload_max_filesize = 100M
post_max_size = 100M

Apache をリスタートします。

1
/etc/init.d/httpd restart

以上で完了です。

 

サーバの HDD を RAID 1 にして冗長化しようと思ってパーティションをいじっていたら、間違えてデータの入っている方のディスクを切り替えてしまって全部のデータが飛んでしまいました。
なので、このブログも一からやり直しです。
なんとか CS1.6 の試合用サーバを建てるところまで構築完了です。長かった・・・。

© 2011 vaduz.tk blog Suffusion theme by Sayontan Sinha