goodgames
08-01
最終更新:
goodgames
-
view
驚愕のvars仕様
(管理者以外の方にはあまり関係の無いお話です)
BF3サーバを制御するためのRCONコマンドに、
各種パラメータを設定するためのvars.xxxxxxxxが多数存在することは御存知でしょう。
各種パラメータを設定するためのvars.xxxxxxxxが多数存在することは御存知でしょう。
このvars.xxxxxxxxコマンド群は命令実行後、効果がいつ反映されるか御存知でしょうか?
実は私、知りませんでした。
正確には「以前存在していた不具合が修正された」ことを知りませんでした。
正確には「以前存在していた不具合が修正された」ことを知りませんでした。
いや、もっと正確には
「マニュアルが間違っていて実装仕様が正しいと理解していたが実際にはマニュアルが正しい」
ことを知りませんでした。
「マニュアルが間違っていて実装仕様が正しいと理解していたが実際にはマニュアルが正しい」
ことを知りませんでした。
(以下、実質的な最新版であるR29のプロトコルマニュアルより引用)
Request: vars.gameModeCounter [modifier: integer] Response: OK - for set operation Response: OK < modifier: integer > - for get operation Response: InvalidArguments Effect: Set scale factor for number of tickets to end round, in percent Delay: Instantaneous
vars.gameModeCounterは御存知の通り、チケット数を設定するためのパラメータです。
厳密にはディフォルトチケット数に対するパーセンテージを指定します。
厳密にはディフォルトチケット数に対するパーセンテージを指定します。
ここまでは何も問題ありません。
問題は一番下の一文。
問題は一番下の一文。
Delay: Instantaneous
このコマンドはいつ発効するかを解説する一文ですが即時と記載されています。
本当に即時反映されたらラウンド中にチケット数が変更されてしまいます。
相変わらずなDICEさんです。
本当に即時反映されたらラウンド中にチケット数が変更されてしまいます。
相変わらずなDICEさんです。
と思ったのは1年半前のお話。
確かに古いマニュアルでも該当箇所には「即時」と記載されていますが、
当時は即時反映されませんでした。
当時は即時反映されませんでした。
ラウンド終了後、次のマップが読み込まれるタイミングで新しいチケット数が反映されていました。
常識的に考えればこれが妥当であり、マニュアルの表記に誤りがあるものと理解しておりました。
常識的に考えればこれが妥当であり、マニュアルの表記に誤りがあるものと理解しておりました。
しかし...
いつの間にか実装が修正されたらしく本当にコマンド実行直後にチケット数が変更されます。
なんだこりゃ。(苦笑)
なんだこりゃ。(苦笑)
これを活用すると永久に終了しないラウンドが作れそうです。
誰が喜ぶのかは甚だ疑問ですが。
誰が喜ぶのかは甚だ疑問ですが。
尚、その他のvars.xxxxxxx系で即時反映とマニュアルに記載されているコマンドは、
本当に全て即時反映されるようになったようです。
本当に全て即時反映されるようになったようです。
( - )