ごろごろにっき


記事の内容

前へ | 次へ

【L4D2】Left 4 dead 2 のサーバーを立てる方法(11/10/24更新)
2010/07/05 02:23

とてもわかりやすい鯖立ての解説があったので紹介しておきます。
多人数カスタム鯖も運営されており、多人数鯖や様々なプラグインの設置方法など内容も豊富です。
今のとこL4D2 [JP]No Relord Coop Server構築用メモ

(以上、2011/02/04加筆)




L4D2の鯖立てを行ないました。
なかなか日本語でまとめられた資料が無いので自分用にまとめておきます。

※個人用や身内用の鯖立てを想定し、手軽さを重視しした内容となっていますので、ゲームをするPCと同じPCに鯖立てたり、サーバープログラムを自動更新させたりと常駐サーバーとして運営するには不向きです。
ただしサーバーを運営する前に仕組みを理解する入門としては役立つかもしれません。

【1】サーバーソフトのインストール
L4D2をインストールしていると、Steamの[ライブラリ]-[ツール]に「Left 4 dead 2 Dedicated Server」が表示されているので右クリックメニューよりインストールします。

サーバーをインストールする方法はこの他にValveのサイトにある「HLDSUpdatetool」を使う方法もあります。これだとSteamが入ってないPCでもインストールすることが出来ます。詳しくは、Left 4 Dead 2 Wiki - サーバ構築にて。

どちらでインストールしてもインストールされるファイルは同じですが、「Left 4 dead 2 Dedicated Server」でインストールすると多くのファイルをL4D2と共有しますので最小限の使用容量で済みます。また、Steamが自動でアップデートを行ってくれるので便利です。

【2】サーバーの起動
起動はコマンドプロンプトから srcds.exe を実行します。バッチファイルを用意しておきます。

バッチファイル例
cd "c:\Program Files\Steam\steamapps\common\left 4 dead 2"
srcds.exe -autoupdate -console -game left4dead2 +hostport 27015 +map "c1m1_hotel coop" +maxplayers 8 +exec server.cfg

-autoupdate … 起動時にアップデートチェックを行ないます。
-console … CUIコンソールで起動します。このオプションがないとGUIベースで起動します。
+hostport … IPポート番号を指定します。デフォルトは27015
+map "マップ名 ゲームモード" … マップとゲームモードを指定します。

マップ名はゲームのコンソールから maps * で調べられます。
ゲームモードは coop(キャンペーン),versus(対戦),survival(サバイバル),realism(リアリズム),scavenge(スカベンジ),mutationn(ミューテーション),communityn(コミュニティーメイドのミューテーション) ※nは任意の数字
※mutation,communityの種類はhttp://leafbs.net/samurai/custom.htmlの一番下を参照してください
※鯖立てしていなくても、コンソールから「map マップ名 ゲームモード」(例: map c2m1_highway mutation14)と入力すれば、シングルモードで任意のミューテーションがプレイ可能です。

実行するとテキストベースのサーバーコンソールが表示されます。コンソールに exit[Enter] と入力するとサーバーを終了します。

Steamログイン中に実行すると、なぜかオンライン状態がL4D2のゲーム中となり、L4D2の実行時間に加算されてしまいます。L4D2を一旦起動して終了するとこの状態は解消します。またサーバーを起動してからSteamにログインすればゲーム中状態にはなりません。


【3】サーバーコンフィグの設定
フォルダ Steam\steamapps\common\left 4 dead 2\left4dead2\cfg にファイル名 server.cfg で新規作成します。中身はテキストファイルです。

server.cfg設定例
hostname "HOGEHOGE Server" //サーバーの名前
sv_allow_lobby_connect_only 0 //0:ロビーを作らない 1:ロビー作る
//connectで直接接続する場合は0にしておくとロビーからの接続が少なくなる(と思う)
rcon_password "fugafuga" //サーバー管理者パスワード
//ゲーム中コンソールからサーバーコマンドを使う時用
sv_lan 0 //ネットワーク設定(0:インターネット 1:LAN)
sv_region 4 //地域 4:アジア
sv_alltalk 0 //対戦時のボイスチャットが 0:味方のみに聞こえる 1:全員に聞こえる
//z_difficulty Normal //難易度を固定する。Impossible,Hard,Normal,easyのいずれか
//ゲーム中に難易度を変更してもチャプター終了時などに元に戻ってしまうので
//コンフィグでは設定しない方がいい
sv_search_key "abcdefghijklmn" //サーバー検索用のキーワード
//逆手にとってデタラメな文字を設定しておくとロビーからの検索に掛からなくなるらしい
//身内以外が接続してくるのを防ぐ手段として。GyaASEなどからの接続は防げない

