サーバーの建て方

TrueCombat:EliteはBot機能が乏しい為、プレイヤー同士でオンラインプレイするのが前提となっています。そのためゲームサーバーが担う役割は大きなウェイトを占めている状態です。興味を持ったそこのアナタ!気軽に建ててみませんか?

ゲームサーバーというと、物凄いハイスペックなPCが必要に感じますが、実際はそんなことはありません。何故なら3D計算をする必要がないDedicated(専用)サーバーモードが用意されている為です。このコンテンツでは、このDedicatedサーバーの建て方について可能な限り詳しく解説していきます。

なお、ひとつのPCで2重で起動する(Dedicatedサーバーを起動しつつプレイヤーとしても遊ぶ)ことも出来ますが、プレイヤーとして遊んでいる時に重い場面でCPU負荷が高くなると、他のプレイヤーにまで害が及んでしまう可能性が有ります。そのため、安定したサーバーを目指すなら出来る限り専用のPCで建てることをお勧めします。

必要スペックと費用

サーバーを稼動させる為に必要なスペックについて、Wolfenstein Enemy Territoryのマニュアルから抜粋すると下記のようになっています。

収容人数による推薦CPU

NorthwoodやPrescott等のIntel系CPU使用時の推奨動作クロックを列挙します。TC:Eliteは、最大24人(12対12)を想定して造られているので、低いスペックのPCでもサーバーが建てられると言う事になります。

メモリ

他にアプリケーションが動いていない状態で128MB

回線

回線の安定したCATVやFTTH(光回線)をお薦めします。ADSL回線は帯域に余裕が有っても、不意のラグが発生する事が多々あるようです。

ビデオカード

サーバー専用モード(Dedicated)で起動する場合は、OpenGL(3D表示)に対応したグラフィックカードは搭載する必要ありません。オンボードの物で十分ですが、画像表示にメインメモリを使うので、メモリ搭載量の少ないマシンでは注意が必要です。

費用と弊害

管理人の場合、以下のスペックで24時間稼動して電気代が月々2,000円程度かかります。省電力設計なノートパソコンでやれば1,000円位で出来るようです。

金銭面の他にも、弊害として静音化したPCでないとファンの音が気になったり、部屋の気温も確実に上昇するので冬は暖かくて良いですが、夏になると他の部屋より一段と暑さを感じられます。

ネットワークの設定と準備

ETエンジンではネットワーク対戦の性質上、通信プロトコルに信頼性より速度重視のUDPを使用します。もしあなたの環境がルーターなどを使っていてファイアーウォールが有る場合は、UDPのポート27960番をサーバーPCにIPマスカレード(アドレス変換)します。もしも1つのサーバーで複数のサーバーを建てる予定なら、開けるポートの範囲を広げてください。

Windowsファイアーウォールなどの、ソフトウェアファイアーウォールを使っている場合も上記と同じポートを開けてください。WindowsXP SP2以降を使っているユーザーは標準でファイアーウォールが有効になっているので特に注意してください。

実際のポートの開け方なども説明したいところですが、ユーザーの環境によって極端に変わるので、ここでは説明できません。以下の参考ページをご覧ください。

http://www.akakagemaru.info/port/

起動ファイルの作成

ショートカットファイルの作成

起動ファイルの作成と言っても、実はWindowsのショートカットファイルを作るだけなので安心してください。他にも.batファイルで起動ファイル作成する方法も有りますが、個人的にはショートカットファイルで行った方が見た目もスッキリするので、こちらの方法で解説します。

  1. マイコンピューター等から C:\Program Files\Wolfenstein - Enemy Territory\ を開く。(他の場所にインストールを行ったかたはディレクトリを読み替えてください)
  2. ET.exeを右クリックしてショートカットの作成を選択する。
  3. ショートカットファイルが同フォルダに作成されるので、わかり易い名前、例えばTCE Serverなどに変更しておきましょう。
  4. 作成したショートカットファイルを右クリックしてプロパティを選択します。

リンク先が"C:\Program Files\Wolfenstein - Enemy Territory\ET.exe"になってるはずなので、行末のダブルクォーテーション「"」の後にスペースを一つ入れて、下記のオプションコマンドを追記します。

+set dedicated 2 +set fs_game tcetest +exec server.cfg

これでOKを押し、作成した起動ファイルを実行してみましょう。

環境・セッティング等により表示されるメッセージの差異が有ると思いますが、上記のウィンドウが出てメッセージが止まったら起動完了です。よくこの画面まで来て「止まってしまっている」と勘違いされる方が居ますが、今は接続しているクライアントが居ないため、サーバーログが流れていないだけです。

しかしこのままでは、サーバーがデフォルトの設定になってしまっているので、一度Quitボタンを押して終了し、tcetestフォルダ内に有るserver.cfgを自分好みに編集します。server.cfgについてはこちらのページで解説しています。

起動オプションの説明

+
先頭に+(プラス)が付いているものは、サーバーコマンドとして認識され実行されます。
set
サーバー変数をセットするコマンド。+set [変数名] [値] といった形式で使います
dedicated
サーバー専用モード。1:IPアドレス非公開(LAN用) 2:IPアドレス公開(通常はこちら)
fs_game
使用するmodの名前。TC:Eliteは tcetest となります。
exec
ファイルを読み込ませ実行させるコマンド。ここではサーバーの設定を定義したserver.cfgを読み込ませています。

セッティング

サーバーのセッティングについて

server.cfg解説0.49 ver -> サーバーの基本設定
maps.cfgの解説 -> マップローテーション設定
PunkBusterの設定 -> PunkBusterの設定

ファイルのDL速度を上げる --> サーバー管理者Tipsに統合
サーバー管理者Tips  --> メニューに格上げ
サーバー変数リスト  -->メニューに格上げ
サーバーコマンド集 -->メニューに格上げ
サーバー管理者FAQ  --> メニューに格上げ
複数のサーバーを建てるのに便利な技 --> Tipsに入れる
サーバエラーについて ーー> サーバー管理者FAQに統合

PunkBusterを使わないBANのやりかた --> Tipsに入れる
Refereeのやり方 -- Tipsにいれる
LinuxServer篇 -- メニューに格上げ
ETTV導入方法 -- メニューに格上げ

サーバーの基本設定

server.cfg解説

CONNECTION, MEMORY, PASSWORDS & CLIENTS SETTINGS

CONNECTION SETTINGS

ネットワークの設定

  • set dedicated "2"
    • 1:家庭内LANだけでサーバーを立てるなら1
    • 2:公開サーバーにする場合は2
  • //set net_ip ""
    • 公表するアドレスを記載。自動で入力されるようです。
  • //set net_port "27960"
    • サーバーで使うポート番号。無変更推奨。
    • 複数のサーバーを建てる場合は、任意の番号に変更する。

MEMORY SETTINGS

メモリーの設定

  • set com_hunkmegs "192"
    • サーバーに割り当てるメモリー使用量。
  • set com_zonemegs "64"
    • mapに対するメモリ使用量
  • set com_soundmegs "64"
    • soundに対するメモリ使用量

PASSWORDS&CLIENTS

クライアント数等の設定

  • set sv_maxclients "16"
    • サーバーの最大収容人数。
  • set g_password ""
    • サーバーでパスワード設定する場合はここに記述
  • set sv_privateclients "0"
    • プライベートクライアント人数。満員の状態でも、設定している人数分だけ接続可能。
    • セットした人数分、sv_maxclientsで設定した最大収容から引かれるので注意。
  • set sv_privatepassword ""
    • プライベートクライアント用のパスワード設定。
  • //set rconpassword "change_me"
    • リモートコントロール用のパスワード設定。
    • クライアント側からサーバーを操作出来る。
  • set refereePassword ""
    • レフェリー(審判)用パスワード設定。

DL RATE, MOTD & SERVER NAME SETTINGS

DL RATE

マップファイルのアップ関係の設定

  • set sv_maxRate "13000"
    • サーバーがクライアントと通信するデータの許容量。
    • 多ければその分帯域を取られるが快適にplayできる。最大でも24000あれば十分。
  • set sv_dl_maxRate "42000"
    • サーバーがクライアントにファイルを配布する時の最大転送速度。
    • 数字を上げても遅いので、別サーバーからファイルを拾わせるようにした方が良い。
    • 但し、公式MAPのみでサーバーを立てるなら問題は無いと思われます。
  • set sv_allowDownload "0"
    • サーバーからファイル配布させるかどうかを設定。0なら禁止1なら配布。
    • 配布の殆どがカスタムMAPと思われるのであまり使用をお勧めはできません。
  • set sv_wwwDownload "0"
    • 別のサーバーからファイルを配布するかどうかの設定。0なら禁止1なら配布。
    • ちなみに、TCサーバーから配布か別サーバーからの配布かはどちらか一つになります。
  • set sv_wwwBaseURL ""
    • 別のサーバーからファイルを配布する時のURLを記入。
  • set sv_wwwDlDisconnected "1"
    • 別サーバーからファイルを拾わせる時にクライアントを切断させるかの設定。
    • 切断後にDLL終了したら自動で再接続されるようです。
  • set sv_wwwFallbackURL ""
    • ファイルのダウンロードに失敗した場合に接続されるURLを記入。

MOTD & SERVER NAME

MOTDとサーバの名前の設定

  • set sv_hostname ""
    • サーバーの名前を記入。
  • set server_motd0"^NTC:EliteTest-feedbackrequested^7"
  • set server_motd1"^Nwww.truecombat.com^7"
  • set server_motd2""
  • set server_motd3""
  • set server_motd4""
  • set server_motd5""
    • 上記の6行は反映されないので触れないでおきます

MISC SETTINGS

MISC SETTINGS

