サーバーの建て方

Last-modified: 2008-12-29 (月) 00:48:22

目次:

わっついず

 ここではクラアントを利用したサーバーからサーバー専用プログラム「Battlefield 2142 Dedicated Server」を利用したサーバー構築まで、それぞれの設定について書いていきたいと思います。都合上Windows版に基づいた説明になるので、Linuxユーザーは適宜読み替えてください。
クライアントのメニューから作れるローカルサーバーはスルーの方向。

サーバー立てるとなにができるの

チケット、試合時間の変更、カスタムマップの導入、パスワードによる入室鯖制限、サーバーファイル書き換えによるmodもどきなど。

クライアントとサーバーの差違

「Battlefield 2142 Dedicated Server」はクライアントと以下のような差があります。

  • クライアント機能無し
  • 複数起動可能
  • BF2142 Server Launcher 付属 (サーバーファイル簡易設定ソフト)
  • BF2142 Voip Server 付属 (VoIPサーバープログラム)
  • adminutils (rconなど) 付属

準備編

入手

 製品版クライアントは省略、demoクライアントは公式及び4gamersなどそこら辺に転がっています。
サーバーはパッチ毎にWindows版とLinux版がリリースされます(demoはWindowsのみ?)。
製品版(v1.50)
公式(低速) http://largedownloads.ea.com/pub/patches/BF2142/
filefront http://battlefield2.filefront.com/files/Battlefield_2142/Official/Server_Files;8559
gamershell http://www.gamershell.com/pc/battlefield_2142/
これらからそれっぽいファイルを引っ張ってきてください。
demo用サーバー
filefront http://battlefield2.filefront.com/file/Battlefield_2142_Demo_Dedicated_Server;70804
gamershell demo http://www.gamershell.com/download_15872.shtml

必要スペック

 BF2142がまともに動くようなPCなら大体OK。ただし、サーバーを起動したPCでクライアントも起動すると相応に負荷がかかるので注意。
負荷が高まるとサーバーがクラッシュしやすくなるという話があるので、安定性の観点からはサーバー専用機にしておくのがお勧めです。

微妙に更新されていない節のあるサーバー専用プログラムの推奨環境は以下の表を参照のこと。

LINUX
モードCPUクロックメモり
最小16人cq1 Ghz256 Mb
推奨64人cq3 Ghz. For AMD Athlon 64 CPU: 3500+ (2.2 Ghz)2 Gb
推奨48人ti3.6 Ghz. For AMD Athlon 64 CPU: 4800+2 Gb
最適※64人cqAMD Athlon 64 4800+ or 3.6GHz Xeon物理CPU毎に2Gb
最適※48人tiAMD Athlon 64 4800+ or 3.8GHz Xeon物理CPU毎に2Gb
WINDOWS
最小16人cq1 Ghz384 Mb
推奨64人cq3 Ghz. For AMD Athlon 64 CPU: 3500+ (2.2 Ghz)2 Gb
推奨48人ti3.6 Ghz. For AMD Athlon 64 CPU: 4800+2 Gb
最適※64人cqAMD Athlon 64 4800+ or 3.66GHz Xeon.物理CPU毎に2Gb
最適※48人tiAMD Athlon 64 4800+ or 3.8GHz Xeon.性的CPU毎に2Gb

※P4系のHyperthreading は disabled にせよとのこと。

一つのPCで複数のサーバープログラムを動かす状況以外、マルチコアの恩恵はお察し下さい。

回線の条件

 説明書曰く、必要帯域:2.5Mbit/s 推奨帯域:5Mbit/s
サーバーからクライアントへの流れが多いため、下り速度よりも上り速度が重要です。
BF1942では、一人当たり50-80kbps程度を必要とし、16人ならば1280kbps、32人ならば2560kbps、64人では5120kbpsの上り回線が必要となります。(2142は一人当たり100kbps ガンシップで飛ぶと100kbpsを超えます。)

