BF1942サーバのたて方(その3)
※その2からの続きです。
7章 コマンド入力によるサーバ管理機能ついて
サーバをたてたら、常に管理できる状態にしておかなければなりません。
BF1942サーバをコントロールする方法は、大別すると以下の2通りの方法があります。
BF1942サーバをコントロールする方法は、大別すると以下の2通りの方法があります。
- BF1942サーバ(BF1942_w32ded.exe)に対して、コマンドラインから直接命令を行う。
- BFSMを操作して、BFSMにBF1942サーバを操作させる。
前者は、コンソールコマンドというものを使用します。
コンソールコマンドというのはBF1942サーバ(BF1942_w32ded.exe)が命令として認識する命令文のことです。
この命令文はコンソールという環境に入力します。
これにはサーバコンソール、リモートコンソール、ゲーム内コンソールの3種類があります。
コンソールコマンドというのはBF1942サーバ(BF1942_w32ded.exe)が命令として認識する命令文のことです。
この命令文はコンソールという環境に入力します。
これにはサーバコンソール、リモートコンソール、ゲーム内コンソールの3種類があります。
リモートコンソールを使用するには、ショートカットをデスクトップなどに作成してください。
そしてプロパティーを開いて、リンク先を以下の書式で編集します。
"C:\Program Files\EA GAMES\Battlefield 1942\AdminTool\RemoteConsole.exe" -u [ユーザ名] -p [パスワード] -port 4711 [サーバIP]
このショートカットからリモートコンソールを起動すれば、BF1942サーバに自動的に接続されます。
そしてプロパティーを開いて、リンク先を以下の書式で編集します。
"C:\Program Files\EA GAMES\Battlefield 1942\AdminTool\RemoteConsole.exe" -u [ユーザ名] -p [パスワード] -port 4711 [サーバIP]
このショートカットからリモートコンソールを起動すれば、BF1942サーバに自動的に接続されます。
上の画像に示した入力欄(コマンドライン)にコンソールコマンドを入力すると、BF1942サーバを操作することができます。
後者は、BFSMを操作することで、間接的にBFSMにコンソールコマンドをサーバコンソールに対して出力させ、その結果としてBF1942サーバ(BF1942_w32ded.exe)を操作する方法です。
BFSMを操作する具体的な方法には、
BFSMを操作する具体的な方法には、
- サーバPCのBFSMウィンドウを操作する
- 別なPCからBFRM(リモコン)を使用し、BFSMを遠隔操作する
- BFSMコマンドを入力し、BFSMをゲーム内から操作する
の3つのやり方があります。
一応、両者とも8-9章で機能を解説していきますが、そもそも「サーバ管理者を面倒なコマンドの入力作業から開放する」ためにBFSMというツールが開発され、その利便性からBFSMを導入しているわけですから、現在は強いて8章のコンソールコマンドで管理を行う必要はありません。
ゲームプレイ中に管理を行う必要があるならば、9章で解説するBFSMコマンドを使用することをお勧めします。
ゲームプレイ中に管理を行う必要があるならば、9章で解説するBFSMコマンドを使用することをお勧めします。
コマンドを理解することは、サーバを管理するうえで上級テクニック(ゲーム内からサーバを操作したり、コマンド定義ファイルのカスタマイズを行う等)を使用する際に必要となります。
OSでいえば、コマンド入力のDOSがGUI操作のWindowsに進化したのと同様で、初心者に優しい利点がありますが、自分でプログラムを組んだりするときに改めてDOSの知識が必要になるのと似ています。
OSでいえば、コマンド入力のDOSがGUI操作のWindowsに進化したのと同様で、初心者に優しい利点がありますが、自分でプログラムを組んだりするときに改めてDOSの知識が必要になるのと似ています。
8章コンソールコマンドについて
この章ではコンソールコマンドについて解説します。
7章で述べたとおり、コンソールに入力することでサーバをコントロールすることができます。
7章で述べたとおり、コンソールに入力することでサーバをコントロールすることができます。
なお、現在は無理してコンソールコマンドを使用する必要性は全くありません。
サーバをコントロールしたいなら、5章で解説したBFSMの操作で行えば良いのです。
そしてゲームプレイ中にもサーバをコントロールする必要があるなら、コンソールコマンドを使用するよりも、9章で解説するBFSMコマンドを使用するほうがはるかに便利です。
サーバをコントロールしたいなら、5章で解説したBFSMの操作で行えば良いのです。
そしてゲームプレイ中にもサーバをコントロールする必要があるなら、コンソールコマンドを使用するよりも、9章で解説するBFSMコマンドを使用するほうがはるかに便利です。
admin.allowNoseCam 0/1
- ノーズカメラを有効/無効にします。
admin.autoBalanceTeam 0/1
- オートバランスを有効/無効にします。
admin.banPlayer ID番号
- admin.banTimeで指定した期間、プレイヤーをIPアドレスでBANします。ID番号はgame.listPlayersで参照することができます。
admin.banPlayerOnTKKick 0/1
- 1にすると、TKが原因でキックされたプレイヤーをBANすることができます。デフォルトで0になっています。
admin.changeMap マップ名 ゲームモード MOD名
- 現在のラウンドを強制的に終わらせ、マップを変更することができます。なお、現在のマップ巡回予定はgame.listMapsで参照することができます。
admin.clearBanList
- BANリスト(BanList.con)の内容を消去します。
admin.delayBeforeStartingGame 0-100(秒)
- 新しいラウンドが開始するまでの秒数を設定することができます。
admin.disableRemoteAdmin
- ゲーム内コンソールからの管理機能を無効にします。
admin.disableRemoteConsole
- リモートコンソールからの管理機能を無効にします。
admin.enableKickPlayer 0/1
- 全体のキック投票を有効/無効にします。
admin.enableKickTeamPlayerVote 0/1
- チーム内のキック投票を有効/無効にします。
admin.enableMapVote 0/1
- マップ投票を有効/無効にします。
admin.enableRemoteAdmin パスワード
- ゲーム内コンソールからの管理機能を有効にします。ゲーム内コンソールからadmin系コマンドを入力する場合、最初にこのコマンドでパスワード認証する必要があります。
admin.execRemoteCommand コマンド
- ゲーム内コンソールからadmin系コマンドを入力する場合、この書式で入力する必要があります。仕様でスペースは2回以上使えないので、その場合はコマンドをダブルクオテーション記号("")でくくってください。(例)admin.execRemoteCommand "admin.banPlayerKey 64"
admin.enableRemoteConsole ユーザ名 パスワード リモートコンソールポート
- リモートコンソール、BFRMからの遠隔管理を有効にします。
admin.externalViews 0/1
- 乗り物の外部視点を有効/無効にします。
admin.getRemoteConsoleEnabled
- リモートコンソールでの管理機能が有効になっているか確認する場合に使用します。このコマンドを入力したとき、1と反応があれば有効、0と反応があれば無効に設定されています。
admin.kickBack 0.0-1.0
- 味方を攻撃(Friendry Fire)したときのダメージのキックバック量を設定します。
admin.kickBackOnSplash 0.0-1.0
- 味方を爆発するもので攻撃したときのダメージのキックバック量を設定します。
admin.kickPlayer ID番号
- プレイヤーのID番号を指定してキックすることができます。ID番号はgame.listPlayersコマンドで参照することができます。
admin.banPlayerKey ID番号
- プレイヤーの番号を指定してキーハッシュBANすることができます。キーハッシュはBanList.conに記録されます。
admin.addAddressToBanList IPアドレス 期間
admin.addKeyToBanList キーハッシュ 期間
admin.addKeyToBanList キーハッシュ 期間
- 入力したIPアドレス/キーハッシュをBANリストに登録します。期間はperm(無期限)、分単位の整数、round(現ラウンドのみ)、1970年1月1日からの期間で指定できます。
admin.removeKeyFromBanList キーハッシュ
- 入力したキーハッシュをBANリストから削除します。
admin.listBannedKeys
- BANリストに登録されているキーハッシュを表示します。
admin.listBannedAddress
- BANリストに登録されているIPアドレスを表示します。
admin.maxAllowedConnectionType 速度
- クライアントに割り当てる通信速度を指定します。速度の部分は、CTModem56Kbps、CTCable128Kbps、CTCable256Kbps、又はCTLanT1を入力します。
admin.nrOfTKToKick 値(初期状態=5)
- チームキルで処罰されたプレイヤーがキックされるまでの回数を指定します。
admin.removeAddressFromBanList IPアドレス
- BANリストから指定したIPアドレスを削除します。
admin.restartMap
- 現在のマップをリスタートします。なお、admin.timeBeforeRestartMapで指定した秒数後にマップは開始します。
admin.roundDelayBeforeStartingGame 0-100(秒)
- ラウンド間の時間間隔を指定します。
admin.runNextLevel
- 次のマップに切り替えます。なお、admin.timeBeforeRestartMapで指定した秒数後にマップが切り替わります。
admin.scoreLimit スコア数
- 指定したスコア数に達するとラウンドが終了します。CTFモードの旗の本数、TDMモードのチームスコアのことです。(0=無制限)
admin.setNextLevel マップ名 ゲームモード MOD名
- 現在のラウンドが終了してから始まる、次のマップを指定します。
admin.setNrOfRounds ラウンド数
- 同じマップを何回繰り返すかを指定します。
admin.setTicketRatio 0-1000
- マルチプレイゲームの開始時のチケットの量を百分率で指定します。
admin.solidierFFRatio 0-100
- 同一チームの兵士にダメージを与えた場合のキックバック量を百分率で指定します。
admin.solidierFFRatioOnSplash 0-100
- 同一チームの兵士に爆発でダメージを与えた場合のキックバック量を百分率で指定します。
admin.spawnDelayPenaltyForTK 値(デフォルト=1)
- チームキルを行ったプレイヤーに罰としてスポウン時間の遅延を与えます。設定した値はリスポンするまで待たなければならないスポウン間隔の回数となります。
admin.spawnWaveTime 0-30(秒)
- スポウンが可能となるまでの時間間隔を設定します。
admin.timeBeforeRestartMap 0-30(秒)
- admin.restartMapでマップリスタートをかけたときに実際にリスタートするまでの時間を設定します。
admin.timeLimit 0-120(分)
- 1ラウンドの制限時間を設定します。(0=無制限)
admin.timeToNextWave 1-30(秒)
- リスポン間隔を指定します。
admin.tkPunishMode 0-1(デフォルト=0)
- TKの処罰をデフォルトで行うか指定します。0はPunishモード、1はForgiveモードとなります。
admin.toggleGamePause
- ラウンド中にポーズをかけることができます。もう一度入力するとポーズが解除されます。
admin.vehicleFFRatio 0-100
- 同じチームの乗り物から発砲された場合に受けるダメージの割合を百分率で設定します。
admin.vehicleFFRatioOnSplash 0-100
- 同じチームの乗り物から発砲された場合に受ける爆発ダメージの割合を百分率で設定します。
admin.voteKickPlayerMajority 0.0-1.0
- プレイヤーのキック投票が成立するために必要な賛成票の割合を設定します。
admin.voteKickTeamPlayerMajority 0.0-1.0
- 同一チーム内のプレイヤーのキック投票が成立するために必要な賛成票の割合を設定します。
admin.voteMapMajority 0.0-1.0
- マップ変更投票が成立するために必要な賛成票の割合を設定します。
admin.votingTime 1-120(秒)
- 投票が締め切られるまでの時間を秒単位で設定します。
9章 BFSMコマンドについて
BFSMコマンドとは、8章のコンソールコマンドとは別のものであり、BFSMが命令として認識する命令文のことです。
ゲーム内の全体チャット入力欄(コンソール画面ではありません)から入力し、BFSMを操作することができます。
その結果としてBFSMが動作し、サーバを間接的に操作することができます。
ゲーム内の全体チャット入力欄(コンソール画面ではありません)から入力し、BFSMを操作することができます。
その結果としてBFSMが動作し、サーバを間接的に操作することができます。
8章で解説したコンソールコマンドは「サーバに直接命令を行う」ものであったのに対し、本章で解説するBFSMコマンドは「BFSMにサーバを操作させる」ものであるのが概念的に異なる点です。
(ややこしいですが、この概念は理解しておいたほうがいいです。このため若干タイムラグが発生することがあります。)
(ややこしいですが、この概念は理解しておいたほうがいいです。このため若干タイムラグが発生することがあります。)
ゲーム内で!nextmapというコマンドを目にしたことのある人は多いのではないでしょうか。
実は!nextmapという文字列は、BFSMコマンドの一種であり、唯一管理権限がなくても使用できるコマンドなのです。
実は!nextmapという文字列は、BFSMコマンドの一種であり、唯一管理権限がなくても使用できるコマンドなのです。
ゲーム内で全体チャットのプロンプトを表示し、BFSMコマンドを入力するだけで操作は完了します。
ゲームプレイ中でも管理がすばやく行えるので非常に利便性が高く、オペレーターにBFRMを導入させなくても良いという利点があります。
※仕様で、BFSMコマンドはマルチプレイのゲーム内でのみ使用でき、LAN内のゲームでは使用できません。
ゲームプレイ中でも管理がすばやく行えるので非常に利便性が高く、オペレーターにBFRMを導入させなくても良いという利点があります。
※仕様で、BFSMコマンドはマルチプレイのゲーム内でのみ使用でき、LAN内のゲームでは使用できません。
【サーバ側の設定】
(BFSMの導入が済んでいる状態で)
(BFSMの導入が済んでいる状態で)
- 所定の場所にBFSMに付属のPlayerMenu.conを入れていることを確認します。必要に応じてPlayerMenu.conをカスタム(定義の変更・追加を)しても良いです。
- BFSMのUsers欄にアカウントを作成し、オペレーター(管理権限を与えたいプレイヤー)のキーハッシュを関連付けます。
- オペレーターのアカウントに与えたい権限(MapsやPlayers欄の操作権限など)を設定します。
ゲーム内でBFSMコマンドを使用するだけの場合、管理権限を持ったプレイヤーかどうかの判別は、キーハッシュのみで行うのでパスワードは設定しなくても良いです。
BFRMも使用する場合、BFRMでログインするためのパスワードを設定する必要があります。
BFRMも使用する場合、BFRMでログインするためのパスワードを設定する必要があります。
【オペレーター(管理権限を与えられるプレイヤー)側の設定】
ゲーム内でBFSMコマンドを使用するだけならば、サーバ管理者に自分のキーハッシュと管理用アカウントを関連付けてもらいます。
ローカルでの作業は特に必要ありません。
BFRMも使用するならば、BFRMに付属のPlayerMenu.conを以下の場所に入れてください。
C:\Program Files\EA GAMES\Battlefield 1942\Mods\bf1942\Settings\
ゲーム内でBFSMコマンドを使用するだけならば、サーバ管理者に自分のキーハッシュと管理用アカウントを関連付けてもらいます。
ローカルでの作業は特に必要ありません。
BFRMも使用するならば、BFRMに付属のPlayerMenu.conを以下の場所に入れてください。
C:\Program Files\EA GAMES\Battlefield 1942\Mods\bf1942\Settings\
【BFSMコマンドの書式】
全体チャットプロンプトに以下の書式で入力するのが基本です。
!コマンド
!コマンド マップ名 ゲームモード MOD名
!コマンド プレイヤー名
!コマンド .ID番号
文頭に"!"を付加することでBFSMはコマンドと認識します。
全体チャットプロンプトに以下の書式で入力するのが基本です。
!コマンド
!コマンド マップ名 ゲームモード MOD名
!コマンド プレイヤー名
!コマンド .ID番号
文頭に"!"を付加することでBFSMはコマンドと認識します。
【基本コマンド一覧】
!change マップ名 ゲームモード MOD名
!change マップ名 ゲームモード MOD名
- 現在のラウンドを強制的に終わらせ、指定したマップに切り替えます。
マップ名‥そのマップのファイル名を入力する。El_Alamein.rfaならば、El_Alameinと入力します。
(拡張子の.rfaは不要、大文字小文字は気にしなくて良いです)
ゲームモード‥コンクエストはGPM_CQ、コープはGPM_COOP、チームデスマッチはGPM_TDM、オブジェクティブはGPM_OBJECTIVE。
(省略するとコンクエストになるようです)
MOD名‥ノーマルならばBF1942。
(省略するとノーマルのBF1942になるようです)
入力例 !change El_Alamein GPM_CQ bf1942
省略形 !change El_Alamein
(拡張子の.rfaは不要、大文字小文字は気にしなくて良いです)
ゲームモード‥コンクエストはGPM_CQ、コープはGPM_COOP、チームデスマッチはGPM_TDM、オブジェクティブはGPM_OBJECTIVE。
(省略するとコンクエストになるようです)
MOD名‥ノーマルならばBF1942。
(省略するとノーマルのBF1942になるようです)
入力例 !change El_Alamein GPM_CQ bf1942
省略形 !change El_Alamein
!setnext マップ名 ゲームモード MOD名
- 現在のラウンドが終了してから始まる次のマップを指定します。上記と同様に入力します。
!runnext
- 現在のラウンドを強制的に終わらせ、次のマップに切り替えます。サーバが不正終了した後、同じマップでは飽きる場合に便利です。
!restart
- 現在のラウンドを強制的に終わらせ、同じマップを再スタートします。所属チームとプレイヤーIDは変化しませんので、チームとIDをシャッフルしたい場合は同じマップに!chengeするほうが良いです。
!nextmap
- サーバメッセージに次のマップを表示します。それ以外は何もおきません。管理権限がなくても使える唯一の有名なコマンドです。
!kick プレイヤー
- 指定したプレイヤーをキックします。たとえば、ID32の"abc"というプレイヤーをキックする場合は!kick abcまたは!kick .32と入力します。abcという文字列を持つプレイヤーが複数いるとキックは行われません。@abcと入力するとabcの文字列をもつプレイヤーは全てキックされます。
!ban プレイヤー
- 指定したプレイヤーを無期限でBANします。たとえば、ID8のxyzというプレイヤーをBANする場合は!ban xyzまたは!ban .8と入力します。xyzという文字列を持つプレイヤーが複数いるとBANは行われません。@xyzと入力するとxyzの文字列をもつプレイヤーは全てBANされます。
!pause
- ポーズをかけます。もう一度入力するとポーズが解けます。厳密には、これはPlayerMenu.conで定義されたカスタムコマンドです。この要領で、使いたいコマンドを増やすことが可能です。カスタマイズには8章で解説したコンソールコマンドの知識が必要となります。
【カスタムコマンドについて】
PlayerMenu.conに定義されているコマンドとなります。これはサーバ側でカスタマイズする(追加定義をする)ことも可能です。
たとえば、プレイヤーを3日間BANするコマンドが、PlayerMenu.conを参照すると、
Ban player for 3 days|ban,259200,[b3days]
と定義されているので、!b3days プレイヤー名
または、!b3days .ID番号
と入力すれば、そのプレイヤーを3日間(259200秒間)のBANとすることが可能です。
PlayerMenu.conに定義されているコマンドとなります。これはサーバ側でカスタマイズする(追加定義をする)ことも可能です。
たとえば、プレイヤーを3日間BANするコマンドが、PlayerMenu.conを参照すると、
Ban player for 3 days|ban,259200,[b3days]
と定義されているので、!b3days プレイヤー名
または、!b3days .ID番号
と入力すれば、そのプレイヤーを3日間(259200秒間)のBANとすることが可能です。
他には
!b10min プレイヤー
!b10min プレイヤー
- 10分間BAN。
!b1day プレイヤー
- 1日間BAN。
!b1week プレイヤー
- 1週間BAN。
!b1month プレイヤー
- 1ヶ月間BAN。
などがあります。そのほかいろいろPlayerMenu.conに載ってるので参考にしてください。
10章 BF1942 Server FAQ
Q. サーバが落ちてしまったとき、自動的に再起動させるには?
A. BFSMにはサーバが何らかの理由で落ちたとき、自動で再起動する機能がついています。
BFSMのOptionボタンを押すと、次のような画面が出てきますので、Restart the server automaticallyにチェックを入れます。
これでBFSM側の設定は終わりです。
A. BFSMにはサーバが何らかの理由で落ちたとき、自動で再起動する機能がついています。
BFSMのOptionボタンを押すと、次のような画面が出てきますので、Restart the server automaticallyにチェックを入れます。
これでBFSM側の設定は終わりです。
しかし、WindowsXPではアプリケーションエラーが起きたときにダイアログが出てきて、これを閉じないとサーバが再起動してくれません。
そこでダイアログ自体がでてこないように設定してやります。
下の画像のように「コントロールパネル」-「システム」-「システムのプロパティ」-「詳細設定」-「エラー報告」を開き、「エラー報告を無効」にして、「重大なエラーが発生した場合は通知する」のチェックを外します。
これで設定は完了です。
そこでダイアログ自体がでてこないように設定してやります。
下の画像のように「コントロールパネル」-「システム」-「システムのプロパティ」-「詳細設定」-「エラー報告」を開き、「エラー報告を無効」にして、「重大なエラーが発生した場合は通知する」のチェックを外します。
これで設定は完了です。
Q. 複数のBF1942サーバをたてるには?
A. 複数のBF1942サーバを同時に立てる場合、2通りのやり方が考えられます。
A. 複数のBF1942サーバを同時に立てる場合、2通りのやり方が考えられます。
- 1ルーター下に複数のPCを接続する
- 1台のPCでサーバを多重起動する
いずれにしても使用するポートが重複するとうまく動作しません。
ひとつのサーバはデフォルトのままでいいですが、他のサーバはポートを変更する必要があります。
2つ目のポート設定の一例をあげときます。BFSMのServer欄から設定できます。
Game Port 14567→14568
Remote Console Port 4711→4712
GameSpy INET 23000→23001
GameSpy LAN 22000→22001
ASE Port 14690→14691
3つ以上のサーバをたてる場合も、同じ要領でポートを重複しないように設定してください。
ルーターのポート開放・変換設定も忘れずに行ってください。
ひとつのサーバはデフォルトのままでいいですが、他のサーバはポートを変更する必要があります。
2つ目のポート設定の一例をあげときます。BFSMのServer欄から設定できます。
Game Port 14567→14568
Remote Console Port 4711→4712
GameSpy INET 23000→23001
GameSpy LAN 22000→22001
ASE Port 14690→14691
3つ以上のサーバをたてる場合も、同じ要領でポートを重複しないように設定してください。
ルーターのポート開放・変換設定も忘れずに行ってください。
Q. BFRM(リモコン)で複数たてているサーバを操作したいです。
A. BFSMの使用するポートを重複しないようにしなければなりません。
デフォルトではBFSMは14667のポートを使用しています。
例として14668に変更する手順を紹介します。
A. BFSMの使用するポートを重複しないようにしなければなりません。
デフォルトではBFSMは14667のポートを使用しています。
例として14668に変更する手順を紹介します。
- 1.BFSMのショートカットをデスクトップなどに作ります。
- 2.ショートカットを右クリックして、プロパティを開きます。
- 3.「リンク先」の末尾に、(スペース)-port(スペース)14668を書き加えます。
↓こんな感じになります。
"C:\Program Files\EA GAMES\Battlefield 1942 Server\BFServerManager.exe" -port 14668
"C:\Program Files\EA GAMES\Battlefield 1942 Server\BFServerManager.exe" -port 14668
- 4.okを押してプロパティを閉じます。
- 5.このショートカットからBFSMを起動すれば、設定したポートで起動します。
Q.悪質なプレイヤーがいる(いた)のでBANしようと思うのですが、どこを調べたらいいのですか?
A.そのプレイヤーがまだサーバ内にいる場合は、BFSMのPlayers欄で該当するプレイヤーを右クリックし、Ban Player permanentlyを選んでください。
この操作で該当プレイヤーの名前、キーハッシュ、パンクバスターGUIDがBANリストに登録され、リアルタイムにBANすることができます。
すでにそのプレイヤーがいない場合は、サーバログを保存する設定にしていないと追跡不可能です。
サーバログといわれるものにはイベントログ、ステータスログ、そしてサーバ自体のログではありませんがBFSMログの3種類があります。
A.そのプレイヤーがまだサーバ内にいる場合は、BFSMのPlayers欄で該当するプレイヤーを右クリックし、Ban Player permanentlyを選んでください。
この操作で該当プレイヤーの名前、キーハッシュ、パンクバスターGUIDがBANリストに登録され、リアルタイムにBANすることができます。
すでにそのプレイヤーがいない場合は、サーバログを保存する設定にしていないと追跡不可能です。
サーバログといわれるものにはイベントログ、ステータスログ、そしてサーバ自体のログではありませんがBFSMログの3種類があります。
- イベントログは、サーバ動作を時系列にそって記録したものであり、全ての情報が入っています。いわゆる"落ち逃げ"したTKerのキーハッシュ検索など、ステータスログではわからないことも調べることができます。何でも調べることが出来ますが、情報量が膨大で欲しい情報を探しづらいのが欠点です。The Battlefield Analyzer等の解析ツール(再現ツール)があるので、それを使ってみるのもいいかもしれません。これを使うと任意のラウンド開始から終了までの各プレイヤーの位置取り、殺傷行為などを視覚的に把握することが出来るので、過去のTK行為を認定するのに役立ちます。
- ステータスログは、ゲーム内でマップが終了した時の各プレイヤーのスコア等を一覧表にしたものです。BF1942のイベントなどを開催して結果を発表するときにも使えそうです。ただし各プレイヤーのIPアドレス、キーハッシュ、パンクバスターGUIDも参照できるので、このまま掲載してはいけません。
- BFSMログは、BFSMの動作をログにしたものです。プレイヤーのチャットのログと、BFSMの自動管理(オートキックなど)のログなどを見ることが出来ます。
以上をまとめると、
- 現行犯の場合は、その場でBAN・KICKの処分を行う。
- 過去の場合は、まず最初にBFSMログを参照してトラブル発生時のチャットを探し、事実関係と時刻を把握する。続いてその時刻ころに行われていたマップのステータスログを参照して該当プレイヤーを探す。必要があれば、その時刻付近のイベントログを解析して該当プレイヤーの挙動を確認する。BFSMのBans欄に、ログから調べたデータ(プレイヤー名、IP、キーハッシュ、GUID)を入力してBANリストに登録する。
Q.BANされたプレイヤーがサーバに入れなくなる仕組みについて教えてください。
A.BF1942のBANには4種類あります。
A.BF1942のBANには4種類あります。
- IPアドレスによるBAN。プレイヤーのIPが変わると排除できなくなる欠点があります。過去のバージョンはこれしかありませんでした。いまでもメインに使っているのはデモ版くらいです。
- キーハッシュによるBAN。BF1942のシリアルナンバーを不可逆的に暗号化したキーハッシュというもので判別します。BF1942を買い直して新しいシリアルを使わない限りログインできなくなるので、効果が高いです。
- パンクバスターGUIDによるBAN。そのプレイヤーのPC構成を一意に暗号化したGUID(Global Unique Identifier)というもので判別します。別なPCを使用するか、GUIDが変化するくらい大幅にPC構成を変えない限りログインできなくなります。
- チートツール使用によるグローバル・パンクバスターBAN。これはゲームサーバ個別に行われるBANではなく、パンクバスターのマスターサーバのBANリストにGUIDが登録されます。パンクバスターが有効になっている全てのゲームサーバ(他のゲームも含めて)に入ることができなくなります。
サーバによっては複数の方式を同時に組み合わせている場合があるので、詳細はサーバ管理者に問い合わせないとわかりません。
多重にBANされている場合、某掲示板などでよく言われる「BF1942を買いなおし」したとしてもBANが解けないので、注意が必要です。
ある名前を使うと特定のサーバに入れなくなる場合、それはBANではなく、そのサーバの禁止ワードを使用したために自動キックされている可能性が高いです。
(現在のバージョンではプレイヤー名だけでBANされることはない)
多重にBANされている場合、某掲示板などでよく言われる「BF1942を買いなおし」したとしてもBANが解けないので、注意が必要です。
ある名前を使うと特定のサーバに入れなくなる場合、それはBANではなく、そのサーバの禁止ワードを使用したために自動キックされている可能性が高いです。
(現在のバージョンではプレイヤー名だけでBANされることはない)
Q.BANリストについて詳しく教えてください。
A.BANリストとよばれるものには、BanList.conとServerBanList.conの2つがあります。両者とも、以下の場所に格納されています。
C:\Program Files\EA GAMES\Battlefield 1942 Server\Mods\BF1942\Settings\
A.BANリストとよばれるものには、BanList.conとServerBanList.conの2つがあります。両者とも、以下の場所に格納されています。
C:\Program Files\EA GAMES\Battlefield 1942 Server\Mods\BF1942\Settings\
BanList.conはBFサーバ(BF1942_w32ded.exe)が使用するファイルです。これに登録されているプレイヤーはBFサーバによって直接的に接続を禁止されます。
なお、BFSMを通さず、コンソールでadmin.banplayerやadmin.banPlayerkeyなどのコマンドを打ち、プレイヤーをBAN/unBANした場合はこちらにしか記録されませんので注意が必要です。
なお、BFSMを通さず、コンソールでadmin.banplayerやadmin.banPlayerkeyなどのコマンドを打ち、プレイヤーをBAN/unBANした場合はこちらにしか記録されませんので注意が必要です。
ServerBanList.conはBFSMが使用する付加情報ファイルです。
これに記録されている内容が、BFSMのBans欄のリストに表示され、該当するプレイヤーはBFSMによって自動キックされます。
BFSMの操作でプレイヤーをBAN/unBANした場合は、BanList.conとServerBanList.conの両方のリストに記録されます。
これに記録されている内容が、BFSMのBans欄のリストに表示され、該当するプレイヤーはBFSMによって自動キックされます。
BFSMの操作でプレイヤーをBAN/unBANした場合は、BanList.conとServerBanList.conの両方のリストに記録されます。
言い換えると、
- BFSMの操作でBANリストを操作した場合は、BanList.conとServerBanList.conの両方に同じ情報が記録される。(正確には、ServerBanList.conにはBANしたオペレーター名、PBGUID、BAN日時、BANの有効期限などの付加情報も記録される。これが別ファイルを使用している理由である。)
- 直接BFサーバへ管理コマンドを打ち、サーバの機能でBAN操作した場合(BFSMが関与しない場合)はBanList.conにしか情報が記録されない。
いずれの場合でも、結果としてプレイヤーは接続を拒否されるのでBANを行うという観点からは問題ありません。
最も注意を払わねばならないのは、プレイヤーのBANを解除するときです。
BanList.conにはそのプレイヤーの情報が記録されているが、たとえばコンソールコマンドで直接BANを行ったり、ServerBanList.conをローカル環境で編集して戻したりした場合、ServerBanList.conの方には情報が記録されていないという事態が発生します。
この場合、BFSMのBans欄には表示されません。
あるプレイヤーがサーバーに入れないが、BFSMを参照しても該当がなくて対処に困ったというときはまずこの事例を疑ってみてください。
最も注意を払わねばならないのは、プレイヤーのBANを解除するときです。
BanList.conにはそのプレイヤーの情報が記録されているが、たとえばコンソールコマンドで直接BANを行ったり、ServerBanList.conをローカル環境で編集して戻したりした場合、ServerBanList.conの方には情報が記録されていないという事態が発生します。
この場合、BFSMのBans欄には表示されません。
あるプレイヤーがサーバーに入れないが、BFSMを参照しても該当がなくて対処に困ったというときはまずこの事例を疑ってみてください。
BanList.conとServerBanList.conの整合性が保たれていればこのようなことはおきないはずです。
5章のBans欄の解説で、両ファイルを同期し、整合性を保つための操作方法を掲載していますので、定期的に実行してください。
5章のBans欄の解説で、両ファイルを同期し、整合性を保つための操作方法を掲載していますので、定期的に実行してください。
Q.自分でたてたサーバがASE(All Seeing Eye)で見られないのですが?
A.自分でたてたサーバをASEで見ようとしても、デフォルトでは表示されません。
理由は、ASEのサーバリスト更新ボタンを押した場合、ASEのマスターサーバ(スキャナサーバ)に接続し、ゲームサーバのグローバルIPアドレス等の情報を拾ってくるためです。
自分で公開しているサーバをローカルの環境から見たい場合、そのサーバが使用しているグローバルIPではなくて、ローカルIPを手動で入力してやる必要があります。
ASEの[Server]→[Newserver]を選択すると手動でIPアドレスを入力するダイアログが表示されますので、下の画像を参考にしてローカルIPアドレスを入力してください。
A.自分でたてたサーバをASEで見ようとしても、デフォルトでは表示されません。
理由は、ASEのサーバリスト更新ボタンを押した場合、ASEのマスターサーバ(スキャナサーバ)に接続し、ゲームサーバのグローバルIPアドレス等の情報を拾ってくるためです。
自分で公開しているサーバをローカルの環境から見たい場合、そのサーバが使用しているグローバルIPではなくて、ローカルIPを手動で入力してやる必要があります。
ASEの[Server]→[Newserver]を選択すると手動でIPアドレスを入力するダイアログが表示されますので、下の画像を参考にしてローカルIPアドレスを入力してください。
これでローカル環境から、自分のサーバの状態を見ることができるはずです。
また、表示されている自分のサーバをダブルクリックすればゲームに参加することもできるはずです。
また、表示されている自分のサーバをダブルクリックすればゲームに参加することもできるはずです。
ローカルIPアドレスというのは、電話で言えば内線番号みたいなもので、外部からの接続はできません。
一般のプレイヤーを外部からサーバに接続させる場合、グローバルIPアドレス(電話で言えば外線番号に相当する)で接続する必要があります。
通常は、サーバをたててから数分でASEに表示されるようになるので、特に告知する必要はありません。
イベント開催等でグローバルIPアドレスの告知が必要な場合、確認君等でアドレスを調べると良いでしょう。
一般のプレイヤーを外部からサーバに接続させる場合、グローバルIPアドレス(電話で言えば外線番号に相当する)で接続する必要があります。
通常は、サーバをたててから数分でASEに表示されるようになるので、特に告知する必要はありません。
イベント開催等でグローバルIPアドレスの告知が必要な場合、確認君等でアドレスを調べると良いでしょう。
なお、外部から自分のサーバが確かに見えているのかを確認するには、手っ取り早いのは知り合いにASEで確認してもらうことです。
そういう手段がない場合、更新は遅めですが、Game-monitor.comを参照すると良いでしょう。
そういう手段がない場合、更新は遅めですが、Game-monitor.comを参照すると良いでしょう。