Game Setting

  • set g_heavyWeaponRestriction "100"
    • 重火器の割合設定//ET用
  • set g_antilag "1"
    • アンチラグを使用するかどうかの設定。好みで決めてください。
      (これはオプションのConnectionの項目をModemに設定しているユーザーを排除する機能のようです)
  • set g_altStopwatchMode "0"
    • ストップウォッチモードの設定//ET用
  • set g_autofireteams "0"
    • 自動的にFireTeam(小隊)にプレーヤーを入れるようにする設定//ET用
  • set g_complaintlimit "3"
    • 同一人物にTKした場合の許容範囲回数。(F1を押された回数)
    • これを超えたらキックされます。TCで使えてるかはわかりません。
  • set g_ipcomplaintlimit "3"
    • TK処罰の許容数。(F1を押された回数)
    • これを超えたらキックされます。TCで使えてるかはわかりません。
  • set g_fastres "0"
    • /死んでも直ぐに生き返る?//ET用?未確認
  • set g_friendlyFire "1"
    • FriendlyFireの設定//ET
  • //set g_gametype "5"
    • ゲームタイプの設定。
    • これはmaps.cfgで決定するので使いません。
  • set g_leanmode "1"
    • TCでは反映されない模様。
  • set g_minGameClients "2"
    • TCでは反映されない模様。
  • set g_maxlives "0"
    • 生き返る人数の上限設定0で無制限//ET用?BCで使用可能?未確認
  • set g_alliedmaxlives "0"
    • allied以下略
  • set g_axismaxlives "0"
    • axis以下略
  • set g_teamforcebalance "0"
    • チームバランスの設定。人数の均衡を保つなら1不均衡でよければ0。
  • set g_noTeamSwitching "0"
    • チーム移動の許可//ET用?TC対応不明
  • set g_voiceChatsAllowed "4"
    • 連続したクイックチャットの許可数。
  • set g_doWarmup "0"
    • F3が押されるまでゲーム開始を待たせるかどうかの設定。
  • set g_warmup "20"
    • ウォームアップの時間設定。
  • set g_spectatorInactivity "0"
    • Spectatorが何秒の無反応でキックするかの設定。1は無制限です。
    • 検証結果:いくつに設定しても10秒でSpectatorがkickされました。
  • set g_userAlliedRespawnTime "20"
    • Allied側のRespawnTime設定
  • set g_userAxisRespawnTime "20"
    • Axis側のRespawnTime設定
  • set g_userTimeLimit "3"
    • 時間制限の設定。maps.cfgで設定することにより、マップごとの設定も可能

ServerSetting

  • set sv_floodProtect "1"
    • 大量のデータ送信でサーバーをダウンさせようとする行為を抑止させる設定。
    • 0で無効。触らない方が身の為です。
  • set sv_pure"1"
    • サーバーに備えたファイルのみ使用させるかの設定。
    • 0だとクライアント側のカスタムファイルの使用を許可となります。
  • set sv_minping "0"
    • 接続を許可する最低Ping。これ以下は接続出来ません。
  • set sv_maxping "0"
    • 接続を許可する最高Ping。これ以上は接続出来ません。

MatchSetting

  • set match_latejoin "1"
    • 試合中にゲームに参加できるようにするか、しないか。
    • たしかmatch鯖は無効にしてあったような気がします。
    • おそらくTCも対応
  • set match_minplayers "2"
    • g_doWarmupがONの時でゲームを始めるのに必要な人数。
  • set match_mutespecs "0"
    • Spectatorの会話を禁止するかの設定。
  • set match_readypercent "100"
    • g_doWarmupが有効な場合で、何%のクライアントがF3押したらゲームを開始するか。
    • 100の設定だと、全員がF3を押すまで永遠とゲームが始まらないので注意してください。
  • set match_timeoutcount "0"
    • 非refプレーヤーがポーズを使用可能にする。ここで指定した回数ポーズできる。
    • ET用?TC対応不明
  • set match_warmupDamage "1"
    • ウォームアップ中のダメージ適用
    • TCではウォームアップ中移動・射撃不可なので関係なし

AnotherSetting

  • set team_maxplayers "0"
    • 各チームに参加することのできる最大人数
    • コレを利用することによって、スペクト一人の17人鯖などができる
    • 以前pAgRu氏のエキスパート鯖がこの設定を使っていたはず。
  • set team_nocontrols "1"
    • チームコマンドを無効にする。
    • おそらくTC対応/readyteam等を不可にする
  • set pmove_fixed "0"
    • TCでは意味無さそう//詳細不明
  • set pmove_msec "8"
    • 上記と連動?//詳細不明

LMSONLY & VOTE SETTINGS

LMSONLY SETTINGS

  • set g_lms_teamForceBalance "1"
    • 人数が多いチームには参加できないようにするか。
  • set g_lms_roundlimit "5"
    • ラウンド数。1MAPを何回繰り返すかの設定。
  • set g_lms_matchlimit "5"
    • 上のラウンドサイクルを何度繰り返すかの設定。
  • set g_lms_currentMatch "0"
    • 始まるラウンド数。通常はいじる必要は無い。
  • set g_lms_lockTeams "0"
    • チームロックの設定
    • ET用?未確認
  • set g_lms_followTeamOnly "1"
    • 死亡時のスペクト時間に、味方だけをスペクトするか。0で相手チームもスペクトできる。

VOTE SETTINGS

VOTEの設定

  • set g_allowVote "1"
    • Voteの使用を許可するか。
  • set vote_limit "3"
    • 1ラウンド中にVoteを何回許可するか。
  • set vote_percent "50"
    • 全体の何パーセントに達したら投票を可決するか。
    • 注:Vote参加してない人は白票となり、白票の数が多いと
    • Vote無効になることもある模様。
  • set vote_allow_comp "0"
    • Competitionモードの設定ファイルの読み直しvote
    • ETのモードなので関係なし?
  • set vote_allow_gametype "1"
    • ゲームタイプ(BCとかOBJとか)の変更Voteを許可するか。
  • set vote_allow_kick "1"
    • キックのVote使用を許可するか。
  • set vote_allow_map "1"
    • MAPチェンジのVoteを許可するか。
  • set vote_allow_matchreset "1"
    • マッチリセットのVoteを許可するか。
  • set vote_allow_mutespecs "1"
    • Spectatorを黙らせるVoteを許可するか。
  • set vote_allow_nextmap "1"
    • 次のMAPへ変更するVoteを許可するか。
  • set vote_allow_pub "1"
    • サーバーの設定をデフォルトの設定に戻すVoteを許可するか。
  • set vote_allow_referee "0"
    • 任意のプレイヤーをレフェリーにするVoteを許可するか。
  • set vote_allow_shuffleteams "1"
    • チームをシャッフルするVoteを許可するか。実装されていない模様。
  • set vote_allow_swapteams "1"
    • チームの入れ替えをするVoteを許可するか。
  • set vote_allow_friendlyfire "1"
    • FFのVoteを許可するか。多分使えません。
  • set vote_allow_timelimit "1"
    • タイムリミットを変更するVoteを許可するか。
  • set vote_allow_warmupdamage "1"
    • ウォームアップ中、敵/味方へのダメージを与えるか。
    • TC:Elite(Ver0.49現在)ではウォームアップ中の行動は制限されているので無視してください。
  • set vote_allow_antilag "1"
    • アンチラグ機能をオン/オフに変更するVoteを許可するか。
  • set vote_allow_balancedteams "1"
    • バランスチーム機能をオン/オフに変更するVoteを許可するか。
  • set vote_allow_muting "1"
    • プレイヤーを黙らせるVoteを許可するか。

PUNKBUSTER, LOG, MAP ROTATION, WATCHDOG SETTING

PUNKBUSTER SETTINGS

PBの設定

  • execpunkbuster.cfg //Punkbustersettings
    • パンクバスター(不正ツール抑止ソフト)の適応。
    • 行頭の「//」を外せば適応されます。

LOG SETTINGS

ログの設定

  • set g_log"TCE.log"
    • サーバーログを保存する時のファイル名。
  • set g_logsync1
  • set logfile2
    • Consolelogging(不明)
    • (1:enable2:enableandsync)

MAP ROTATION SCRIPT

マップローテーションのファイル指定

  • exec execmaps.cfg
    • 使用するmaps.cfgのファイルを指定します。
    • 名前を変えれば複数のサーバーを設置する事も可能です。
    • ですが、使用MAPはTCフォルダ内で共通となります。

WATCHDOG

サーバーが落ちた時に自動で再起動かけてくれます。ですが原因不明の落ち方をする場合や、エラー原因をしっかり把握したい場合は設定しない方が無難です。

  • //set com_watchdog10
    • サーバー異常がどれだけ続いたらcom_watchdog_cmdを実行するかの設定。
    • 恐らく分単位だと思われます。
  • set com_watchdog_cmd"execmaps.cfg"
    • watchdog機能発動時に実行するファイルを選択するコマンド。
    • 要するにどのcfgファイルに機能を発動させるか指定するコマンドです。

server.cfgの解説(0.48)

このコンテンツではtcetestフォルダ内に有る、デフォルトのserver.cfgについて解説します。スラッシュが二つ以上続いた「//」から後の文字はコメントと見なされ無視されます。機能を有効にしたい場合はコメントアウトを解除してください。0か1で表記する箇所が有りますが、0はNo(Disable)、1はYes(Enable)と考えてください。

set dedicated "2"

サーバー専用モードで起動するか 0:専用モードで起動しない 1:マスターサーバーに通知しないで起動 2:マスターサーバーに通知して起動。

//set net_ip ""

自分のサーバーのIPを指定する所ですが通常は自動で設定されるので、このままコメントアウトが推薦です。

//set net_port "27960"

Port番号を指定する所ですが、通常は自動で設定されますし、ここで設定しても反映されないことが有るので、もし設定するなら起動オプションで設定することをお勧めします。

//set com_hunkmegs "128"

使用するメモリの容量をMB単位で設定する所ですが、こちらも指定するなら起動オプションで設定することをお勧めします。

//set com_zonemegs "64"

使用するマップに関するメモリの容量をMB単位で設定する所ですが、こちらも指定するなら起動オプションで設定することをお勧めします。

set sv_maxclients "16"

サーバーの最大収容人数。

set g_password ""

サーバーのパスワード。設定しない場合はこのままで、設定する場合はパスワードを入れてください。

set sv_privateclients "0"