【4】サーバーバナー・説明文の設定

ゲーム開始時に表示されるバナーや説明文を変える場合は、
フォルダ Steam\steamapps\common\left 4 dead 2\left4dead2host.txtmotd.txt を編集します。

バナーは host.txt で設定します。
http://www.l4d.com/l4d2_servermessage/banner.htm(デフォルト)のようにURLを指定するとその内容を表示します。URLでない場合はテキストがそのまま表示されます。日本語を表示させるにはファイルをUTF-8形式で保存します。

説明文は motd.txt で設定します。
http://www.l4d.com/l4d2_servermessage/(デフォルト)のようにURLを指定するとその内容を表示します。それ以外はテキストがそのまま表示されます。日本語を表示させるにはファイルをUTF-8形式で保存します。また、HTMLのタグもある程度使えるようです。

【5】サーバーへの接続
接続はロビーからではなくコンソールから connect コマンドで接続します。
サーバーとゲームプレイが同じPCの為、自分はプライベートIPアドレス、他の人はグローバルIPアドレスでの接続になります。(そうではない環境もありますがここでは割愛)
あらかじめルーターでポート開放とルート設定を行っておきます。
ポート開放は【2】で指定したポート番号を外から内へ通すように、ルート設定ではそのポート番号宛のグローバルIPアドレスのパケットをプライベートIPアドレスにルーティングするよう設定します。ルーターによって設定方法が違うため詳しい説明は割愛します。

自分はゲームコンソールから connect プライベートIPアドレス:ポート番号 で接続します。
例) connect 192.168.1.2:27015
他の人には connect グローバルIPアドレス:ポート番号 をチャットなど送って接続してもらいます。

ロビーから接続するサーバーを指定する mm_dedicated_force_servers は使えません。プライベートIPアドレスを指定した場合、自分は接続できても他の人が接続できません。

【6】カスタムサーバー化コンフィグ設定
【3】で作成した server.cfg に追加する事で手軽にサーバーをカスタム化することが出来ます。

L4D1の内容ですがこちらが参考になります。

(設定例)生存者を起こしたりキットを使ったりする時間がとても速くなる設定
sm_cvar survivor_revive_duration 1 //(デフォルト:5)倒れた状態から復活させるまでの時間
sm_cvar first_aid_kit_use_duration 1 //(デフォルト:5)ファーストエイドキットを使う速さ

【7】カスタムプラグインの導入
コンフィグの設定では出来ないこともプラグインを導入すればいろいろなことが出来ます。
プラグインの導入には前準備として MetamodSourcemod を入れる必要があります。
- Metamod http://www.metamodsource.net/
ページ左のDownloadsメニューより最新Verのファイルをダウンロードして解凍すると、中に addon フォルダがあるので Steam\steamapps\common\left 4 dead 2\left4dead2\ フォルダにに上書きコピー
- Sourcemod http://www.sourcemod.net/
ページ左のDownloads > Snapshotsメニューより、stable branch(安定版)の最新Verのファイルをダウンロードして解凍すると、中に addon フォルダと cfg フォルダがあるので Steam\steamapps\common\left 4 dead 2\left4dead2\ フォルダに上書きコピーする。
- metamod.vdf
metamod.vdf というファイル名で以下の内容のテキストファイルを Steam\steamapps\common\left 4 dead 2\left4dead2\addon フォルダに作成する

"Plugin"
{
 "file" "C:\Program Files\Steam\steamapps\common\left 4 dead 2\left4dead2\addons\metamod\bin\server.dll"
}

※ファイルパスは自分の環境に合わせて変更する

