Ваня-ня 0 #467800 Posted September 26, 2019 @StranikS_Scan @StranikS_Scan ну да, твинков кучу создают. По сути игроков, играющих лучше, больше не становится, а вот аккаунтов с хорошей статистикой становится больше. И игроки, которые хотят себе определённый цвет в шкале XVM, не могут этого добиться... Очень логично, что вн8 выводится средний за все бои, но он не отражает умения играть у старых игроков. Он показывать настоящую игру твинков, а это - глупо... Почему об этом никто не подумал? Почему бы не сделать так, чтобы у старых игроков вн8 поднимался быстрее? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #467825 Posted September 26, 2019 4 часа назад, Ваня-ня сказал: @StranikS_Scan @StranikS_Scan ну да, твинков кучу создают. По сути игроков, играющих лучше, больше не становится, а вот аккаунтов с хорошей статистикой становится больше. И игроки, которые хотят себе определённый цвет в шкале XVM, не могут этого добиться... Очень логично, что вн8 выводится средний за все бои, но он не отражает умения играть у старых игроков. Он показывать настоящую игру твинков, а это - глупо... Почему об этом никто не подумал? Почему бы не сделать так, чтобы у старых игроков вн8 поднимался быстрее? Потому что ни какой проблемы нет. Статистика игрока складывается из статистики на отдельных танках. У игроков много танков, но на каждом из них мало боев. Следовательно, если игрок с годами стал играть хорошо, то он берет конкретный танк - и легко вытягивает стату на нем (если на этом танке не 1000 боев). Чтобы таких игроков было видно в бою, достаточно в конфиге XVM изменить, чтобы он выводил в ушах и при загрузке боя не стату по акканту, а стату по танку, на котором игрок вышел в бой. И всё. Проблема решается. Все так делают. Quote Share this post Link to post Short link Share on other sites
yepev 287 #467865 Posted September 27, 2019 21 час назад, Ваня-ня сказал: По сути игроков, играющих лучше, больше не становится, а вот аккаунтов с хорошей статистикой становится больше ... Почему об этом никто не подумал? А с чего ты взял, что никто не подумал? Может это только ты подумал, что никто не подумал? XVM использует аккаунты только активных игроков, которые играли вроде за последние 3 месяца или около того. Quote Share this post Link to post Short link Share on other sites
man266 0 #470568 Posted November 10, 2019 Просто интересно, когда уже будет включатся в подсчёт урон по засвету, по гусле сбитой и т.д.? Есть хоть какие-то подвижки в этом направлении? Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #470627 Posted November 12, 2019 10.11.2019 в 22:27, man266 сказал: когда уже будет включатся в подсчёт урон по засвету, по гусле сбитой и т.д Никогда. Формула рейтинга неизменна, она остается и останется такой же какой ее задумал его автор. 10.11.2019 в 22:27, man266 сказал: Есть хоть какие-то подвижки в этом направлении? Пользуйся рейтингом WG (WTR). 1 Quote Share this post Link to post Short link Share on other sites
Slava7572 1,685 #483464 Posted June 6, 2020 Парни,скажите пожалуйста,недавно был перерасчет с существенными изменениями ВН8?Не играл буквально тройку дней,помню у меня было 2064(округленно),а сейчас 2067Я понимаю,что рейтинг постоянно корректируется,но так существенно значения меняются нечасто. Quote Share this post Link to post Short link Share on other sites
skuvv 0 #489171 Posted September 17, 2020 Подскажите, можно ли вывести потанковый WN8 в бою? Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #489198 Posted September 18, 2020 12 часов назад, skuvv сказал: Подскажите, можно ли вывести потанковый WN8 в бою? ХВМ считает вн8 для аккаунта, по технике есть специальный рейтинг: xTE Quote Share this post Link to post Short link Share on other sites
yepev 287 #489199 Posted September 18, 2020 12 часов назад, skuvv сказал: Подскажите, можно ли вывести потанковый WN8 в бою? Потанковый WN8 по идее не существует. Хотя некоторые его считают по танкам, это уже не совсем WN8 по сути. Лучше xTE тогда уж. Quote Share this post Link to post Short link Share on other sites
knrs 0 #517698 Posted May 21, 2022 (edited) 13.02.2018 в 15:14, sirmax сказал: CREATE OR REPLACE FUNCTION wn8.wn8(p_player_id bigint) RETURNS int LANGUAGE plpgsql AS $$ BEGIN RETURN ( SELECT 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 * LEAST(1.8, r_win_c) as wn8 FROM ( SELECT *, GREATEST(0, LEAST(r_dmg_c + 0.2, ((r_frg - 0.12) / (1 - 0.12)))) as r_frg_c, GREATEST(0, LEAST(r_dmg_c + 0.1, ((r_spo - 0.38) / (1 - 0.38)))) as r_spo_c, GREATEST(0, LEAST(r_dmg_c + 0.1, ((r_def - 0.10) / (1 - 0.10)))) as r_def_c FROM ( SELECT *, GREATEST(0, (r_win - 0.71) / (1 - 0.71)) as r_win_c, GREATEST(0, (r_dmg - 0.22) / (1 - 0.22)) as r_dmg_c FROM ( SELECT (dmg / e_dmg) as r_dmg, (frg / e_frg) as r_frg, (spo / e_spo) as r_spo, (def / e_def) as r_def, (win / e_win) as r_win FROM ( SELECT sum(x.dmg) as dmg, sum(x.frg) as frg, sum(x.spo) as spo, sum(x.def) as def, sum(x.w * 100) as win, sum(e.dmg * x.b) as e_dmg, sum(e.frg * x.b) as e_frg, sum(e.spo * x.b) as e_spo, sum(e.def * x.b) as e_def, sum(e.win * x.b) as e_win FROM cur.players p JOIN LATERAL jsonb_each(p.v) v ON TRUE JOIN LATERAL jsonb_to_record(v.value) AS x(b float8, w float8, dmg float8, frg float8, spo float8, def float8) ON TRUE JOIN wn8.exp e ON e.tank_id = (v.key)::int WHERE player_id = p_player_id ) totals ) rstat ) rstatc_1 ) rstatc_2 ); END; $$; Подскажите, пожалуйста: считаю по этой формуле для $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); Edited May 21, 2022 by knrs Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #517703 Posted May 22, 2022 @knrshttps://kr.cm/f/t/68557/c/508818/ Quote Share this post Link to post Short link Share on other sites
knrs 0 #517720 Posted May 22, 2022 (edited) 8 часов назад, ktulho сказал: @knrshttps://kr.cm/f/t/68557/c/508818/ @ktulho, огромное спасибо! Но на аккаунте из примера нет ротных боев. Получается из апи отдаются разные данные? Edited May 22, 2022 by knrs Quote Share this post Link to post Short link Share on other sites
yepev 287 #517721 Posted May 22, 2022 Дело точно не в этом, аккаунт зарегистрирован в 2021 году, а ротные бои убрали уже много лет назад. 5 минут назад, knrs сказал: Получается из апи отдаются разные данные? Есть только один способ узнать это. Сравните, что вы получаете из API c данными со страницы на сайте XVM. Может вы используете разные методы. И ещё учтите, что статистика аккаунта https://stats.modxvm.com/ru/stats/players/156204959 обновлялась 03.02.2022 (это видно по графикам). Значит нужно использовать ожидаемые значения на эту дату, если хотите получить одинаковый результат. https://modxvm.com/ru/таблицы-ожидаемых-значений-wn8-по-датам/ Quote Share this post Link to post Short link Share on other sites
knrs 0 #517723 Posted May 22, 2022 (edited) 7 минут назад, yepev сказал: Есть только один способ узнать это. Сравните, что вы получаете из API c данными со страницы на сайте XVM. Может вы используете разные методы. Да, уже сравнил. Получаю статистику, идентичную с https://stats.modxvm.com/ru/stats/players/156204959. При этом вн8 различается. 25 минут назад, yepev сказал: И ещё учтите, что статистика аккаунта https://stats.modxvm.com/ru/stats/players/156204959 обновлялась 03.02.2022 (это видно по графикам). Значит нужно использовать ожидаемые значения на эту дату, если хотите получить одинаковый результат. https://modxvm.com/ru/таблицы-ожидаемых-значений-wn8-по-датам/ Вот это крайне интересно. Т.е. рассчитанное на момент обновления значение вн8 хранится в бд? Вижу, что в таблице за 03.02.2022 отсутствует танк с айди 38401 (T-44-100 I). Тут писали, что в этом случае стата отсутствующего танка не учитывается в расчете, так ли это? Потому что, исключая этот танк, получаю вн8 — 3233.344017449, что все равно не соответствует значению на сайте XVM. Edited May 22, 2022 by knrs Quote Share this post Link to post Short link Share on other sites
miner98 0 #522594 Posted July 28, 2022 Подскажите пожалуйста, возник вопрос касательно подсчета wn8 по аккаунту. Правильно ли я понимаю что нужно подсчитать wn8 по каждому танку, и вывести среднее значение? Заранее прошу прощение за столь глупый вопрос, если таким он является Quote Share this post Link to post Short link Share on other sites
yepev 287 #522595 Posted July 28, 2022 @miner98 в первом сообщении темы подробно расписано как считается WN8. Quote Share this post Link to post Short link Share on other sites
miner98 0 #522602 Posted July 28, 2022 @yepev не до конца понятно с переменными expDmg - ожидаемый нанесенный урон, expSpot - ожидаемое количество обнаруженных, expFrag - ожидаемое количество уничтоженных, expDef - ожидаемое количество очков защиты, expWinRate - ожидаемое количество побед. я так понимаю нужно получить сумму по тем танкам которые есть в статистике аккаунта? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #522617 Posted July 29, 2022 (edited) 4 часа назад, miner98 сказал: @yepev не до конца понятно с переменными expDmg - ожидаемый нанесенный урон, expSpot - ожидаемое количество обнаруженных, expFrag - ожидаемое количество уничтоженных, expDef - ожидаемое количество очков защиты, expWinRate - ожидаемое количество побед. я так понимаю нужно получить сумму по тем танкам которые есть в статистике аккаунта? Да, нужно суммировать показатели по всем танкам. И считать сумму ожидаемых значений этих показателей по всем танкам с учетом имеющегося числа боев на каждом. После чего находить отношение их и дальше уже подставлять в формулы нормализации и итоговую формулу - тыц. Edited July 29, 2022 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
HeydrichA 8 #527543 Posted October 3, 2022 Давно хотел спросить. Я тут как-то около года не играл, а некоторое время назад опять начал. Был зелёный, а вернулся жёлтым. В чём великий смысл таких пересчётов? Чтобы большинство было оранжевым? Просто не понятно. 1 1 Quote Share this post Link to post Short link Share on other sites
yepev 287 #527544 Posted October 3, 2022 (edited) 6 минут назад, HeydrichA сказал: Давно хотел спросить. Я тут как-то около года не играл, а некоторое время назад опять начал. Был зелёный, а вернулся жёлтым. В чём великий смысл таких пересчётов? Чтобы большинство было оранжевым? Просто не понятно. Нет. Чтобы всегда было одинаковая доля игроков каждого цвета. Вот тут написано: https://modxvm.com/ru/рейтинги/шкала-xvm/цвета/ Edited October 3, 2022 by yepev Quote Share this post Link to post Short link Share on other sites