プライベートクライアントの数。下記で設定するパスワードで入れるクライアントの数です。ここで設定した人数分だけsv_maxclientsから引かれることに注意してください。

set sv_privatepassword ""

プライベートクライアント用のパスワード。(サーバに入るときはASEでサーバを右クリック、server propertiesから入力)

//set rconpassword "change_me"

リモートコントロール用のパスワード。リモートコントロールについては別ページで解説予定です。

set refereePassword ""

レフェリー用のパスワード。ここで入力されたパスワードで入ってきたクライアントは審判として扱われます。

set sv_maxRate "13000"

サーバーが1クライアント辺りに送る最大データ量。単位はByte。この数値が大きい程通信帯域を消費するが、クライアントはスムーズに動くことができる。最大でも24000程度有れば良い。

set sv_dl_maxRate "42000"

サーバーがクライアントにカスタムファイルを送る時の最大転送速度。実際はETの転送プロトコルが悪いのか、数字を上げても速度はかなり遅い。

set sv_allowDownload "0"

サーバーから足りないファイルをダウンロードさせることを許可するか。

set sv_wwwDownload "0"

サーバーからのダウンロードをwwwにするか。wwwDownloadについてはこちらのページで詳しく解説しています。

set sv_wwwBaseURL ""

上記の設定と同様。

set sv_wwwDlDisconnected "1"

wwwDownloadさせる時にクライアントを一度切断させるか。切断してもダウンロードが終われば自動的に再接続します。

set sv_wwwFallbackURL ""

wwwDownloadに失敗した時に行くURL。

set sv_hostname "TC:Elite Test"

サーバーの名前。

set server_motdx "^NTC:Elite Test - feedback requested ^7"

本来はサーバーからのメッセージを書く場所なのですが、今のところTC:Eliteでは表示されません。

set g_heavyWeaponRestriction "100"

W:ETの設定なので無視してください。

set g_antilag "1"

アンチラグ機能を使うか。これはPingが高い人には嬉しい機能なのですが、アンチラグを使うとオフのサーバーに比べ、大幅に当たり判定が変わります。一度自分で両方を試してから好みで設定するのが良いでしょう。世界的に見るとONの方が多いようです。

set g_altStopwatchMode "0"

W:ETの設定なので無視してください。

set g_autofireteams "0"

W:ETの設定なので無視してください。

set g_complaintlimit "3"

TKで、同じ人に3回、F1(TKに対する処罰)を押されるとキックされる機能を使うか。デフォルトは3。TC:Eでの動作は未確認。

set g_ipcomplaintlimit "3"

TKで、違う人に3回、F1(TKに対する処罰)を押されるとキックされる機能を使うか。デフォルトは3。TC:Eでの動作は未確認。

set g_fastres "0"
set g_friendlyFire "1"

W:ETの設定なので無視してください。

//set g_gametype "5"

ゲームタイプの設定。5:Objective 7:Bodycountですが、デフォルトの設定ではmaps.cfgで設定するのでコメントアウトされています。

set g_leanmode "1"
set g_minGameClients "2"

数字は変わるものの、TC:Eliteでは無効の模様。

set g_maxlives "0"

W:ETの設定なので無視してください。

set g_alliedmaxlives "0"

W:ETの設定なので無視してください。

set g_axismaxlives "0"

W:ETの設定なので無視してください。

set g_teamforcebalance "0"

人数が多いチームには参加できないようにするか。BCでの動作は未確認。

set g_noTeamSwitching "0"
set g_voiceChatsAllowed "4"

連続したQuickChatを許可する回数。

set g_doWarmup "0"

ゲームを開始するのにクライアントのreadyを待つか。この設定をONにするとクライアントがF3(準備OK)を押すまでゲームが始まりません。

set g_warmup "20"

ウォームアップの時間。

set g_spectatorInactivity "0"

Spectatorのクライアントが何秒動かなければキックするか。0は無効。

set sv_floodProtect "1"

大量のデータを送り込んでサーバを落とそうとする行為を抑止する。

set sv_pure "1"

サーバーが使用しているファイルしか認めないか。0にするとクライアント独自のカスタムファイルの使用を許可します。(例えばカスタム銃声など。他の人にはもちろん効果は有りません。)

set sv_minping "0"

接続を許可する最低Ping。これ以下のクライアントは接続できません。

set sv_maxping "0"

接続を許可する最高Ping。これ以上のクライアントは接続できません。

set match_latejoin "1"
set match_minplayers "2"

g_doWarmupがONの時でゲームを始めるのに必要な人数。

set match_mutespecs "0"

スペクテーターを黙らせるか。

set match_readypercent "100"

g_doWarmupが有効な場合で、何パーセントのクライアントが準備できたらゲームを開始するか。100の設定だと、全員がF3を押すまで永遠とゲームが始まらないので注意してください。

set match_timeoutcount "0"
set match_warmupDamage "1"

W:ETの設定なので無視してください。

set team_maxplayers "0"
set team_nocontrols "1"
set pmove_fixed "0"
set pmove_msec "8"
set g_lms_teamForceBalance "1"

人数が多いチームには参加できないようにするか。

set g_lms_roundlimit "5"

ラウンド数。公式でのObjective推薦設定は5。

set g_lms_matchlimit "5"

上記のラウンドを何回やるか。g_lms_roundlimit x g_lms_matchlimit で次のマップとなる。推薦値は"1"。

set g_lms_currentMatch "0"

始まるラウンド数。通常はいじる必要は無い。

set g_lms_lockTeams "0"
set g_lms_followTeamOnly "1"

敵にやられた後のスペクト時間に、味方だけをスペクトするか。0で相手チームもスペクトできるが、あまり採用されていない。

set g_allowVote "1"

投票の呼びかけを許可するか。

set vote_limit "3"

1round辺り何回まで投票の呼びかけを許可するか。

set vote_percent "50"

全体の何パーセントに達したら投票を可決するか。

set vote_allow_comp "0"
set vote_allow_gametype "1"

ゲームタイプの変更ボートを許可するか。

set vote_allow_kick "1"

プレイヤーのキックボートを許可するか。

set vote_allow_map "1"

マップの変更ボートを許可するか。(Ver.0.48現在、バグでボートできません)

set vote_allow_matchreset "1"

マッチリセットのボートを許可するか。

set vote_allow_mutespecs "1"

スペクテーターを黙らせるボートを許可するか。

set vote_allow_nextmap "1"

次のマップへ変更するボートを許可するか。

set vote_allow_pub "1"

サーバーの設定をデフォルトの設定に戻すボートを許可するか。

set vote_allow_referee "0"

任意のプレイヤーをレフェリーにするボートを許可するか。

set vote_allow_shuffleteams "1"

チームをシャッフルするボートを許可するか。

set vote_allow_swapteams "1"

チームの入れ替えをするボートを許可するか。

set vote_allow_friendlyfire "1"

フレンドリーファイアのボートを許可するか。TC:Eでの動作は未確認。

set vote_allow_timelimit "1"

タイムリミットを変更するボートを許可するか。

set vote_allow_warmupdamage "1"

WarmUp時、ダメージを与える対象を変更するボートを許可するか。TC:EではWarmUp時に動き回ることが出来ないので、設定しても意味が無い。

set vote_allow_antilag "1"

アンチラグ機能をオン/オフに変更するボートを許可するか。

set vote_allow_balancedteams "1"

バランスチーム機能をオン/オフに変更するボートを許可するか。

set vote_allow_muting "1"

プレイヤーを黙らせるボートを許可するか。

//exec punkbuster.cfg

PunkBuster(不正ツール抑止ソフト)を実行する。行頭のコメントアウトを取ればpunkbuster.cfgが実行され、PunkBusterがONになります。

set g_log "TCE.log"

サーバーログの名前。tcetestフォルダにこの名前のログファイルが作成されます。

set g_logsync 1
set logfile 2
exec maps.cfg

マップローテーションファイル"maps.cfg"を実行する。Voteだけでマップを変えたい時などは、行頭をコメントアウトして、代わりにmap dem_northportとマップ読み込みコマンドを記入すればOK。

//set com_watchdog 10

サーバーがダウンしてから復帰できそうな場合、何秒でcom_watchdog_cmdを実行するか。原因不明の落ち方をする場合や、エラー原因をしっかり把握したい場合は設定しない方が無難です。

set com_watchdog_cmd "exec maps.cfg"

サーバーがダウンしてから復帰できそうな場合に実行するコマンド。

このページは作成中です。

server.cfgの日本語訳(0.48)

C:\Program Files\Wolfenstein - Enemy Territory\tcetest\の中にあるserver.cfgをワードパッドなどのテキストエディタで開いて、変更したい箇所を編集してください。

コンフィグファイル(*.cfg)のルールとして、行中に//を書くとその後はコメントと見なされ無視されますので、自分なりの解釈も書くことができます。

// 基本設定

// 1: LAN専用サーバ
// 2: インターネット専用サーバ
// コマンドライン引数で設定するのが一般的なため、ここではコメントアウト推奨。
//set dedicated "2"

// 公表するIPアドレス。
// 基本的にデフォルトでよいのでここではコメントアウト。
//set net_ip ""

// 使用するポート。
// 基本的にデフォルト、指定する場合はコマンドライン引数を使うのでここではコメントアウト推奨。
// デフォルトではポート27960、使用されていると +1 していきます。
//set net_port "27960"

// MEMORY SETTINGS(メモリ設定)

// 割り当てるメモリ量。普通コマンドラインで指定。
//set com_hunkmegs "128"

// memory out of the hunk for zone
// マップ展開などに使う、com_hunkmegsとは別のメモリ割り当て?
// どなたか詳細お願いします。
//set com_zonemegs "64"

// PASSWORDS & CLIENTS(パスワード・クライアント設定)

// サーバーのプライベートクライアントを合わした最大人数。
set sv_maxclients "16"

// サーバーのパスワード。文字を入れるとパスワードが無いとサーバーに入れない。
set g_password ""

// プライベートクライアント用のパスワード
set sv_privatepassword ""

// サーバをリモートコントロールするためのパスワード。
// ここが空だとサーバを勝手に操作されてしまいますので必ず入力してください。
set rconpassword "change_me"

