neverexist 0 #87849 Posted August 6, 2013 Ковырял как-то давно ServiceChannelPage.swf после чего начала материтсо кнопка "подробнее". Вообще не помню подробностей, но выдавала она фразу типа id_room=4845665083438825 или id_battleroom не помню. Но это уже говорило о том что у каждого боя есть айди. Кроме того в папке %appdata%\Wargaming.net\WorldOfTanks\battle_results при правильной работе той кнопки появляется файл $id_room.dat с результатами боя. А вчера перед написанием поста, я проверил точно, что название этого dat файла идентично с файлом у моего совзводного, что ещё раз подтверждает факт наличия айди. Именно эти я взял с результатов боя. Я не говорил что у боя нет id в принципе, речь шла о файле xvm-stat.log. Вот в нем этого id как раз нет. Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #87891 Posted August 6, 2013 (edited) Вы всё-таки поспешили возмущаться. В скрипте реализовано удаление дубликатов, это ок. Но связывания setup'ов и results'ов там нету. Как это нет? сетапы парсятся в players, результаты в results, при выгрузке результата связываются по vehicleId: fs.writeFileSync(resFN, '<results>\n'); fs.writeFileSync(plFN, '<players>\n'); for (var i in results) { var result = results[i]; var ok = true; for (var j = 0; j < result.ids.length; ++j) { var vehicleId = result.ids[j]; if (!players[vehicleId]) { console.log("player with vehicleId=" + vehicleId + " not found, result skipped"); ok = false; break; } } if (!ok) continue; fs.appendFileSync(resFN, result.res); for (var j = 0; j < result.ids.length; ++j) fs.appendFileSync(plFN, players[result.ids[j]]); } fs.appendFileSync(resFN, '</results>\n'); fs.appendFileSync(plFN, '</players>\n'); в результате работы скрипта получается xml вида: <results> <result vehId1="122370321" vehId2="122370302" vehId3="122370310" vehId4="122370322" vehId5="122370306" vehId6="122370308" vehId7="122370309" vehId8="122370328" vehId9="122370311" vehId10="122370315" vehId11="122370313" vehId12="122370314" vehId13="122370319" vehId14="122370330" vehId15="122370331" vehId16="122370304" vehId17="122370305" vehId18="122370323" vehId19="122370324" vehId20="122370303" vehId21="122370307" vehId22="122370326" vehId23="122370312" vehId24="122370327" vehId25="122370325" vehId26="122370329" vehId27="122370316" vehId28="122370317" vehId29="122370318" vehId30="122370320" draw="0" created="1359994094"/> <result vehId1="33962841" vehId2="33962855" vehId3="33962844" vehId4="33962845" vehId5="33962860" vehId6="33962866" vehId7="33962862" vehId8="33962863" vehId9="33962864" vehId10="33962852" vehId11="33962867" vehId12="33962868" vehId13="33962869" vehId14="33962870" vehId15="33962861" vehId16="33962842" vehId17="33962857" vehId18="33962853" vehId19="33962858" vehId20="33962859" vehId21="33962846" vehId22="33962847" vehId23="33962848" vehId24="33962865" vehId25="33962849" vehId26="33962850" vehId27="33962851" vehId28="33962854" vehId29="33962843" vehId30="33962856" draw="0" created="1360267001"/> <result vehId1="21022710" vehId2="21022703" vehId3="21022687" vehId4="21022692" vehId5="21022690" vehId6="21022715" vehId7="21022691" vehId8="21022706" vehId9="21022707" vehId10="21022694" vehId11="21022711" vehId12="21022697" vehId13="21022698" vehId14="21022701" vehId15="21022702" vehId16="21022686" vehId17="21022704" vehId18="21022688" vehId19="21022705" vehId20="21022689" vehId21="21022693" vehId22="21022712" vehId23="21022709" vehId24="21022695" vehId25="21022696" vehId26="21022713" vehId27="21022714" vehId28="21022699" vehId29="21022700" vehId30="21022708" draw="0" created="1360420084"/> </results> , которая нормально загружается, например, в Excel. vehId1-vehId15 - команда победителей vehId16-vehId30 - команда проигравших draw="1" - ничья Распарсил результаты от nemoW и TurinDeNar results-nemoW.xml.zip results-TurinDeNar.xml.zip Edited August 6, 2013 by sirmax Quote Share this post Link to post Short link Share on other sites
neverexist 0 #87893 Posted August 6, 2013 (edited) Как это нет? сетапы парсятся в players, результаты в results, при выгрузке результата связываются по vehicleId: fs.writeFileSync(resFN, '<results>\n'); fs.writeFileSync(plFN, '<players>\n'); for (var i in results) { var result = results[i]; var ok = true; for (var j = 0; j < result.ids.length; ++j) { var vehicleId = result.ids[j]; if (!players[vehicleId]) { console.log("player with vehicleId=" + vehicleId + " not found, result skipped"); ok = false; break; } } if (!ok) continue; fs.appendFileSync(resFN, result.res); for (var j = 0; j < result.ids.length; ++j) fs.appendFileSync(plFN, players[result.ids[j]]); } fs.appendFileSync(resFN, '</results>\n'); fs.appendFileSync(plFN, '</players>\n'); в результате работы скрипта получается xml вида: <results> <result vehId1="122370321" vehId2="122370302" vehId3="122370310" vehId4="122370322" vehId5="122370306" vehId6="122370308" vehId7="122370309" vehId8="122370328" vehId9="122370311" vehId10="122370315" vehId11="122370313" vehId12="122370314" vehId13="122370319" vehId14="122370330" vehId15="122370331" vehId16="122370304" vehId17="122370305" vehId18="122370323" vehId19="122370324" vehId20="122370303" vehId21="122370307" vehId22="122370326" vehId23="122370312" vehId24="122370327" vehId25="122370325" vehId26="122370329" vehId27="122370316" vehId28="122370317" vehId29="122370318" vehId30="122370320" draw="0" created="1359994094"/> <result vehId1="33962841" vehId2="33962855" vehId3="33962844" vehId4="33962845" vehId5="33962860" vehId6="33962866" vehId7="33962862" vehId8="33962863" vehId9="33962864" vehId10="33962852" vehId11="33962867" vehId12="33962868" vehId13="33962869" vehId14="33962870" vehId15="33962861" vehId16="33962842" vehId17="33962857" vehId18="33962853" vehId19="33962858" vehId20="33962859" vehId21="33962846" vehId22="33962847" vehId23="33962848" vehId24="33962865" vehId25="33962849" vehId26="33962850" vehId27="33962851" vehId28="33962854" vehId29="33962843" vehId30="33962856" draw="0" created="1360267001"/> <result vehId1="21022710" vehId2="21022703" vehId3="21022687" vehId4="21022692" vehId5="21022690" vehId6="21022715" vehId7="21022691" vehId8="21022706" vehId9="21022707" vehId10="21022694" vehId11="21022711" vehId12="21022697" vehId13="21022698" vehId14="21022701" vehId15="21022702" vehId16="21022686" vehId17="21022704" vehId18="21022688" vehId19="21022705" vehId20="21022689" vehId21="21022693" vehId22="21022712" vehId23="21022709" vehId24="21022695" vehId25="21022696" vehId26="21022713" vehId27="21022714" vehId28="21022699" vehId29="21022700" vehId30="21022708" draw="0" created="1360420084"/> </results>, которая нормально загружается, например, в Excel.vehId1-vehId15 - команда победителей vehId16-vehId30 - команда проигравших draw="1" - ничья Ну ок, связка по vehicleId там присутствует, просто я парсю по своему, и такая связка мне не совсем удобна. Мне нужно получить в результате выборку типа (BattleId, chance(в процентах), result("win"/"lose")).я думаю мы друг друга поняли а для чего вы используете эти файлы players.xml и results.xml? Edited August 6, 2013 by neverexist Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #87942 Posted August 6, 2013 (edited) Распарсил результаты от nemoW А ты в старую табличку сможешь добавить результаты nemoW, а то что-то у меня не выходит с этими таблицами динамическими? Или просто только по новым данным от nemow, их всё равно заметно больше Edited August 7, 2013 by seriych Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #88087 Posted August 7, 2013 нет дома екселя, а на работе времени :) Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #88093 Posted August 7, 2013 блин, я кажись тупой осел. Там у меня решетки отображались в ячейках- думал не получилось нормально сделать, а в старом файле также- это просто число в ячейку не помещается. А я не сохранил с расстройства :-) Заново буду делать Да, всё получилось. Особо ничего нового. Точность по топорному методу угадал/не угадал понизилась до 65%. Моя оценка смысла не имеет, если нет формулы, с которой можно сравнить. Но если будет новая формула, уже статистики вполне достаточно, чтобы делать адекватные выводы. Или с коэффициентами текущей можно будет поиграться на досуге. Quote Share this post Link to post Short link Share on other sites
neverexist 0 #88286 Posted August 8, 2013 А где настраивается цвет, которым отображаются шансы? Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #88385 Posted August 8, 2013 (edited) А где настраивается цвет, которым отображаются шансы? Весьма странное место, откуда берутся эти цвета. "colors": { "rating": [ На мой взгляд даже если не делать отдельную настройку, то всё равно лучше был бы любой из вариантов: - красить не настраиваемо, но симметрично относительно 50%. Скажем, если одна смена цвета на 55%, то на 45% тоже должна быть смена цвета. - вообще не красить. Я когда-то давно высказывал это мнение, но оно не нашло поддержки. Edited August 8, 2013 by seriych 1 Quote Share this post Link to post Short link Share on other sites
Bloodest 0 #89725 Posted August 15, 2013 (edited) По поводу графика VinRatio/Chancegroup, принципов его построения. Замечание 1. Существуют правила объединения точек в группы. (Подробнее можно посмотреть, например, для критерия согласия Пирсона) . Идея заключается в формировании групп так, чтобы они несли одинаково достоверную информацию. В первом приближении - в каждой группе одинаковое количество измерений. Прямо рекомендуемое ( в литературе) количество групп - ~ квадратный корень из числа измерений. Но вообще, для призентабельности графика, есть мнемоническое правило ( связанное с точкой перегиба статистики Колмогорова - 40 измерений) - ориентироваться на число измерений в 40 шт. Замечание 2. Каждый бой дает 2 измерения - одна команда выиграла, другая проиграла. У первой и у второй команд был свой шансы и он получили свою реализацию. У меня есть обработанные данные о 202 боях, т.е 404 реализации шансов на победу. 404^0.5=~20 измерений. Я выбрал среднее меду 20 и 40 = 30 измерений в группе. Итог - систематическое отклонение на 12%. Гыг, две точки которые отстоят от 50% на ~12% дают правильный результат. Т.е. модель дает правильный результат при соотношении сил команд 3 к 2. ЗЫ. На счет 3 к 2. эт вилами по воде. НО. Есть соображение. У многих район 40-50 % получился прмерно правильно, а за 50 % - превышение ( и уменя тоже, если использовать только реализации шанса моей команды). Если исходить из того, что не только данным модом, но и его анализом, интересуются продвинутые игроки, то напрашивается мысль, что, рассматриваемые реализации от команд выше среднего. Тогда если шанс меньше 50 - встретились равные или вторая команда содержит игроков выше продвинутых. Больше 50 - вторая команда слабее. Значит есть некоторый уровень "недодвинутости" игроков для которых построитель шанса занижает их вклад в победу. Иначе говоря если взять и построить график где будут реализации не твоей, а супротивной команд - то это будет график зеркального тебе (относительно среднего) лузера/профи. В идеале они должны быть одинаковыми. Ошибка (при расчете обратных вероятностей поставил 1 вместо 100, считал в %) . Практически, можно считать, что совпадают. При большом числе измерений линейный тренд должен совпасть с теорией. Edited August 15, 2013 by Bloodest Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #89730 Posted August 15, 2013 (edited) Каждый бой дает 2 измерения - одна команда выиграла, другая проиграла. У первой и у второй команд был свой шансы и он получили свою реализацию. Каким макаром тогда точки не симметричны и линия через 50/50 не проходит? Edited August 15, 2013 by seriych Quote Share this post Link to post Short link Share on other sites
coJlHe4Hblu_noH4uk 141 #90102 Posted August 17, 2013 ... Вопрос по формуле (почти). Если взять вклад игрока в шанс на победу своей команды и умножить его на шанс победы своей машины против него же - насколько данная характеристика сможет отражать ответ на вопрос "кого фокусить первым"? Quote Share this post Link to post Short link Share on other sites
sayfut 0 #91918 Posted August 25, 2013 Всем привет.У меня такая же проблема.Отображается шанс на победу только при нажатие кнопки TAB,а при загрузки боя нет.Я в настройках xwm переименовал как здесь написано \res_mods\xvm\configs\@Default\ открыть там файл battleLoading.xc найти там параметр "showChances": false, и переименовать его на "showChances": true.Но это результатов не дало всеравно шанс на победу показывает только при нажатие кнопки TAB.Что делать?Помогите плиз.XVM 4.1.Всем спасибо. Quote Share this post Link to post Short link Share on other sites
Tim 0 #103904 Posted September 21, 2013 Вечер добрый!Скажите пжл, как вкл. отображение статистики при загрузке боя? У меня она начинает работать лишь тогда, когда начинается отсчет времени!Это задержка на сервере или у меня что-то отключено в конфигурациях?Заранее спасибо! Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #115804 Posted October 22, 2013 (edited) Eb= ((Ean * Kra) * (Kra + Kab)) * (Kra + 0,25 * Klvl)Значение Kra = (100 + Ra - 48.5)/100 близко к 1, значение Klvl = (Tmax + Tmin)/2 - T в случае брелков может быть меньше минус четырех, тогда значение (Kra + 0,25 * Klvl) становится отрицательным, то есть всё значение Eb становится отрицательным. В итоге получаем, что наличие брелка в команде хуже, чем если бы танка вообще не было. Причем чем выше рейтинг игрока на брелке, тем больше он снижает общий шанс на победу своей команды. Очевидная ересь получается. Надо бы это исправить, особенно учитывая ввод режима 7/42, где наличие танков 1 уровня в боях 8 уровня очень даже помогают команде. Для начала хотя бы просто ограничить Eb каким-то неотрицательным значением. up. Проверил в тренировке, наличие 1 уровня в бою 8 уровня никак не влияет на шанс, хотя по приведенной формуле должно. Посмотрел в коде, там как раз Eb ограничивается снизу нулем: return Math.max(0, Math.min(Config.s_config.consts.MAX_EBN, Eb)); надо бы формулу в шапке поправить. В итоге откровенного бреда, как я описывал выше, не возникает, однако ограничение нулем ведет к тому, что, например, два лишних T1 в команде 7/42 никак не влияют на шанс, тогда как в действительности они очень важны. С другой стороны в высокоуровневом рандомном бою их ценность действительно стремится к нулю, хоть и тоже ненулевая. Создание отдельной формулы для 7/42 - это, наверное, отдельный разговор, потому думаю нужно ввести какую-то компромиссную корректировку, которая и ценность 1 уровня в 7/42 будет учитывать и не переоценивать брелков в рандоме. Варианты могут быть разные: - Ограничивать Eb не нулем, а каким-то положительным значением - Учет уровня танка сделать не линейным - Учитывать разницу количества игроков в командах Хотя в принципе режим 7/42 можно распознавать просто по количеству игроков в командах, и если оно меньше 8, то только тогда применять корректировку на брелки Edited October 22, 2013 by seriych Quote Share this post Link to post Short link Share on other sites
TurinDeNar 576 #115841 Posted October 22, 2013 (edited) Значение Kra = (100 + Ra - 48.5)/100 близко к 1, значение Klvl = (Tmax + Tmin)/2 - T в случае брелков может быть меньше минус четырех, тогда значение (Kra + 0,25 * Klvl) становится отрицательным, то есть всё значение Eb становится отрицательным. В итоге получаем, что наличие брелка в команде хуже, чем если бы танка вообще не было. Причем чем выше рейтинг игрока на брелке, тем больше он снижает общий шанс на победу своей команды. Очевидная ересь получается. Надо бы это исправить, особенно учитывая ввод режима 7/42, где наличие танков 1 уровня в боях 8 уровня очень даже помогают команде. Для начала хотя бы просто ограничить Eb каким-то неотрицательным значением. up. Проверил в тренировке, наличие 1 уровня в бою 8 уровня никак не влияет на шанс, хотя по приведенной формуле должно. Посмотрел в коде, там как раз Eb ограничивается снизу нулем: return Math.max(0, Math.min(Config.s_config.consts.MAX_EBN, Eb)); надо бы формулу в шапке поправить. В итоге откровенного бреда, как я описывал выше, не возникает, однако ограничение нулем ведет к тому, что, например, два лишних T1 в команде 7/42 никак не влияют на шанс, тогда как в действительности они очень важны. С другой стороны в высокоуровневом рандомном бою их ценность действительно стремится к нулю, хоть и тоже ненулевая. Создание отдельной формулы для 7/42 - это, наверное, отдельный разговор, потому думаю нужно ввести какую-то компромиссную корректировку, которая и ценность 1 уровня в 7/42 будет учитывать и не переоценивать брелков в рандоме. Варианты могут быть разные: - Ограничивать Eb не нулем, а каким-то положительным значением - Учет уровня танка сделать не линейным - Учитывать разницу количества игроков в командах Хотя в принципе режим 7/42 можно распознавать просто по количеству игроков в командах, и если оно меньше 8, то только тогда применять корректировку на брелки Это Сирмакс сам это ограничение нижнего порогового значения по нулю сделал, я об этом как-то и не подумал в свое время - поправил в шапке формулу, спасибо seriych. А с режимом 7/42 и правда нужно что-то дополнительно сделать. Вариант с нелинейным учетом уровня танков для боев именно режима 7/42 мне видится более подходящим. Если ограничивать Eb не нулем, а присваивать какое-то положительное значение, то не совсем представляю как это самое положительное значение для брелка определить:) Edited October 22, 2013 by TurinDeNar Quote Share this post Link to post Short link Share on other sites
seriych 2,178 #115853 Posted October 22, 2013 Вариант с нелинейным учетом уровня танков для боев именно режима 7/42 мне видится более подходящим. Если ограничивать Eb не нулем, а присваивать какое-то положительное значение, то не совсем представляю как это самое положительное значение для брелка определить:)По идее Не Eb ограничивать надо, а непосредственно значение (Kra + 0,25 * Klvl) , что по сути является ограничением на Klvl, то есть это получается всего лишь частный случай нелинейного учета уровня. Quote Share this post Link to post Short link Share on other sites
tratatank 609 #121906 Posted November 3, 2013 Как то странно xvm вычислил шанс на победу в этом бою. Команда противников выглядит явно сильнее, а шанс на победу равен 63%. Quote Share this post Link to post Short link Share on other sites
TurinDeNar 576 #121919 Posted November 3, 2013 (edited) Как то странно xvm вычислил шанс на победу в этом бою. Команда противников выглядит явно сильнее, а шанс на победу равен 63%. Может быть реплей остался? Было бы интересно поковыряться, посмотреть за счет чего такой шанс на победу получился. На первый взгляд и правда что-то не то, команда противника не явно сильнее конечно, но как минимум команды более менее равны, а тут 63%... Edited November 3, 2013 by TurinDeNar Quote Share this post Link to post Short link Share on other sites
tratatank 609 #121944 Posted November 3, 2013 Может быть реплей остался? Было бы интересно поковыряться, посмотреть за счет чего такой шанс на победу получился. На первый взгляд и правда что-то не то, команда противника не явно сильнее конечно, но как минимум команды более менее равны, а тут 63%... Реплея к сожалению не осталось. Я думал ников игроков со скриншотов хватит для проверки работы формулы. Quote Share this post Link to post Short link Share on other sites
TurinDeNar 576 #121999 Posted November 3, 2013 (edited) Реплея к сожалению не осталось. Я думал ников игроков со скриншотов хватит для проверки работы формулы. В принципе хватит... Но долго все составляющие боевой эффективности по каждому игроку ковырять:) В моем тестконфиге все необходимое для расчета выведено визуально сразу. Ладно, будет время пройдусь по этим 30 игрокам посмотрю в чем дело. Edited November 3, 2013 by TurinDeNar Quote Share this post Link to post Short link Share on other sites