使用するポート

外部に公開する必要のあるポートは以下の如し。Firewallとルーターの設定を確認のこと。

プロトコルポート
UDP/TCP29900
TCP80
TCP4711
UDP27901
UDP1500-4999
UDP/TCP1024-1124
UDP/TCP27900
UDP17567
UDP55123-55125
UDP/TCP18000
UDP/TCP18300

起動方法

 クライアントであれば起動オプションに「+dedicated 1」をつけて実行、
サーバーならば「BF2142_w32ded.exe」を実行でサーバーが起動し、操作用コンソールが表示されます。起動後はこのコンソールを通じてサーバーの管理を行います。
しかし起動中には設定できないコマンドが幾つかあるので、大体の場合事前に設定ファイルを編集しておく必要があります。

操作
 起動するとコンソールが表示されます。タブキーによる補完機能、カーソルキー上下でのヒストリ機能があり、文字列以外は引っかかる事無く入力できるでしょう。コマンドが補完された状態でさらにタブキーを押すことにより、引数の型と返値の型が表示されます。

終了方法
コンソールでコマンド「exit」を実行すると終了します。

Log
 サーバーの起動毎、mods\bf2142\Logs\以下に簡単なラウンドのログが作成されます。
ファイル名はBfLog_<PC name>_<yyyy>_<mm>_<dd>_<hh>_<mm>_<ss>_server.logとなります。
内容はチーム移動、死亡、spawn、乗車情報など。

起動オプション

クラアントとサーバー共に通用。
設定ファイル系統の指定以外は設定ファイル内で行う方が無難。

オプション引数初期値説明or備考
+dedicated<bool>0サーバーモードで起動するかの有無(クライアントのみ)。
+config<configFilePath>mods\bf2142\settings\ServerSettings.conサーバー設定ファイルの指定。
+mapList<mapListFilePath>mods\bf2142\settings\maplist.con回すマップリストの指定。
+lowPriorityプロセスの優先度を低にする。
+loadLevel<mapName読み込むマップ名。
+maxPlayer<num>接続人数。
+gameMode<gameMode>
+modPath<modDir>mods/bf2142modサーバーを立てる場合に使用。
+ranked<bool>snapshotをGamespyに送るか否か。
+port<port>17567
+pbPath<punkBusterPath>{install_dir/pb}

dedicated、config、mapList以外はconfigFile内で設定可能。

+type<bool>0ランクサーバーか否かを指定
+provider<your provider name>
+region<国名を指定>不明

※指定されたmapListFileが空だと起動しません。
環境変数もどき
サーバーオプションでパス指定する時、文字列「@HOME@」はMy Docments以下にあるBF2142のプロファイルフォルダに置き換えられます。

C:\Documents and Settings\USERNAME\My Documents\Battlefield 2142

BF2142ServerLauncher

 BF2142ServerLauncher(以降Launcher)は「Battlefield 2142 Dedicated Server」付属の使ったサーバー設定支援ツールです。
複数の設定ファイルを切り替えて容易に管理することが出来ますが、細かい設定を行うならばconfigFileを直接編集する必要があります。

初回は左下のプラス記号をクリックして名前を入力すると通常以下の位置に設定ファイルが作成されます。

C:\Documents and Settings\USER_NAME\My Documents\Battlefield 2142\ServerConfigs

注意事項
 configFile読み込み時、Launcherで設定できない項目は無視され、保存もされません。
設定ファイルをサーバーに渡して起動する時点で既に削られるようなので注意。
直接編集したconfigFileはLauncherで扱わないのが無難でしょう。

例:configFile内の行「MapList.append belgrade gpm_cq 16」の第三引数「16」はファイル読み込み時に無視される。

どうでも良いこと
 チェックボックスは灰色の四角が1、白い四角が0を表します。

configFileとコンソールで使うコマンド

書式説明
 <>で囲まれた引数は省略不可、[]で囲まれた引数は省略可能。