// レフリーになるためのパスワード。
// ここが未入力の場合レフリー自体無効
set refereePassword ""

// DL, RATE(ダウンロード・帯域設定)

// サーバの1クライアントあたりの使用帯域。
// 10000〜25000ぐらいの範囲が妥当。
// ADSLなら15000〜20000ぐらい、光なら20000〜25000ぐらい。
set sv_maxRate "13000"

// サーバからマップなどをダウンロードさせる場合の帯域設定。
// 0なら無制限
set sv_dl_maxRate "42000"

// マップなどのダウンロードを許可するかどうか。
// ウェブダウンロードの場合もここは1にしなければならない。
set sv_allowDownload "0"

// ウェブダウンロードを許可するかどうか。
// 以下ウェブダウンロードに関してはサーバー管理者Tips参照で。
set sv_wwwDownload "0"

// ウェブダウンロードの際の基準となるURL
set sv_wwwBaseURL ""

// ウェブダウンロード中は一旦接続を解除するかどうか
set sv_wwwDlDisconnected "1"

// ウェブダウンロードに失敗した場合のリダイレクト先?
set sv_wwwFallbackURL ""

// MOTD ETC(サーバ名やMOTDの設定)

// サーバ名
set sv_hostname "TC:Elite Test"

// ログイン時に右下に出るメッセージ
set server_motd0 "^NTC:Elite Test - feedback requested ^7"
set server_motd1 "^Nwww.truecombat.com ^7"
set server_motd2 ""
set server_motd3 ""
set server_motd4 ""
set server_motd5 ""

// トリビアですが、MOTD は Message Of The Day の略、つまり「今日の一言」なので、毎日変えてもいいかも知れません(笑)

// MISC SETTINGS(その他の設定)

set g_heavyWeaponRestriction "100"

// ラグを軽減させるためのシステムの設定。// 基本的に1で良いが、副作用もあるので投票で弄れるようにしておくと良い。。set g_antilag "1"

set g_altStopwatchMode "0"
set g_autofireteams "0"
set g_complaintlimit "3"
set g_ipcomplaintlimit "3"
set g_fastres "0"

// 仲間を撃ってしまった場合にダメージを与えるか
set g_friendlyFire "1"

// ゲームタイプ
// マップローテーションで指定する場合はここでは意味がありません
//set g_gametype "5"

set g_leanmode "1"

// ゲームを始めるのに必要な最低人数。
set g_minGameClients "2"

set g_maxlives "0"
set g_alliedmaxlives "0"
set g_axismaxlives "0"
set g_teamforcebalance "0"
set g_noTeamSwitching "0"

// ボイスチャットを連続で使用できる回数
set g_voiceChatsAllowed "4"

// プレイヤーの準備を待つかどうか。0だと待たない
set g_doWarmup "0"

// ゲーム開始までのウォームアップの時間
set g_warmup "20"

set g_spectatorInactivity "0"

// 1で、山ほどのデータを送り込んで会話の邪魔をしたり、酷ければサーバを落とそうとする行為を抑止する。
set sv_floodProtect "1"

// 1でクライアントのカスタムファイルを認めない
set sv_pure "1"

// 接続を許可する最低Ping
set sv_minping "0"

// 接続を許可する最大Ping
set sv_maxping "0"

set match_latejoin "1"
set match_minplayers "2"
set match_mutespecs "0"

// 何%で試合を始めるか。100だと全員がreadyするまで待つ
set match_readypercent "100"

set match_timeoutcount "0"
set match_warmupDamage "1"
set team_maxplayers "0"
set team_nocontrols "1"
set pmove_fixed "0"
set pmove_msec "8"

// LMS ONLY SETTINGS(Objectiveでの設定)

// この辺りの詳細はサーバー管理者Tips参照。

// 1で強制的にチーム人数のバランスを取らせる。
set g_lms_teamForceBalance "1"

// 1マッチあたりのラウンド数。
set g_lms_roundlimit "5"

// 1マップあたりのマッチ数。
set g_lms_matchlimit "2"

set g_lms_currentMatch "0"
set g_lms_lockTeams "0"

// 1で死んだ後にスペクトできる対象が同チームのみ。
set g_lms_followTeamOnly "1"

// VOTING(投票関係の設定)

// 投票自体を許可するか
set g_allowVote "1"

set vote_limit "3"// 何パーセントの賛成票で可決するか
set vote_percent "50"

// competition settings wait for "ready"
set vote_allow_comp "0"

// ゲームタイプの変更を許可するか
set vote_allow_gametype "1"

// プレイヤーのキックを許可するか
set vote_allow_kick "1"

// マップの変更を許可するか
set vote_allow_map "1"

// 試合のリセットを許可するか
set vote_allow_matchreset "1"

// 死んだ人のチャット有無の変更を許可するか
set vote_allow_mutespecs "1"

// 次のマップへの変更を許可するか
set vote_allow_nextmap "1"

// pub settings don't wait for "ready"
set vote_allow_pub "1"

set vote_allow_referee "0"

// シャッフル・チームを許可するか(TC:Eではクライアントは使えない模様)set vote_allow_shuffleteams "1"

// チームの入れ替えを許可するか
set vote_allow_swapteams "1"

// フレンドリーファイアの設定の変更を許可するか
set vote_allow_friendlyfire "1"

// タイムリミットの変更を許可するか
set vote_allow_timelimit "1"

set vote_allow_warmupdamage "1"

// アンチラグの設定の変更を許可するか
set vote_allow_antilag "1"

set vote_allow_balancedteams "1"

// プレイヤーを黙らせることを許可するか
set vote_allow_muting "1"

// PUNKBUSTER(PBの設定)

// sv_punkbuster is a readonly variable. Use +set sv_punkbuster on command line
// or use the command pb_sv_enable in the console.
// pb_sv_enable

// Punkbuster Settings//exec punkbuster.cfg

// LOGGING(ログ設定)

// サーバーのログファイル名set g_log "TCE.log"

set g_logsync 1

// Console logging// ( 1: enable 2: enable and sync )set logfile 2

// MAP ROTATION SCRIPT(マップローテーション設定)

// このページの後ろにある maps.cfg を呼び出しているだけです。

// set this to a map config file that
// defines a circular list of maps to play
// should include gametypesexec maps.cfg

// WATCHDOG

// 番犬機能。サーバーがエラーを吐いて停止した場合で、
// 尚かつ復帰できる時にcom_watchdogで設定された秒数後にcom_watchdog_cmdのコマンドが実行される。

// watchdog機能を使うには↓のコメントアウトを外します。
//set com_watchdog 10

// run this script to fix the server if it
// appears to be hung
set com_watchdog_cmd "exec maps.cfg"

マップローテーション設定

maps.cfgの解説

簡単にsetコマンドの説明をするとset 変数名 "コマンド"と言うことになります。またコマンドの中にセミコロン(;)があると、そこまでで一つの命令として実行されます。

set map1  "vstr obj ; map obj_northport ; set nextmap vstr map2"
set ...
...

上記の場合map1と言う変数に、変数objの内容を実行(ゲームタイプを5に変更)し、mapコマンドでobj_northportを読み込み、変数nextmapに次のマップが定義されている変数をセットしています。なお、nextmap変数はserver.cfgで指定した試合数をこなすと自動的に実行される特別な変数です。

vstr map1

最後に各マップの定義が終わったところで、まだマップを読み込むコマンドが実行されていないので、ここでvstrコマンドを使って変数map1が実行されるわけです。

実例

各マップ毎にシャッフルして攻守の両方やるObjectiveの設定

set map1  "shuffle_teams; map obj_northport;    set nextmap vstr map2"
set map2  "swap_teams;    map_restart;          set nextmap vstr map3"
set map3  "shuffle_teams; map obj_village;      set nextmap vstr map4"
set map4  "swap_teams;    map_restart;          set nextmap vstr map5"
set map5  "shuffle_teams; map obj_railhouse;    set nextmap vstr map6"
set map6  "swap_teams;    map_restart;          set nextmap vstr map7"
set map7  "shuffle_teams; map obj_stadtrand;    set nextmap vstr map8"
set map8  "swap_teams;    map_restart;          set nextmap vstr map9"
set map9  "shuffle_teams; map obj_snow;         set nextmap vstr map10"
set map10 "swap_teams;    map_restart;          set nextmap vstr map11"
set map11 "shuffle_teams; map obj_delta;        set nextmap vstr map12"
set map12 "swap_teams;    map_restart;          set nextmap vstr map1"

vstr map1

マップが変わった時にシャッフルが入り、規定のラウンド数(g_lms_roundlimit)が終わると攻守を交代してやる場合の例です。

最初から全ての武器が使えるBodycount

g_gametype 7
set map1  "shuffle_teams; map obj_northport; g_currentround 3; set nextmap vstr map2"
set map2  "swap_teams; map obj_village;      g_currentround 3; set nextmap vstr map3"
set map3  "swap_teams; map obj_railhouse;    g_currentround 3; set nextmap vstr map4"
set map4  "swap_teams; map obj_stadtrand;    g_currentround 3; set nextmap vstr map5"
set map5  "swap_teams; map obj_snow;         g_currentround 3; set nextmap vstr map6"
set map6  "swap_teams; map obj_delta;        g_currentround 3; set nextmap vstr map1"

vstr map1

この例ではゲームタイプを7(Bodycount)にして最初のnorthportでshuffle_temas(メンバーシャッフル)を入れ次のマップからTerroristsとSpecopsを入れ替えるswap_teamsを実行しています。また、途中にあるg_currentroundは本来はラウンド数を調整するものですが、ここでは強制的にArmament Availabilityを上げるために使用しています。

各マップ毎に制限時間を変更する方法

set map1  "TimeLimit 3; map obj_northport;    set nextmap vstr map2"
set map2  "TimeLimit 4; map obj_village;      set nextmap vstr map3"
set map3  "TimeLimit 5; map obj_railhouse;    set nextmap vstr map4"
set map4  "TimeLimit 6; map obj_stadtrand;    set nextmap vstr map5"
set map5  "TimeLimit 7; map obj_snow;         set nextmap vstr map6"
set map6  "TimeLimit 8; map obj_delta;        set nextmap vstr map1"

