Подскажите, пожалуйста: считаю по этой формуле для $account_id = '156204959', ожидаемые значения беру из Таблицы ожидаемых значений WN8, статистику аккаунта — из апи вг, получаю WN8 — 3560.2109460778, однако и в модах, и на modxvm.com вижу WN8 — 3501 (на 22.05.2022 01:00 МСК). Проверял и на других аккаунтах, всегда получаю отклонение в какую-то сторону. Смущает, что также пробовал воспользоваться табличными значениями с кктс и результат полностью совпал с отображаемым WN8 там же. В чем может быть дело?
foreach($out->data as $account_id) {
foreach($account_id as $section) {
$tank_id = $section->tank_id;
foreach($section as $tankStat) {
$battles = $tankStat->battles;
$dmg += $tankStat->damage_dealt;
$frg += $tankStat->frags;
$spo += $tankStat->spotted;
$def += $tankStat->dropped_capture_points;
$win += $tankStat->wins * 100;
$e_dmg += $wn8exp[$tank_id]->expDamage*$battles;
$e_frg += $wn8exp[$tank_id]->expFrag*$battles;
$e_spo += $wn8exp[$tank_id]->expSpot*$battles;
$e_def += $wn8exp[$tank_id]->expDef*$battles;
$e_win += $wn8exp[$tank_id]->expWinRate*$battles;
}
}
}
$r_dmg = $dmg / $e_dmg;
$r_frg = $frg / $e_frg;
$r_spo = $spo / $e_spo;
$r_def = $def / $e_def;
$r_win = $win / $e_win;
$r_win_c = max(0, ($r_win - 0.71) / (1 - 0.71));
$r_dmg_c = max(0, ($r_dmg - 0.22) / (1 - 0.22));
$r_frg_c = max(0, min($r_dmg_c + 0.2, ($r_frg - 0.12) / (1-0.12)));
$r_spo_c = max(0, min($r_dmg_c + 0.1, ($r_spo - 0.38) / (1-0.38)));
$r_def_c = max(0, min($r_dmg_c + 0.1, ($r_def - 0.10) / (1-0.10)));
$wn8 = 980 * $r_dmg_c + 210 * $r_dmg_c * $r_frg_c + 155 * $r_frg_c * $r_spo_c + 75 * $r_frg_c * $r_def_c + 145 * min(1.8, $r_win_c);