引数が省略できるコマンドで引数を省略した場合、大体は現在の設定を表示します。
引数の型は bool, int, string, float の四つですが、便宜上一部内容に合わせてURL, num, IPなどと言い換えます。
文字列を空にしたいときや半角スペースが入る場合はダブルクォーテーション「""」でくくる必要があります。
svで始まるコマンドは通常設定ファイルに記述されるもので、起動中コンソール上から動的に変更できない項目を含みます。

*.saveの注意
 *.saveで保存されるのはそのセクションの範囲のみです。
sv.saveを行うとconfigFile内にあるsv.*以外の行は削除されます。

sv. ~サーバーの基本動作~

 主にconfigFileに記述されることの多いセクションで、サーバー起動時またはラウンド開始時に適応される。稼動中変更できない物は出来るだけ説明文の末尾に「※」をつけた。

sv.configFile<configFile>configFileを指定。引数無しで現在のconfigFileを表示する。
sv.loadconfigFileから設定を読み込む。稼動中に変更できない項目は適応されない。
sv.saveconfigFileを作成または上書きする。

公開とネットワーク設定

sv.serverName[string]公開するサーバー名。クライアントのサーバー一覧からは30文字までしか見えない。空欄の場合、「Battlefield 2142 <PC名>」という書式になる。
sv.password[string]おなじみパスワード制限。※
sv.welcomeMessage[string]ロード画面で表示されるサーバー説明。
sv.communityLogoURL[URL]ロート画面で表示する画像のURL。
sv.internet[bool]サーバーを公開するか否か。0でローカルサーバー。※
sv.bandwidthChoke[Kbps]サーバーが使用できる帯域。回線資源管理機構。
sv.serverIP[IP]公開するサーバーのIP。※
sv.serverPort[Port]公開するサーバーのポート ※
sv.interfaceIP[IP]使用するイーサネットボードのIP。設定が間違っている場合、サーバーは起動しない。
sv.gameSpyPort[Port]gameSpyが受信に使用するポートを指定。
sv.maxConnectionType[string]指定キーワード以下の接続のみを許可する。標準では文字列「CTLanT1」。
sv.allowNATNegotiation[bool]NAT(Network Adress Translation)による接続を許可するか否か。
sv.punkBuster[bool]PunkBusterを使用するか否か。※
sv.customMapURL[URL]接続者がサーバーのマップを持っていない場合に誘導されるURL。

人数と制限

sv.maxPlayers[num]サーバー最大収容人数。※
sv.numReservedSlots[num]予約スロットの数。後述のreserveSlot.参照のこと。※
sv.scoreLimit[int]一ラウンドで取得可能なスコアの上限を実数で指定。0で無制限。
sv.maxRank[bool]ランクサーバーであるとき、ランク制限を行うか否か。接続できるランクは11まで。11 = Sergeant Silver = 軍曹(銀) = 総スコア2850未満。※
sv.useGlobalRank[bool]ゲーム中、プレーヤーのランクを表示するか否か。ランクサーバーは常にon。
sv.useGlobalUnlocks[bool]プレーヤーのunlockアイテムの使用を許すか否か。ランクサーバーは常にon。
sv.minUnlockLevel[int]無条件でint段目までunlockされる。が、現在は0か1のみ。※
sv.maxUnlockLevel[int]int段以上のunlockを制限する。-1で無制限。※

ラウンドと時間