vstr map1

こうするとmap1では3分、map2では4分…という制限時間になります。ただしTC:Eの制限として3分未満は設定しても無視されます。

PunkBusterの設定

PunkBusterとは?

PunkBusterとは、たくさんのFPSゲームなどで使われているチート防止ツールです。日本のTC:Eサーバーではあまり普及していませんが、外国にいけばほとんどがPunkBusterを使っています。このページでは、サーバー側のPunkBusterの設定を記述していきます。

PunkBusterを有効にするには

PunkBusterは、server.cfgの下のほうにある、

// sv_punkbuster is a readonly variable. Use +set sv_punkbuster on command line
//  or use the command pb_sv_enable in the console.
// pb_sv_enable

//exec punkbuster.cfg               // Punkbuster Settings

この部分を

// sv_punkbuster is a readonly variable. Use +set sv_punkbuster on command line
//  or use the command pb_sv_enable in the console.
pb_sv_enable

exec punkbuster.cfg               // Punkbuster Settings

このようにコメントを取ることによって有効にすることができます。

PunkBusterを利用して定期的に定型文を流すためには

PunkBusterのpb_sv_taskを利用すると、特定秒数ごとにアナウンスを流したりすることが可能になります。以下例文と動作を記しておきます。

// send admin contact information every five minutes
//  helps keep your server monitored by players
//pb_sv_task 30 300 "say ^3Server admin: _name_, irc #channel, aim _sn_, icq..."

この300が単位秒、30が開始秒となり、上記の例文では300秒ごとに一周し、30秒目にアナウンスを流す仕様です。これを例えば600秒ごとに30秒〜60秒の間に4行ほどのメッセージを流したい場合は、上記例を参考に以下のように書きます。

pb_sv_task 30 600 "say ^3Welcome to hogehoge's Server"
pb_sv_task 40 600 "say ^3Admin is Hage"
pb_sv_task 50 600 "say ^3Minnna Gannbare"
pb_sv_task 60 600 "say ^3Bokuha gannbarimasenn."

こうすると、600秒間隔ごとに、30秒目に"^3Welcome to hogehoge's Server"、40秒目に"^3Admin is Hage"…とconsole発言が表示されていきます。

※これ以降は現在作成中です。※

サーバー変数リスト

変数名 Default 説明
g_gametype 5:Objective 7:Bodycount
g_lms_roundlimit 5 1マッチあたりのラウンド数。5ラウンドが推奨値。
g_lms_matchlimit 2 試合の回数。g_lms_roundlimit x g_lms_matchlimitが1mapの試合数
g_lms_followTeamOnly 1 死んだ後にスペクトできる人をチームに限定するかどうか。デフォルトは1(チームのみ)
g_killmessage 0 objectiveで死亡メッセージを流したい場合は1。デフォルトは0
g_knifeonly 0 使用できる武器をナイフだけにするか。
g_userTimeLimit 5 1round辺りのタイムリミット(分)。一度設定すればマッチが終わってもこの設定は継承される。なお、付属のserver.cfgにこの項目は記載されていない。
sv_fps 20 サーバーのフレームレート。なお、付属のserver.cfgにこの項目は記載されていない。

サーバーコマンド集

サーバー用のコマンド集です。

注意書き

サーバーコマンド集

ban クライアント名
指定されたクライアント名をBANする。
devMap マップ名
指定されたマップをチートコマンド使用可能な状態で読み込む。研究に使うためのコマンドであって、公開サーバーで使うことはお勧めしない。
exec ファイル名
指定されたファイルを実行する。
例:exec server.cfg
g_knifeOnly 0,1
有効にするとナイフだけしか装備できなくなる。
g_newbbox 0,1
無効にするとプレイヤーのスケールが048の物に変わる。(通常時は1)
ただし、鯖で適用するにはDLLの改変が必要。
g_realism 0,1
無効にすると移動速度が変化?未確認(通常時は1)
g_password 文字列
サーバーのパスワードを文字列に変更する。パスワードを無くしたい場合は""と入力する。
g_userAlliedRespawnTime x秒
ゲームタイプがCTFまたはBCでの、Specops側のリスポーンタイムの設定
g_userAxisRespawnTime x秒
ゲームタイプがCTFまたはBCでの、Terrorists側のリスポーンタイムの設定
g_userTimeLimit x分
タイムリミットをxに変更する。このコマンドは「timeLimit」コマンドと違い、マップが変わっても継続される。
map マップ名
マップを変更をする。
map_restart
現在のマップを再度読み込む。ラウンド数はリセットされないので注意すること。
net_port ポート番号
使用するポートを指定する。なお、起動時にコマンドラインで指定しないと適用されない。
pb_sv_enable 0,1
Punk Busterを使用するか。サーバー稼働中は即座に変更することができず、マップを再読込するか再起動しなければ適用されない。通常はserver.cfgに記述する。
Punk Buster用のコマンドは下記参照
reset_match
試合をやり直す。ラウンド数がリセットされるので注意すること。
set
サーバー変数をセットするためのコマンド。
seta
同上。setとの違いは不明。
sets 変数名 文字列
指定した変数名に文字列をセットする、文字列用のコマンド。通常はサーバーなどの情報を書き込む。ただし、あまりセットしすぎると、サーバーが時間経過と共にオーバーフローして止まるので注意すること。
shuffle_teams
両陣営を含めてチームメンバーをシャッフルする。
status
現在接続中のプレイヤーの一覧を表示。
sv_hostName 文字列
ホスト(サーバー)名を文字列に変更する。
swap_teams
SOとTrのメンバーを全員入れ替える。
timeLimit x分
タイムリミットをxに即時変更する。マップが変わるとリセットされるので注意。
vstr 変数名
セットされいる変数をコマンドとして実行する。
例:vstr nextmap

追記

set、setaなどについて
※以下は正確な情報ではない可能性がありますが(DOOM版のため)、参考情報として記載しておきます
---------------
set - DOOMエンジンに直接Cvarの値を送る
seta - 値が保存される?(autoexec.cfgなどに書いた記述がDoomConfig.cfgに書き込まれる?)
sett - ツール用     ←W:ETには存在しません
setu - ユーザー情報用
sets - サーバー情報用

基本的にどれを使っても効果としては変わらないはずだが、これにしたがって記述することによって、何に関する記述なのかを見分けることができる。プレーヤーはsetかsetaを使っていれば問題ないだろうと思う。

※参考URL:http://www.negitaku.org/categories/7/5
 (転載・引用自由なサイトです)

Refereeのやり方

Refereeのやり方

ゲームプレイ中のコンソール内で、サーバーで設定されているrefereePasswordを/ref refereePasswordの形式で入力することでレフリーになれます。

下記のコマンド一覧で使われるは、サーバー内での各プレイヤーのID番号を示し、コンソール内で/playersと入力することで表示されます。メインメニューからでもほとんどのコマンドにアクセスできますし、Refereeになると死亡後のスペクトで敵側も見れるようになります。

コマンド一覧

使用可能

コマンド 書式 説明
ref /ref 全レフリーコマンドを表示します。(/ref helpと同じ)
help /ref help 全レフリーコマンドを表示します。
allready /ref allready 全プレイヤーを強制的にReady状態にし、ウォームアップを開始します。
antilag /ref antilag 0または1 サーバーの通信遅延補正機能のON/OFFを切り替えます。(0でOFF、1でON)
balancedteam /ref balancedteam 0または1 サーバー内で人数が多い方のチームに入れないようにする機能のON/OFFを切り替えます。(0でOFF、1でON)
warmupdamage /ref warmupdamage 0または1または2 実装されてるけど意味ないぽ。。。*1
map /ref map 任意のマップ名 マップを変更します。
maprestart /ref maprestart 現在のラウンドを最初からやり直します。マッチはリセットされません。
matchreset /ref matchreset 現在のマッチを最初からやり直します。
nextmap /ref nextmap 現在のマップを飛ばし、次のマップに切り替えます。
restart /ref restart 現在のマップを最初からやり直します。(メインメニューからのみ使用可能)
startmatch /ref startmatch 各プレイヤーのReadyを待たずにウォームアップを開始します。
swapteams /ref swapteams テロリストチームと特殊部隊チームのプレイヤーを入れ替えます。
timelimit /ref timelimit 任意の制限時間(分) 制限時間を変更します。(残り時間ではなく、制限時間そのものが変更されることに注意。)
warmup /ref warmup 任煮のウォームアップ時間(秒) ウォームアップ時間を変更します。
pause /ref pause ゲームを一時停止します。
unpause /ref unpause ゲームの一時停止を解除します。
speclock /ref speclock 観戦者の観戦を禁止します。
specunlock /ref specunlock 観戦者の観戦の禁止を解除します。
lock /ref lock プレイヤーが各チームへ入ることを禁止します。
unlock /ref unlock プレイヤーが各チームへ入ることの禁止を解除します。
mutespecs /ref mutespecs 0または1 観戦者の発言の可否を切り替えます。(0で発言許可、1で発言禁止)
mute /ref mute <pid> <pid>のプレイヤーの発言を禁止します。
unmute /ref unmute <pid> <pid>のプレイヤーの発言の禁止を解除します。
kick /ref kick <pid> <pid>のプレイヤーをサーバーから追い出します。
referee /ref referee <pid> <pid>のプレイヤーをレフリーにします。
unreferee /ref unreferee <pid> <pid>のプレイヤーをレフリーから外します。
putallies /ref putallies <pid> <pid>のプレイヤーを特殊部隊チームに移動させます。
putaxis /ref putaxis <pid> <pid>のプレイヤーをテロリストチームに移動させます。
remove /ref remove <pid> <pid>のプレイヤーを観戦者にします。
warn /ref warn <pid> 任意の警告文 <pid>のプレイヤーに警告文を送ります。(メインメニューからのみ使用可能)

未実装(使用法不明)

