WoWS - HP0で生存するモジュール(ニッチ仕様)

予め断っておくと、この知識の使い道はありません。

内容

船体のモジュールや区画は、見かけのHPが0でも生存することがある。(以下、HPを持つ部位全てを「モジュール」と表現する。主砲、副砲、艦首艦尾などを含む)

残りHPは0だが生存しており、主砲発射も行える

仕組み

モジュールの状態は以下の形で整数にパックされ、サーバーから送信されている:

パックされたデータ

見て分かる通り、モジュールのHPは正確な数字ではなく、最大HPに対する残りHPの割合が送られてくる。
クライアントがこの割合からHPを復元する際には、1023で割った数に最大HPを掛けることになる。
したがって、各モジュールのHPが表現できる最小の値は\dfrac{\text{最大HP}}{1023}で表され、最大HPの増加に伴って精度が悪化していく。

ただし、サーバー側では正確な数値を保持しているため、この値パック/アンパックによってゲームプレイ上の結果は変化しない。また、モジュールの生存状態は別途(途中3ビット)送信されているため、クライアント側の処理としても問題が発生することはない。

モジュール最大HPと表現できる最小HPの早見表

モジュールの最大HP 表現できる最小HP
1000 0.978
5000 4.89
10000 9.78
50000 48.9

例: 最大HP50000のモジュールでは、残りHP48も1も同じ(どちらも計算上0になる)

余談

検証のため「実際のモジュールHPは残るが、割合としてパックした値は0」になる組み合わせを計算した。
射撃対象として主砲HPを基準にしている(乱数がなくわかりやすいため):

砲弾アルファダメージ(攻撃側) 砲塔HP(ターゲット側) 破壊直前の砲塔に残るHP 割合で表現できる最小HP 備考
2150 (Östergötland) 20000 (Kremlin, Soyuz, GK) 5 19.55 貫通できないので検証不可能
4650 (Tallin) 20000 (Kremlin, Soyuz, GK) 5 19.55
8650 (Yoshino, Azuma) 11250 (211~379mm主砲) 5 10.00