sv.ticketRatio[int]チケット倍率。チケット自体の上限は9999。
sv.timeLimit[second]一ラウンドの時間制限。稼働中の指定は次ラウンドから適応。
sv.roundsPerMap[int]一マップに付き何ラウンドするか。稼働中の指定は次ラウンドから適応。
sv.autoBalanceTeam[bool]オートバランスの有無。
sv.teamRatioPercent[int]チームの人数比が設定パーセントを割るまで強制チーム移動を抑止する。
sv.numPlayersNeededToStart[num]ラウンド開始に必要な人数。稼働中でも更新可能。
sv.notEnoughPlayersRestartDelay[second]ラウンド開始に必要な人数がそろってから、何秒後にRestartするか。
sv.startDelay[second]サーバーのマップロード後、ラウンドを開始するまでの秒。
sv.endDelay[second]試合終了後、次のマップをロードするまでの時間。
sv.endOfRoundDelay[second]次のラウンドに移るまでの時間。
sv.timeBeforeRestartMap[second]Restartコマンド後、実際にRestartするまでの猶予秒。

ゲームのバランス

sv.spawnTime[second]負傷又は死亡後、リスポン可能になるまでの秒。
sv.manDownTime[second]負傷後死亡するまでの秒。負傷中はspawnTimeがきてもリスポンすることは出来ない。
sv.hitIndicator[bool]攻撃命中時に照準の色を変化させるか否か。
sv.allowTitanMovement[bool]Titanの移動を許可するか否か。
sv.botSkill[float]coopのbotレベル。範囲は0.0~1.0。

カメラ

sv.allowFreeCam[bool]乗車時の第三者視点を許すか否か。
sv.allowNoseCam[bool]乗車時の前方視点を許すか否か。
sv.allowExternalViews[bool]乗車時の定点視点を許すか否か。
sv.allowSpectators[bool]ゲーム開始時のカメラ移動を許すか否か。

FFと投票

sv.friendlyFireWithMines[bool]地雷に敵味方認識をさせるかどうか。
sv.soldierFrendlyFire[int]味方兵士への実弾ダメージを何パーセントに減らすか。
sv.soldierSplashFrendlyFire[int]味方兵士へのスプラッシュダメージ(手榴弾やロケットなど)を何パーセント通すか。
sv.vehicleFrendlyFire[int]味方兵器への実弾ダメージを何パーセントに減らすか。
sv.vehicleSplashFriendlyFire[int]味方兵器へのスプラッシュダメージを何パーセントに減らすか。
sv.votingEnable[int]投票可能にするか否か。
sv.voteTime[second]投票受付時間。
sv.minPlayersForVoting[num]投票を行う最低必要人数
sv.tkPunishEnable[bool]TK時にPunishing選択を出すか否か。
sv.tkPunishByDefault[bool]TKに対してPageUpDownをしなかった場合に行われる措置。
sv.tkNumPunishToKick[int]Punish何回でkickされるか。
sv.radioSpamInterval[second]スパム判断を行う期間。
sv.radioMaxSpamFlagCount[int]期間中に何回発言したらラジオスパムと判断するか。連続発言で無く、期間中の回数であることに注意。
sv.radioBlockedDurationTime[second]スパム者の発言停止時間。

VoIP

後述のRemote VoIP Serverも参照のこと。

sv.voipEnable[bool]VoIPの使用。
sv.voipQuality[int]音声の質。低 1~10 高。
sv.voipServerRemote[bool]VoIP Serverを別個に立てる。
sv.voipServerRemoteIP[IP]VoIP ServerのIPを指定する。
sv.voipServerPort[Port]VoIP ServerのPortを指定する。
sv.voipBFCliantPort[Port]接続するクライアントが使用するポートを指定する。
sv.voipBFServerPort[Port]サーバーがVoIP Serverと通信するポートを指定する。
sv.voipSharedPassword[string]VoIP Serverを使うためのパスワード。

バトルレコーダー

sv.autoRecord[bool]バトルレコーダーによる記録をするか否か。
sv.autoDemoHook[string]autoRecordがonの際、毎ラウンド終了時に実行されるPythonスクリプト。標準ではadminutils/demo/rotate_demo.pyが使用される。
sv.demoIndexURL[URL]クライアントがdemoFileの一覧表を取得するURL。※情報求む。
sv.demoDownloadURL[URL]クライアントがdemoをダウンロードするURL。※情報求む
sv.demoQuality[int]demoの記録精度を指定する。標準では1。低 1~ 10 高。精度を上げると記録時の負荷と容量が増加する。