コマンド 書式 説明
campaign /ref campaign 実装されてないぽ。。。 (ETのVoteコマンド用?)
cointoss /ref cointoss 実装されてないぽ。。。(ETのVoteコマンド用?)
comp /ref comp 実装されてないぽ。。。(ETのVoteコマンド用?)
friendlyfire /ref friendlyfire 0または1 実装されてないぽ。。。(ETのVoteコマンド用?)
gametype /ref gametype 5または7 実装されてないぽ。。。(Obj or BC 切り替え用?)
pub /ref pub 実装されてないぽ。。。
shuffleteamsxp /ref shuffleteamsxp 実装されてないぽ。。。(ETのVoteコマンド用?)

ETTV導入方法

ETTVサーバーとは

ETTVが何か解らない方はこちらの説明をご覧下さい。このコンテンツではこのETTVサーバーの建て方を説明します。

ETTVはWolfenstein愛好家達が制作しているサードパーティー制のModなので、公式に配布されているものではありません。通常のetded.x86*1ファイルをハックして作られたものなので通常のサーバーよりも予期しない不具合が発生する確率が高いことに注意してください。Windows、Linux両方のサーバーがサポートされています。

必要なファイル

下記のリンク先からETTVのファイルをダウンロードしてください。W:ET Ver.2.56(1.02)はBeta2が相当します。W:ET 2.60で使用する場合は最新の物を使用してください。

ダウンロード先

Beta2 (2.56互換)
Beta13 (2.60b互換)
このコンテンツではLinux版を元にデフォルトのインストール先を前提に解説します。Windowsユーザーの方はファイルパスとファイル名、ディレクトリをフォルダと置き換えてご覧ください。

OS毎に使用するファイル

Linux

Windows

注意:Beta2にはqagame.mp.i386及びqagame_mp_x86.dllは含まれていません。

インストール


cd /tmp
wget http://ettv.anime.net/ettv-betax.zip
unzip ettv-betax.zip

ダウンロードしたETTVのファイルを解凍します。

mv ettv.x86 /usr/local/games/enemy-territory/
mv tvgame.mp.i386.so /usr/local/games/enemy-territory/tcetest/

mv qagame.mp.i386.so /usr/local/games/enemy-territory/tcetest//usr/local/games/enemy-territoryにettv.x86を移動し、残りのtvgame.mp.i386.soとqagame.mp.i386.soをtcetestディレクトリに移動します。

起動ファイルの作成

このコンテンツは制作中です。

参考リンク

http://wolfwiki.anime.net/index.php/Category:ETT...
http://bani.anime.net/banimod/forums/viewforum.p...

LinuxServerへの導入

基本的なLinuxコマンドの使用方法を理解している方が対象です。Windows版と違ってLinux版はCUI上で動くので、X-WindowなどのGUIは全く必要有りません。 (GUIでも使用可能ですが、LinuxOSのServerにする利点が無くなってしまうので、ここでは割愛致します。)

Ubuntu サーバー版にインストールする方法

Linuxのなかでも一番使いやすくOSのインストールもしやすい"Ubuntu"のサーバー版についての紹介です。
サーバー版はCUI上で動くので、X-WindowなどのGUIは必要有りません。
しかしなれない方はデスクトップ版の"Ubuntu"でも建てることが出来ますがPCスペックが弱い人の為にサーバー版のみとさせていただきます。

  • Modの置き場所はWindows版と同じ。
  • fs_homepathがWindows版と違い、/home/user/.etwolf/となる。
  • 起動オプションやサーバーコマンドに相違は無い。
  • Ubuntuは初期設定でrootユーザーを作りませんので"sudo"コマンドを使います

サーバーが必要とするライブラリ

tcetest/qagame.mp.i386.soは少なくとも libstdc++.so.5 を必要とします。これは最近のdistroでは標準でインストールされない場合があるので、その場合には自分でインストールします。

$ sudo apt-get install libstdc++5 #

用意するファイル

ファイル名 説明
et-linux-2.60.x86.run Wolfenstein:EnemyTerritory本体)
ET-2.60b.zip Wolfenstein:EnemyTerritory アップデートファイル)
tcetest049 TrueCombat:Elite Ver.0.49 Full ZIP版)

日本ではhttp://wiki.truecombat.jp/?Downloadにて必要な全てのファイルがミラーされています。

# wget http://www.hoge.com/et-linux-2.60.x86.run
# wget http://www.hoge.com/ET-2.60b.zip
# wget http://www.hoge.com/tcetest049.zip
# wget http://www.hoge.com/tc049b_all_os_fixed.zip
  • wgetコマンドを使ってファイルをダウンロードする場合(これはサンプルなので実際にはDLできません)
$ sudo ./et-linux-2.60.x86.run
  • 実行権を付加し、実行させます。sudoを忘れずに!
  • このあとはインストーラーの指示に従ってインストールをします。
  • インストールパスは標準にしたものとして、以下続きます。つまりエンターキー押しっぱです。
$ sudo apt-get install unzip

$ sudo unzip tcetest049.zip
$ sudo unzip ET-2.60b.zip
$ sudo unzip tc049b_all_os_fixed.zip
  • zipを解凍するためにunzipをインストールします。
  • そのあとTC:E本体とET2.60bパッチ、そして0.49bパッチを解凍します。