各種プラグイン(.smxファイル)は Steam\steamapps\common\left 4 dead 2\left4dead2\addons\sourcemod\plugins\ フォルダに入れます。


【8】多人数サーバープラグインの導入
MetamodSourcemod の導入が既に済んでいる状態で、L4DToolZLEFT12DEAD を入れます。
(他にLeft 4 Downtownを使う方法もあります)

- L4DToolZ https://forums.alliedmods.net/showthread.php?t=93600
最新版(https://forums.alliedmods.net/attachment.php?attachmentid=77028&d=1289329169)をダウンロードして解凍すると、中に l4dtoolz フォルダと metamod フォルダがあるので Steam\steamapps\common\left 4 dead 2\left4dead2\addon\ フォルダにに上書きコピー
- LEFT12DEAD https://forums.alliedmods.net/showthread.php?t=126857
Get Pluginのリンクから l4d_players.smx ファイルをダウンロードし、 Steam\steamapps\common\left 4 dead 2\left4dead2\addons\sourcemod\plugins\ フォルダにコピー
- l4dtoolz.vdf
l4dtoolz.vdf というファイル名で以下の内容のテキストファイルを Steam\steamapps\common\left 4 dead 2\left4dead2\addon\metamod フォルダに作成する

"Metamod Plugin"
{
 "alias"  "l4dtoolz"
 "file"  "addons/l4dtoolz/l4dtoolz_mm"
}

- server.cfg に追記する設定項目
sm_cvar sv_force_unreserved 1 //1:ゲーム開始後ロビーを削除する。これで4人を超えて接続できるように
sm_cvar sv_visiblemaxplayers 12 //サーバー画面で見せる参加人数。実際の参加人数とは異なる
sm_cvar sv_removehumanlimit 1 //1:参加人数が4人を超えた時にキックする機能を殺す
sm_cvar sv_maxplayers 12 //接続可能な最大人数
//(11/10/24追記)l4d_players.smx用設定項目
sm_cvar l4d_maxplayers 12 //接続可能な最大人数
sm_cvar l4d_survivor_limit 12 //BOTを含めた生存者の人数
sm_cvar l4d_infected_limit 20 //特殊感染者の最大同時発生数
sm_cvar l4d_players_delay 12
sm_cvar l4d_players_kick 0.7
sm_cvar l4d_players_timer 1.5

(11/10/24追記)赤文字の12の数を減らすと生存者の人数を変更できます。
※鯖立てしなくてもこのプラグインを導入していれば、シングルモードで多人数のNPCを引き連れてプレイ可能(プロパティの起動設定に -insecure が必要)。雑魚ゾンビや特殊感染者を11人のNPCが一瞬のうちに倒してくれます。またマルチプレイでサーバータイプをローカルサーバー(いわゆるListen Server)にしても多人数プレイ出来ますが、参加できるプレイヤーは4人までです)。
(11/02/14追記)Listen Serverでも5人以上のプレイヤーで遊べる方法を教えていただきましたので紹介します。通常はListen Serverではロビーを削除することが出来ず4人の制限を超えられないのですが、Nico-opさんのゲームモードを無理やり固定するGame Mode Keepプラグインを使うことで、対戦ロビーから入ってもゲームモードをcoopに強制することができ、これによって理屈上対戦ロビーの上限である8人まで参加できるようになるようです。

参考にさせていただいたサイト
Ledt 4 Dead wiki - server.cfgの設定
今のとこL4D2 [JP]No Relord Coop Server構築用メモ
アンマミーヤ - l4d2 初心者による初心者のためのサーバー作成法
NiCo-op サーバーや自作プラグインを公開されています
SunriseBlue ユニークなプラグインを公開されています。あとサーバー設定値を参考にしました
髭の上のポポ サーバー設定値を参考にしました
Vocaloid2K.Rin/Len Coop Expert Server[JP] サーバー設定値を参考にしました
S A M U R A i Server ミューテーションのモード名を参考にしました

カテゴリ:

前へ | 次へ

コメントを見る(12)
コメントを書く
トラックバック(1)
BlogTOP
このユーザーのホーム

ログイン

i-mobile


Powered by FC2 Blog