その他

sv.adminScript[string]起動時に実行するpythonスクリプトを指定。ファイルはadmin\以下にあると見なされ、初期値は「default」。拡張子は省略可能。
sv.sponsorText[strong]詳細不明。「sv.welcomeMessage」に変更され廃止。
sv.sponsorLogoURL[URL]詳細不明。「sv.communityLogoURL」に変更され廃止。

Ranked server三点セット
コンソールからの入力不可。後述の「Ranked Server」の項参照のこと。

sv.provider<string>
sv.region<string>
sv.type<bool>

mapList. ~回る世界とマップ~

maplist.configFile<MapListFile>MapListFileを指定。引数無しで現在のconfigFileを表示する。
maplist.loadMapListFileをロードする。MapListFileが存在しない場合、MapListは空になる。
maplist.saveMapListFileを作成又は上書きする。
maplist.listMapListを表示する。左から順に割り振られたMapID、map name、game mode、size。
maplist.currentMap現在稼働中のマップIDを表示する。
maplist.mapCountMapList内のマップ数をカウントする。
maplist.append<map name> <game mode> [size]MapList末尾にMapを追加する。size指定がない場合、サーバー収容人数が参照される。
maplist.insert<map name> <game mode> [size]指定されたIDの上にMapを追加する。
maplist.remove<MapID>指定したMapIDを削除する。番号は上にシフトするので欠番は出ない。
maplist.clearMapListを空にする。

<map name>は mods\bf2142\Levels\ 以下のフォルダ名を入力し、

<game mode>は「gpm_cq」「gpm_ti」「gpm_coop」「gmp_sl」の四つから選び、順にコンクエスト、タイタン、coop、アサルトラインを意味します。
マップとゲームモードの組み合わせはマップに依存。

<game mode>の実体はmods\bf2142\python\game\gamemodes\にあります。

マップ名map namegame modesize
Shuhia Taibashuhia_taibagpm_ti, gpm_cq16, 32, 64
Minskminskgpm_ti, gpm_cq16, 32, 64
Suez Canalsuez_canalgpm_ti, gpm_cq, gpm_coop16, 32, 64
Verdunverdungpm_ti, gpm_cq, gpm_coop16, 32, 64
Camp Gibraltarcamp_gibraltargpm_cq16, 32
Tunis Harbortunis_harborgpm_cq16, 32
Sidi Power Plantsidi_power_plantgpm_ti, gpm_cq, gpm_coop16, 32, 64
Belgradebelgradegpm_cq, gpm_coop16, 32
Fall of Berlinfall_of_berlingpm_cq, gpm_coop16, 32, 64
Cerbere Landingcerbere_landinggpm_cq, gpm_coop16, 32
Booster Pack 1 Maps
Port Bavariaport_bavariagpm_sl, gpm_ti16, 32, 64
Bridge at Remagenbridge_at_remagengpm_sl, gpm_ti16, 32, 64
Liberation of Leipzigliberation_of_leipziggpm_sl16, 32, 64

admin. ~起動中の管理者のお仕事~

admin.listPlayers現在接続しているプレーヤー一覧を表示する。左から割り振られたplayerID、兵士名、接続元IPとポート。
admin.currentLevel現在のマップをIDで表示する。mapList.currentMapに同じ。
admin.restartMap現在のラウンドを中断し、マップをrestartする。
admin.nextLevel<MapID>次ラウンドのマップをMapIDで指定する。MapListには手を加えない。引数無しの場合は次のMapIDを表示する。
admin.runLevel<map name> <game mode> <size>現在のラウンドを中断し、指定したマップへ切り替える。指定したマップはMapList末尾に追加される。書式はmaplist.appendと同じだが、<size>が必須。

admin. ~BABANBABANBANBAN~