$ sudo mv tcetest /usr/local/games/enemy-territory/
$ sudo mv Enemy\ Territory\ 2.60b/linux/* /usr/local/games/enemy-territory/
$ sudo mv tc049b_all_os_fixed /usr/local/games/enemy-territory/tceteset
  • TC本体とET2.60bのパッチを移動させます。
  • ET2.60bパッチは上書きしてしまいます。
  • TC0.49bパッチは上書きしてしまいます。

以上でインストールは完了です。

CUI版のdedicatedサーバーは etded です。例えば

$ sudo /usr/local/games/enemy-territory/etded +set dedicated 2 +set fs_game tcetest +exec server.cfg

などとして起動します。

基本こんな感じです。後はserver.cfgとかmaps.cfgいじくればokです。

インストール方法

Windows版と違ってLinux版はCUI上で動くので、X-WindowなどのGUIは全く必要有りません。

  • Modの置き場所はWindows版と同じ。
  • fs_homepathがWindows版と違い、/home/user/.etwolf/となる。
  • 起動オプションやサーバーコマンドに相違は無い。

サーバーが必要とするライブラリ

tcetest/qagame.mp.i386.soは少なくとも libstdc++.so.5 を必要とします。これは最近のdistroでは標準でインストールされない場合があるので、その場合には自分でインストールします。

# yum install compat-libstdc++-33 ( Fedora系, CentOS, RHEL等の場合 )
# emerge libstdc++-v3 ( Gentooの場合 )
# apt-get install libstdc++5 # ( Debian etchの場合 )

用意するファイル

ファイル名 説明
et-linux-2.60.x86.run Wolfenstein:EnemyTerritory本体)
ET-2.60b.zip Wolfenstein:EnemyTerritory アップデートファイル)
tcetest049 TrueCombat:Elite Ver.0.49 Full ZIP版)

日本ではhttp://freeserver.name/files/installer/linuxhttp://pumpkin.game-server.cc/files/にて必要な全てのファイルがミラーされています。

# wget http://www.hoge.com/et-linux-2.60.x86.run
# wget http://www.hoge.com/ET-2.60b.zip
# wget http://www.hoge.com/tcetest049.zip
  • wgetコマンドを使ってファイルをダウンロードする場合(これはサンプルなので実際にはDLできません)
# chmod +x et-linux-2.60.x86.run
# ./et-linux-2.60.x86.run
  • 実行権を付加し、実行させます。
  • このあとはインストーラーの指示に従ってインストールをします。
  • インストールパスは標準にしたものとして、以下続きます。
# unzip tcetest049.zip# unzip ET-2.60b.zip
  • TC:E本体とET2.60bパッチを解凍します。
# mv tcetest /usr/local/games/enemy-territory/
# mv Enemy\ Territory\ 2.60b/linux/* /usr/local/games/enemy-territory/
  • TC本体とET2.60bのパッチを移動させます。
  • ET2.60bパッチは上書きしてしまいます。

以上でインストールは完了です。

CUI版のdedicatedサーバーは etded です。例えば

# /usr/local/games/enemy-territory/etded +set dedicated 2 +set fs_game tcetest +exec server.cfg

などとして起動します。

起動スクリプトについて

Linuxでは起動するためにはスクリプトを書く必要がでてきます。ここではその起動スクリプトについて説明していきます。

参考起動スクリプト

#!/bin/sh -x
PortNum=27960
etded +set dedicated 2 +set com_hunkMegs 128 \
 +set net_port $PortNum +set fs_game tcetest \
 +exec server.cfg
  • 難しい事は書いてません。

その他の設定

パス

インストールパス

デフォルトでインストールされるディレクトリは /usr/local/games/enemy-territory/ です。/usr/local/bin/et と /usr/local/bin/etded にリンクが作成されます。リンク先は/usr/local/games/enemy-territory/etと /usr/local/games/enemy-territory/etdedになります。サーバーの起動コマンドは etded の方です。(実は et と etded はシェルスクリプトで、実体は et.x86 と etded.x86)

サーチパス

デフォルトのpk3サーチパスは

~/.etwolf/tcetest/
~/.etwolf/etmain/
/usr/local/games/enemy-territory/tcetest/
/usr/local/games/enemy-territory/etmain/

です。

ログパス

logファイルなどは

~/.etwolf/tcetest/

の中に書き込まれます。

fs_homepathについて

起動オプションに fs_homepath を設定することで、~/.etwolfの代わりに別のパスを指定することもできます。これを利用して、/home/tce-normal/tcetest/ には公式マップだけを、/home/tce-custom/tcetest/ にはカスタムマップを、と実行ファイルを共有しつつも違うpk3構成のサーバーを建てることなども可能です。

管理

CLI環境下でリモート管理がしたい場合や、複数のサーバーを建てるならscreenと言うソフトが便利、というか必須。screenコマンドはコンソールのセッション管理ができるソフトで、WindowsにあるリモートデスクトップのCUI版みたいなものです。screenの使い方はLINUXマガジン2002年1月号の記事(pdf)が親切・丁寧でオススメ。TC:Eサーバだけではなく幅広く使えるツールなので、知ってる人はより便利に、知らない人は積極的に使っていきましょう。

いろいろな管理方法

init.dスクリプトやloglotateの設定など。

自動起動スクリプト

少し難しい話になります。サーバを運営する上で常時サーバを建てる場合、 なんらかの障害でサーバが再起動を起こしたとき、 直ぐに各サービスを起動させなければなりません。 その上で「起動時のサービスに追加させる」という作業が必要になります。 ここではそのサービス追加のスクリプトを書いていきます。

スクリプト本体

/etc/init.d/tcetest

#!/bin/bash# Version: 0.1
#written by U-Taro#edit by SHUBA
# chkconfig: 345 99 01# description: TCE
# processname: TrueCombat:Elite

. /etc/init.d/functions
  • ここらへんはinit.dスクリプトの作成方法を参照
prog=./etded.x86
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
progdir=/usr/local/games/enemy-territory
  • プログラムの場所とディレクトリを指定する。
  • export0はetdedスクリプトに書いてあるので書いているだけです^^;
case $2 in
	ctf)
		progname="TrueCombat:Elite CTF Server"
		servercfg=serverCTF.cfg
		pidfile=/var/run/tcetestCTF.pid
		gamemode=2
		port=27960
		;;
	pri)
		progname="TrueCombat:Elite Private Server"
		servercfg=serverPRI.cfg
		pidfile=/var/run/tcetestPRI.pid
		gamemode=5
		port=27961
		;;
	obj)
		progname="TrueCombat:Elite OBJ Server"
		servercfg=serverOBJ.cfg
		pidfile=/var/run/tcetestOBJ.pid
		gamemode=5
		port=27962
		;;
	bc)
		progname="TrueCombat:Elite BC Server"
		servercfg=serverBC.cfg
		pidfile=/var/run/tcetestBC.pid
		gamemode=7
		port=27963
		;;
	*)
		echo "Bad server name."
		exit 1
		;;
esac
  • 起動時スクリプトの第2引数に起動するgametypeを指定します。多くの常駐サーバをたてる事が前提です。
# Create execute command and args
cd $progdir
etded="./etded.x86 +set dedicated 2 +set fs_game tcetest \
+set net_port $port +set g_gametype $gamemode +exec $servercfg"

start() {
	if [ -e $pidfile ] ; then
		ps `cat $pidfile` > /dev/null
		if [ $? == 0 ] ; then
			echo "This server is running."
			return 1
		fi
	fi

	echo -n $"Starting $progname: "
	$etded > /dev/null &
	RETVAL=$?
	echo

	[ $RETVAL = 0 ] && echo $! > $pidfile
	return $RETVAL

}
  • スタートスクリプト
  • もし、pidファイルが残っていたらPIDを調べ、既にサーバが稼働状態かどうかを調べます。
  • もし起動していたら"This Server is running"を表示させます
  • 通常起動時にはPIDを$pidfileへ吐きます。
stop() {
	RETVAL=1
	if [ -e $pidfile ]; then
		ps -p `cat $pidfile`
		RETVAL=$?
	fi

	if [ $RETVAL != 0 ]; then
		echo "This server is not running."
		if [ -e $pidfile ]; then
			rm -f $pidfile
		fi
		return 1
	fi

	echo -e "Stopping TC:E Server: $Server\n"
	kill `cat $pidfile`
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && rm -f $pidfile
}
  • ストップスクリプト
  • $pidfileを調べ、PIDからプロセスが起動しているかどうかを調べます。
  • その後、そのPIDのプロセスを殺します。
  • 最後に$pidfileを削除します。
status() {
	RETVAL=1
	if [ -e $pidfile ]; then
		ps -p `cat $pidfile`
		RETVAL=$?
	fi

	if [ $RETVAL = 0 ]; then
		echo "This server is running."
	else
		echo "This server is not running."
	fi
}
  • ステータススクリプト
  • $pidfileを調べ、PIDからプロセスが起動しているかどうかを調べます。
  • 基本的にストップスクリプトの時と同じ事をするだけです。
# See how we were called.
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	status)
		status
		;;
	restart)
		stop
		start
	;;
	condrestart)
	if [ -f "$pidfile" ] ; then
		stop
		start
		fi
		;;
	*)
		echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
		exit 1
esac

exit $RETVAL
  • 第1引数の振り分けです。

以上がinit.dスクリプトとなります。

自動起動の方法

今回のinit.dスクリプトは、第2引数まで使用するので、通常のchkconfig --addでは使用できません。なので、起動時に実行するファイルを指定する、/etc/rc.localに追記する必要が有ります

# echo "/etc/init.d/tcetest start obj" >> /etc/rc.local
# echo "/etc/init.d/tcetest start ctf" >> /etc/rc.local
# echo "/etc/init.d/tcetest start pri" >> /etc/rc.local

以上で自動起動は完了です。

設定ファイルの振り分け

ここで設定ファイルの振り分けを行います。 簡単に設定を変更するには、ETのserver.cfgはやや不親切すぎます。 なので、「絶対に変更点が無い項目」や、「共通の設定値の項目」などは、server.cfgへ、 設定を変更する可能性がある設定のみをserver[gametype].cfgへとします。

serverBC.cfgの場合

//set net_ip ""
set net_port "27960"

// max players, private slots and passwords
set sv_maxclients "16"
//set g_password ""
//set sv_privateclients ""
//set sv_privatepassword ""
//set rconpassword ""
//set refereePassword ""

set sv_hostname "Truecombat:Elite JPN Server!"

ser g_dowarmup "0"
set g_warmup "15"

set match_minplayers "1"
set match_readypercent "40"
set g_userAlliedRespawnTime "10"
set g_userAxisRespawnTime "10"
set g_userTimeLimit "15"

// LMS settings
set g_lms_teamForceBalance "1"
set g_lms_currentMatch "5"
set g_lms_lockTeams "0"
set g_lms_followTeamOnly "1"

// punkbuster config
// exec pb.cfg
 
// logging
set g_log "tcetest_(BC).log"
set g_logsync 1
set logfile 2

// exec public settings by default
// exec pub.cfg

// something
set com_watchdog 60
set com_watchdog_cmd "exec mapsBC.cfg"

exec server.cfg 
exec mapsBC.cfg
  • server[gemytype].cfgに必要なものは上記ぐらいです。
  • 他のものはserver.cfgに入れてしまいましょう。
  • "exec server.cfg"を指定することによって、
  • 起動時にserver[gametype].cfgを指定しておけば、
  • 自動的にserver.cfgも実行されるようになります。

LOGROTATEの設定

常時起動していると、ログは膨大な量になります。 なので、ログの管理は大変になってしまいます。 ここではlinuxのログ管理機能 logrotateを使用したログ管理方法を説明します

logrotateのスクリプト作成

とりあえずログ管理のスクリプトを作成します。

# vi tcetest
/root/.etwolf/tcetest/* /usr/local/games/enemy-territory/tcetest/*.log {
	missingok
	ifempty
	daily
	rotate 14
	create
}
  • logファイルがなくてもエラーを出さない、logが白紙でもrotate、
  • 毎日rotateする、14回個のoldfileを作成する、rotate後に新たな空のファイルを作成する。
  • 上記の設定のlogrotate設定ファイルができました。
# mv tcetest /etc/logrotate.d/
# chkconfig --list|grep crond
  • logrotateのフォルダに入れる。
  • logrotateは/etc/logrotate.d/以下のファイルを全てインクルードする。
  • logrotateはcronによって起動されるので、crondが起動しているかをチェックする。
  • あとは自動的にlogがとられるようになる。

Tips

分割して、ひとつひとつの項目を詳しく書いてもいいかも

サーバーの管理者名やコメントを表示する

サーバーブラウザ等での追加情報の表示やコメント類の表示方法はserver.cfg内などで、以下のような記述を追加する。setではなくsetsなことに注意してください。

sets .Admin "Kannrininn"
sets .URL "http://www.mydomain.jp"

ナイフオンリー仕様にする

g_knifeonly を設定する。

set g_knifeonly "1"

ゲームタイプを変更する

時間制限を変更する

g_userTimeLimitを設定することでタイムリミットを変更可能(分単位)。また、一度設定すればマッチが終わってもこの時間設定は継承される。なお標準のserver.cfgにこの項目は記載されていないので注意。

ラウンド数とマッチ数の調整

スペクトの設定を変更する

g_lms_followTeamOnlyは、死んだ後にスペクトできる人を自分が所属するチームに限定するかどうかの設定。デフォルトは1(所属チームのみ)となっています。

死亡メッセージの表示・非表示

objectiveで死亡メッセージを流したい場合はg_killmessageを1に設定する。デフォルトは0(流さない)となっています。野鯖では流す設定が主流のようですが、トーナメントや大会等では流さない設定になっていることが多い(ボイスチャット等で連携を取る)です。

-----------------------------------------------------------------------------------------
PunkBuster ーー> (todo:セッティングのPunkBusterの設定に移動する)
TC:Elite公式 PunkBuster設定サンプルファイルelite_pb_config.cfg(旧Test Updateバージョン用なので最適とは言えないかも)
BodycountサーバーでPB_SV_ScoreKickをセットしていると、弱いプレイヤーをキックしてしまう可能性がある。TKerとの判断が困難。
PB_SV_ChangeMaxがセットされていると、ETのバグか、名前を変更する時に1文字ずつ変更されしまう事が有り、そのため上限まで行ってしまいキックしてしまう事がある。
-----------------------------------------------------------------------------------------

Windows上でサーバーを建てる場合の注意

Windows上でサーバーを建てる場合は、コンソールを表示していると負荷が大幅に(特にラウンド開始時と終了時に)増してしまうので、必ずサーバーのウインドウを最小化しておきましょう。

カスタムファイルのダウンロード速度を上げる

サーバーにカスタムマップやカスタムファイルがインストールされている場合、通常の設定だと接続してきたプレイヤーは、ET独自のプロトコルでダウンロードします。

しかし、これでは貴重な通信帯域をダウンロードに使ってしまい、ゲーム中のプレイヤーに支障が出る恐れもありますし、何よりこの独自のプロトコルが大変遅いので、この設定でプレイヤーにファイルをダウンロードさせるのは大変酷と言えます。そこで外部サーバーからダウンロードさせる機能を使いましょう。これであなたのゲームサーバーの帯域も助かりますし、ダウンロードするプレイヤーも早くて快適です。設定箇所は次の通りです。

// ダウンロードを許可する(wwwDownloadも含めて)
set sv_allowDownload "1"
// wwwDownload を使用する。
set sv_wwwDownload "1"
// ダウンロードするアドレス
set sv_wwwBaseURL "http://www.sample.com/hoge"
// ダウンロード中のユーザは未接続状態にしておく(DL終了後に再接続します)
set sv_wwwDlDisconnected "1"
// ダウンロードに失敗した時にブラウザで表示されるURL
set sv_wwwFallbackURL ""

以上のように設定すれば、sv_wwwBaseURLに設定されたウェブサーバーからダウンロードが行われる訳ですが、幾つか約束事があります。

なお、HTTPだけでなくFTPも利用可能ですが、クライアントによってはネットワークの関係でダウンロード出来ないことがあるようなので、HTTPを使った方がいいでしょう。
なお、W:ETのバージョンが2.60未満の場合、クライアントにHTTPを使ってダウンロードさせると初回のみクライアントが落ちるバグがあります。ダウンロード用のサーバは帯域が余ってるなら自分で立ち上げても良いと思いますが、普通は帯域が勿体無いので、プロバイダの無料スペースなどに置きましょう。

複数のサーバーを建てるのに便利なテクニック

同じフォルダを使って、違う設定のサーバーを複数建てたいと思った事がありませんか?そんな時、役に立つのがfs_homepathコマンドです。

通常の設定で複数起動するのと何が違うのかと言うと、建てるサーバー毎に違うserver.cfgやカスタムpk3ファイルが使えるようになります。例えばサーバーAにcustom.pk3と言うファイルが有ったとしても、このファイルはサーバーBに全く影響ありません。つまり、クライアントに無駄なダウンロードをさせずサーバーを建てることができるのです。

ただし、このコマンドは起動オプションとして指定しないと正常に動作しません。Windowsの場合は下記のコマンドを参考に、自分の環境に合わせて変更してください。

"C:\Program Files\Wolfenstein - Enemy Territory\ET.exe" +set fs_homepath C:\tce_server1 +set dedicated 2 +set fs_game tcetest +exec server.cfg

ファイルが読み込まれる順番について

W:ETの仕様では下記の順にファイルを検索していき、そこに該当するファイルが有ったら読み出すようになっています。

fs_homepathで指定したフォルダ > tcetestフォルダ > etmainフォルダ

例えばserver.cfgと言うファイルを読み込むように命令した場合、このファイルがfs_homepathに有った場合はそこから読み出し、tcetestフォルダやetmainフォルダにserver.cfgが有っても探しに行きません。

余談となりますが、サーバー建てになれた管理者さんは経験したことが有るかも知れませんが、tcetestフォルダのserver.cfgを消してしまい、いつもの様にサーバーを起動をしてしまうとetmainフォルダに在るserver.cfg読み込まれてしまいます。こうなると全ての設定がW:ETになってしまい、使い物にならないサーバーになってしまうので注意が必要です。

フォルダ構造について

W:ETの仕様でフォルダ構造に少し癖があります。例えば"C:\tce_server1"と言うフォルダを指定した場合、その中にtcetestフォルダを製作し、そこにserver.cfgやカスタムpk3を入れなければなりません。別項で説明した、fs_homepath(ホームパス)と言うのはWolfenstein - Enemy Territoryフォルダの代わりを指定しているのです。

BANする時の目標のIPの見つけかた

悪質なプレイヤーがサーバーへ入ってることを確認したら、tcetestフォルダに在るetconsole.logをテキストエディタなどで開いてください。このログファイルには、プレイヤーの名前やIPなどのBANに必要な情報が記載されています。

テキスト検索などを使って目標のプレイヤーを検索すればいいのですが、最近は偽名プレイヤー問題が多いので、ログをよく見て誤BANにならないよう慎重に探してください。ここで注意しなければいけない点があります。このetconsole.logは、普通のログファイルと違い、サーバーを再起動すると上書きされて過去の情報が無くなってしまいます。(終了しただけでは消えません。)

W:ETの標準機能でBANする方法

本来は強力なBAN機能を持っているPunk Busterを使用したほうが良いのですが、クライアントとの相性問題なども有って全サーバーに導入されていないのが実情です。そこでW:ET標準のIP指定型のBANの仕方を解説します。なお、W:ET標準のBAN機能には癖があるのでルールを書いておきます。

通常は指定のIPのみをBANするので、下記の様にserver.cfgに追加します。xxxやyyyはBANしたいプレイヤーのIPアドレスで、半角スペースを入れれば複数指定することもできます。*を使ってマスクを掛けることも可能です。192.168.0.*は192.168.0.1 - 192.168.0.255までの255通りのIPに変換されます。addIPで192.168.0と指定してやるとコンフィグ上では自動的に192.168.0.*に変換されるようです。

set g_filterBan "1"
set g_banIPs "xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy "

FAQ

良くある質問

サーバーを建てる際に良くある質問をまとめてあります。

外部から自分のサーバーが見えない

色々な原因が考えられますが、まずはport 27960番がしっかり開いているか確認してください。通常はこのポートを開けるだけでマスターサーバーに通知され、他のプレイヤーも見られるようになります。また下記URLを自分のIPとポートに書き換えてアクセスすると外部から接続できるかチェック出来ます。
「210.146.117.151:27960」という部分を書き換えてください。
http://heeha.ws/kerberos/php_work/tce/server_det...

ASEから自分のサーバーが見えない

自分で建てたサーバーは、殆どのネットワーク環境で普段のように更新をしてもASEに表示されません。ASEの左上の枠にある Special > LAN server を選択して更新をしてみてください。

使用していないカスタムファイルをクライアントがダウンロードしようとする

大抵の場合はetmainフォルダにW:ETのカスタムファイルが入っている事が原因です。TC:Eliteは、etmainフォルダ内のカスタムファイルも読み込んでしまう事に注意してください。

ポート番号がずれる

テストで複数回起動しているうちにポート番号がずれる事があります。コンソールに net_port と打つと使用中のポート番号が表示されるので確認してみるか、一度PCを再起動してみてください。

1つのPCでサーバーを複数建てることができますか?

マシンの性能と回線負荷が許す限り建てる事が可能です。

よくあるサーバーエラーに関して

TrueCombat:Eliteはフリーのmodとして配布されているので、バグフィックスが追いつかないという感はぬぐえないだろう。バグは直せなくとも、なんとかよりよいサーバ環境にならないだろうか?てな感じで情報共有していきましょう。エラーは貴方の環境だけでは無いかもしれません。

サーバ構築するにあたり、よくありがちなエラーを載せていきます。遭遇したエラー、それの対処方法をわかる範囲でまとめてあります。エラーメッセージ見てすぐわかるものもありますが、中には結構わかりづらいものもあります。あとエラーの再現性があれば良いんだが、なかなかそこまでうまくいかないので“こうしたらうまくいった~”みたいな経験談を混ぜてもいいかも。

サーバーが停止する場合

ERROR: Hunk_Alloc failed on xxxxx

実装メモリーが足りていません。起動直後は大丈夫でもスワップ食いつぶして最終的に止まることもあります。com_hunkMegsの数値は(マップの規模との兼ね合いによりますが)16人サーバーなら32MB、24人なら48MB、64人なら64MB位をしておけば足りるとのことです。
メモリー増設が手っ取り早いですが、使っていないアプリやデーモンを止めることによって結構稼げたりします。(特にlinuxフルインストール等だと使わないデーモンが結構あるので見直してみるのも良い)蛇足ですが、人数とCPU負荷は比例しないようです。大人数の方がリソースがつがつ食う。32人以上だと色々とガクブルになる事が多くなる(あえてやるのも漢といえる・・・?)

ERROR: Info_SetValueForKey: oversize infostring

setsコマンド使いすぎっぽい。使わなければこれで落ちることはなくなった。 setsコマンドを使ってサーバの説明を長々と書くようなことをしなければ大丈夫なのかな?(未確認です) 残念ながらlinux環境下のみで起こる。win2k環境下ではsetsコマンド使ってもこれで落ちることはないらしい。

マップの不具合など

テクスチャー化け(オレンジ色になるやつ?)は結構見かける。サーバ設定というかマップファイルが壊れてる?可能性高い。希に大量のマップをロードしてると名前がかぶって化ける。(ただこれはマッパーで名前を工夫しているので可能性は低い)

サーバーに入れない

Server is for low pings only. と出てサーバーに入れない場合がある。etmodのバグというのが通説で結構見かける。sv_minping(ping最小値設定)を設定していないのにこれではじかれる。実害がないとは言えないが、reconnectで普通に入れたりするので目をつぶろういう感じ。

Aim出来なくなる

長時間TCEサーバを動かしていると発動する。具体的な時間は不明だが1ヶ月ぐらい連続運転しているTCEサーバでジャンプ、若しくは伏せをするとaimが不可能となる。再起動すれば元に戻る。発動するとゲームにならないのでやっかいなバグ。

サーバーサイドではないバグ

戦績表の不具合

33人以上でプレイすると最後に入った人の名前が戦績表(tab押すと出てくるやつ)に複数表示される。対策はバグフィックスを直すの待つしかない。そもそもMax32人ぐらいで遊ぶように出来てるみたいです。大人数設定時は注意してください。

ファイアモードが勝手に変わる

死んでから復活すると何故かセレクターが変わってしまう。死んでる時に最後にスペクトした人のファイアモードがそのまま継承されてしまうバグ。復活したらまずファイアモードを確認しましょう。

参考文献

http://www.rtcw.jolt.co.uk/content/enemy_territo...