admin.kickPlayer<playerID>サーバーからキックするIDを指定します。
admin.banPlayer<playerID> [timeout]IDのIPアドレスを元に遮断します。
admin.banPlayerKey<playerID> [timeout]IDのCD-Keyハッシュを元に遮断します。
admin.addAddressToBanList<IP address> [timeout]指定したIPアドレスを遮断します。
admin.addKeyToBanList<CD key hash> [timeout]指定したCD以下略
admin.removeAddressFromBanList<IP>指定したIPアドレスをBanListから削除します。
admin.removeKeyFromBanList<CD key hash>指定したCD-KeyハッシュをBanListから削除します。
admin.clearBanListBanListをクリアします。
admin.listBannedAddressesBanList入りしているIPアドレスと遮断時間を表示します。
admin.listBannedKeysBanList入りしている略と遮断時間を表示します。

 ユーザーの接続をその時のみ遮断するのがKick、規定した秒又は永続的に接続を許可しないのがBANとなります。
プレーヤーのIPアドレス或いはCD key hashを元に遮断を行い、遮断時間が尽きるかリストから削除するまでmods\bf2142\settings\banlist.conに記録されます。

<playerID> admin.listPlayersで表示される兵士名左の数字。
[timeout] BAN期限を秒かキーワードで指定します。省略又は「Perm」で永続、「round」でそのラウンドのみ。
秒数を指定した場合、banlist.conにはセミコロンに続く「1970/1/1を基点とした現時点までの秒数」+「指定した秒数」を保存します。
例:1970-1-1~2007-1-1の秒数 = (365日*37年+9閏日)*24時間*60分*60秒 = :1167609600
ロード中のプレーヤーlistPlayersに載るのでBan選択できますが、「ゲームに参加」を押す前だとBanList入りはしても次のラウンドまでKickされません。※検証求む

game. ~インゲーム~

game.crashAlt+F4のようなサーバーを強制終了するコマンド。単体ではまず使わない。
game.sayAll<string>全体チャットチャンネルに発言する。サーバー管理者の発言は緑文字で表示される。単品では以下略。
game.sayTeam<int> <string>チームチャットチャンネルに発言する。intはマップファイル内のコマンド「gameLogic.setTeamName <int> <string>」の値が参照され、通常は1=PAC 2=EU。
game.lockFpsfpsに上限を設けるクライアント用の設定。接続しているクライアントのfpsが下がるわけではない。

reservedSlots. ~予約と注文~

reservedSlots.configFile[reservedList]reservedListを指定する。標準ではmods\bf2142\settings\reservedSlots.conが指定されている。
reservedSlots.savereservedListを作成又は上書きする。
reservedSlots.loadreservedListの内容を読み込む。
reservedSlots.list現在の予約兵士名を表示する。
reservedSlots.addNick<string>予約兵士名を入力する。
reservedSlots.removeNick<string>予(略)を削除する。
reservedSlots.clear予約表のクリア。

controlMap. ~設定に関するエトセトラ~

クライアント向けの設定のような気がするので別機会にパスします。

controlMap.create<string>
controlMap.setActive
controlMap.setYawFactor
controlMap.setPitchFactor
その他色々

SettingManager. ~変数よこんにちは~

黙秘します。

SettingManager.stringSet<string> <string>
SettingManager.boolSet<string> <bool>
SettingManager.intSet<string> <int>
SettingManager.floatSet<string> <float>
SettingManager.U32Set<string>
SettingManager.StringGet<string>
SettingManager.boolGet<string>
SettingManager.floatGet<string>
SettingManager.U32Get<string>

demo. ~demoの時代とその生涯~

demo.recordDemo<demoFile>バトルレコードの録画を開始する。ファイルはmods\bf2142\Demos\以下に作成される。
demo.stopRecordingバトルレコードの録画を停止する。
demo.adjustDemoFov再生しているバトルレコーダーのFoV(Field of View:視野角)を変更するクライアント用コマンド。
demo.shotdownDemoバトルレコードの再生を停止するクライアント用コマンド。

その他

gameLogic.togglePause現在進行中のゲームにポーズをかける。
misc.getBuildNrサーバーのバージョンを表示します。
config.SetCurrentMod<string>使用するmodフォルダの指定。明示しなければ「bf2142」と見なされる。

その他のプログラム

Remote Console ~遠距離のエトセトラ~

準備
 Remote consoleを使い、遠隔PCからサーバーにコマンドを送ることが出来ます。
まず空のファイルadmin\default.cfgをサーバー機上に作成し、開けるポートとパスワードを下の書式で書き保存します。

port=4711
password=YourPassword

次にサーバーのconfigFile内で「sv.adminScript」の引数が「"default"」かを確認し、起動すればサーバー側の準備は完了です。

接続の時
 遠隔PCにて
adminutils\rcon\remoteconsole.exeまたは
adminutils\rcon\remoteconsole.pyに引数つけ、コマンドプロンプトから起動します。
起動引数:「remoteconsole.exe -h <IP> -p <Port>
引数がない場合は「-h loaclhost -p 4711」として扱われます。
接続に成功した場合はパスワードの入力を求められ、ログインの後にrcon>と表示されます。

remoteconsole.exe -h loaclhost -p 4711
Connecting to localhost, port 4711..
Password:
rcon>

rcon上のコマンド

  • users
    サーバーへ接続しているrcon利用者を表示します。
  • exec <command name>
    サーバーへコマンドを送信します。<command name>をコンソールコマンドに置き換えて下さい。例:「rcon exec admin.kickPlayer 3」

Remote VoIP Server ~光通信の軌跡~

 Battlefield 2142 Dediacted ServerはRemote VoIP Server(以降RVS)を含んでおり、他のCPUやPCリソースを使うことでサーバーの負荷分散を行えます。
RVSは実行ファイル「BF2142VoipServer_w32ded.exe」と設定ファイル「voip.con」の二つから成ります。
voip.conは以下の書式の行で構成され、複数のサーバーを受け入れ可能です。
<port> <password> <game server interface IP>

<password>は「no_password」で省略可。※検証求む
例:

55125 no_password 123.123.123.123
55126 no_password 123.123.123.124
55127 no_password 123.123.123.125

RVCを利用するサーバーはvoip.conの内容にあった以下の設定が必要です。

sv.voipServerRemote 1
sv.voipServerRemoteIP [IP]
sv.voipServerPort [Port]
sv.voipSharedPassword [string]

Battle Recorder ~その深き業について~

 バトルレコーダーは二つの要素から成っています。一つはconfigFileによるサーバーの設定、もう一つは「sv.autoDemoHook」で指定されるPythonスクリプトファイルです。
ここでは「sv.autoDemoHook」のデフォルトで呼び出される「adminutils/demo/rotate_demo.py」が読み込む設定ファイル「auto_rotate.cfg」の書式を説明します。

  • file_limit = <value>
    サーバーが保持するdemoFileの数を指定する。初期値30。
  • target_root = <local directory path>
    demoFileの保存位置を変えている場合、そのパスを指定する。
  • use_ftp = <bool>
    FTPによるdemoFile移動をするか否か。
  • ftp_server = <server URL or IP>
    使用するFTPサーバーの指定。
  • ftp_user = <FTP login username>
    使用するFTPサーバーのユーザー名。
  • ftp_password = <password>
    使用するFTPサーバーのパスワード。

尚、BFクライアントからのdemoFileダウンロードはhttpのみが使用可能です。

Ranked Server ~月々たったの500K¥!~

ランクサーバーって野鯖とどう違うのよ
 ランクサーバーはEAと契約を結び、試合中に所得したポイントをマスターサーバーに渡すことが許可されているサーバーです。EAJは関わらないとかどうとか。
ランクシステム以外は設定に縛りがあるくらいしか一般のサーバーとの違いはありません。
手続きと支払い
 割愛。経験者求む。
ランクサーバーの設定

  • sv.provider <string>
    プロバイダー(謎)を指定します。
  • sv.region <string>
    サーバーの登録国を二文字の国名コード(ISO3166?)で指定します。
  • sv.type <bool>
    ランクサーバーならば0、非ランクサーバーは1。 ※検証求む。
  • sv.punkBuster <bool>
    ランクサーバーならばpunkBusterは必須となる。
  • sv.maxRank
    参加可能ランクを制限するか否か。

制限

  • ランクサーバーの時計が正確でないと、ランクシステムが正常に作動しない事がある。
  • 公式マップ以外を運用することは出来ない。
  • ゲームモードでcoopを指定することは出来ない。
    指定した場合、coopマップは無視される。

ランクサーバーであるとき、一部の値は固定され操作できない。

sv.internet 1
sv.password ""
sv.punkBuster 1
sv.useGlobalRank 1
sv.useGlobalUnlocks 1
sv.minUnlockLevel 0
sv.maxUnlockLevel -1
sv.spawnTime 15
sv.manDownTime 15
sv.ticketRatio 100
sv.timeLimit 0
sv.allowSpectators 0
sv.numPlayersNeededToStart <num>
(※収容人数 16人で「6」、32人で「6」、48/64で「8」)

参考資料

Battlefield 2142 dedicate server付属のReadmeServer.txt。
BF2142ServerLauncher.exeの説明文(実体はmods\bf2142\settings\ServerSettingsDesc.csv) ※BF2のままの説明有り。

コメント

ご意見ご感想修正追記変更削除報告はこちら。

  • 疲れた orz -- 2007-06-12 (火) 02:19:35
  • 乙 -- 2007-06-12 (火) 09:42:15
  • GJ -- 2007-06-12 (火) 12:49:47
  • よく調べたなっつーか、ここまで細かい設定調べてる人って、男尻とか秘密基地クラスの管理人ぐらいしかいないんじゃないか? -- 2007-06-12 (火) 20:55:02
  • 一部を修正、ランクサーバーについてを追加。まだ終わらない恐怖。 -- 2007-06-12 (火) 22:48:53
  • 回線速度ってFTTHホームでどれくらいまでいけるんだろうか? -- 2007-06-13 (水) 15:54:01
  • auto_rotate.cfgについてを追加。野鯖が増えますように。 -- 2007-06-14 (木) 00:06:53
  • ↑2 自己レス よく見ると書いてありましたね;参考にしてみます -- 2007-06-14 (木) 13:50:20
  • お金取られるの?月500kって本当ですか? -- 2007-06-24 (日) 12:54:14
  • とられます。ランクサーバー管理組織が。ランクサーバーの契約情報募集中。後少々追記。 -- 2007-06-24 (日) 19:03:54
  • BABANBABANBANBAN~ (∵゚ё゚∵) -- 2007-06-24 (日) 23:10:41

  • 500K¥ 50まんえん???? たっけー -- 2007-07-11 (水) 09:14:27
  • 50万もするのかよ、 -- 2007-07-24 (火) 16:37:45
  • 現行フラグシップPC組めるがな -- 2007-07-26 (木) 22:47:06
  • Branzoneって所で64人鯖がUS$128.00、日本円にしたら1万5000円程度。16人鯖だったらUS$32.00、日本円にして4000円。 -- 2007-07-27 (金) 19:37:25
  • demo鯖も立てられるの? -- 2007-10-20 (土) 15:18:04
  • 表組みメインにしてみた。箇条書きとどっちがよいかね。 -- 2007-11-21 (水) 18:04:06
  • 頁の上1/5位を微妙に更新。 -- 2008-04-26 (土) 16:36:50
  • 秘密基地GAMESのhanatyanに会う機会があったので聞いてみた、ランク鯖実は無料! -- 2008-08-24 (日) 16:17:52