Jump to content
Korean Random

sirmax

XVM Team XVM Team
  • Posts

    14,403
  • Joined

  • Last visited

  • Days Won

    246

Everything posted by sirmax

  1. То есть я могу откинуть их в самом начале, до всех расчетов, на результат они никак не повлияют? Просто у тебя очень много проверок плана if (!base.link), если танки, которых нет в base.csv сразу отбросить, я в этих проверках даже разбираться не буду, просто отброшу и все.
  2. Те танки, которые не найдены в base.csv просто игнорируются? В твоем случае поддержка лежит на тебе, а в моем - на WG. Про значимость поддержки я уже писал.
  3. Я это раньше проверяю, еще перед вызовом: if (sdata.battles > def.BATTLES_LOW_LIMIT) delFirst(1000); Да я понял уже, то был просто комментарий. :) страну, тип танка и уровень можно убирать из base.csv - они есть в статистике, лучше их брать оттуда
  4. Если заведомо не нужно, зачем хранить? Чем чище код, тем легче его поддерживать. Но если потенциально может понадобиться, пусть будет. Оптимизировал, если интересно: Меня выделенное интересовало.
  5. country не планируется использовать? сейчас он не используется, можно убирать? С удалением 1000 первых боев надо будет еще думать. Вот обновленная функция (надеюсь, с JS проблем не будет?): // remove battles with bad stats (teaching)del_first = function(battles) { var min = 0; var min_rate; while (battles > 0) { min_rate = 1000; for (var i in sdata.vehicles) { var vdata = sdata.vehicles[i]; if (vdata.rate < min_rate && vdata.link && vdata.link.level < 8 && vdata.rate < 53) { min_rate = vdata.rate; min = i; } } if (min_rate == 1000) return; var vdata = sdata.vehicles[min]; battles -= vdata.battle_count; log(vdata.name + " " + vdata.rate + "\t" + vdata.battle_count + " Deleted"); delete sdata.vehicles[min]; } } Вложенный цикл еще надо будет переделать, желательно в один проход посчитать. Вот это можно чуть подробней объяснить?
  6. А вот фиг его знает как свет считать. Тут простыми формулами не обойдешься.
  7. да, спасибо. я это пропустил. конечно, форматирование не блещет, я тут break не увидел. :)
  8. Ок, так и сделаю. Технику < 100 боев вообще всегда игнорировать? Если она не нужна, мне проще удалить такие танки еще в самом начале расчета, чтобы не мешались.
  9. Поставил собираться выживаемость по танку, правда обновляться оно будет долго - сервер статы WG сильно ограничили по количеству запросов с одного IP, так что перебирать все не получится, придется ждать пока само обновится. Не, нету. Самим от патча к патчу приходится собирать. Хотя кое-что можно выдрать из клиента. Вот, можешь посмотреть наш проектик, который выдирает инфу по танкам из клиента (на C#): http://code.google.com/p/wot-xvm/source/browse/#svn%2Ftrunk%2Fsrc%2Fvehicle-bank-parser Вполне может быть и то что тебе нужно тоже можно оттуда получить. Лучше с 10 разберись, аналитика в 2007 слабая еще. Ошибка в коде: int first_del(int battles){ //удаляет 1000 боев с херовой статой long int i,min; float min_rate; while(battles>0){ min_rate=1000; for(i=0;i<300;i++)if(base[i].rate<min_rate && base[i].link && base[i].link->level<8 && base[i].rate<53){min_rate=base[i].rate;min=i;} if(min_rate==1000)return 1; base[min].link=0; battles-=base[min].battles; //printf("\n%s %f>%d Deleted",base[min].tank, base[min].rate, base[min].battles); return 1; } всегда возвращает 1, так что это условие не работает: if(!first_del(1000)){printf("\nNot enought battles");getchar();exit(0);}
  10. Чтобы привязку сделать, нужен ключ - в данном случае это имя танка, так как больше ничего на роль ключа не подходит. Ок, разберемся. Те, которые не совпадут будут пропускаться. Если тебе удобно работать с base.csv, пусть он в таком формате и остается, мне его прочитать и распарсить не сложно (уже сделал).
  11. Можно поставить локальный прокси, который будет работать как туннель. В принципе, даже fiddler2 должен для этого подойти. В XVM указать логин/пароль нельзя, и делать мы этого не будем, иначе нубы будут писать, что мы пароли воруем. Разбираться что это и для чего никто не будет. Увидят слово password с сразу выть начнут.
  12. Ну вот, например: СССР;Лёгкий танк;3;БТ-SV;240;62;33;280;0,4;315;120;1 Посмотрел внимательней, там вообще каша. Надо исправлять. Во-во, именно поэтому я писал, что алгоритм требует постоянной поддержки. Это реально самая большая сложность. Реализация - это фигня, а вот правильная реализация - это сложно, временами невыполнимо. Правильная реализация - это та, которую сделал и забыл. Как только появляется необходимость поддержки, все - жопа, когда-нибудь сдохнет. Hint: чем меньше зависимостей, тем меньше поддержки.
  13. Это понятно, просто в base.csv у вас используется localized_name, а нужно name
  14. @tourist, вы используете в base.csv локализованное название танка. Это не подходит, нужно использовать из поля "name": { "localized_name": "JagdPz IV", "name": "JagdPzIV", }, В поле "name" оно никогда не меняется, а локализованное WG может поменять в любой момент, к тому же оно для RU одно, для EU - другое. Переделаешь?
  15. Not working: {{teff}}, {{e}} - player per-vehicle efficiency (http://www.koreanrandom.com/forum/topic/1643-) {{tdb}}, {{tdb:4}} - average damage for current tank - damage/battles {{tdv}} - average damage efficiency for tank - damage/(battles*maxHP) {{tfb}} - average frags per battle for current tank {{tsb}} - average number of spotted enemies per battle for current tank {{c:tdb}}, {{c:tdv}}, {{c:tfb}}, {{c:tsb}} - dynamic colors for this macros {{c:e}} - color depended from player per-vehicle efficiency
  16. Не знаю, вроде я проверял 0.4 на мелких уровнях от 3 до 6, вроде показывает адекватно. Если понизить Kmin, то стата будет расти, а на мелких уровнях в основном нубы и педобиры. Нубов повышать смысла нет, а педобиров и так видно будет, так как у них параметры выше средних.
  17. Добавил фраги Уровень есть, а тип не для всех, мы его недавно только стали собирать, поэтому те, по кому стату не запрашивали - без типа. В принципе, могу отобрать 10к тех, кто с типом, правда это будет дольше, так как придется пропускать тех, кто не подходит. Сейчас попробую. Да, нормально отбирается. Обновил файл - добавил уровень и тип танка. calc.csv.7z
  18. Фраги можно добавить. а выживаемости по танку вроде как нет. Или тебе общая выживаемость нужна? Общую выживаемость (survived_battles) мы в БД не храним, давайте пока без нее. Если надо будет, добавим, но на обновление базы много времени надо будет. убери damage в заголовке, этой колонки нет. Я поправлю.
  19. Как наберется стата, так они выровняются. Пока я вручную обновляю (после НГ уже обновлю), потом подумаем как это делать автоматом.
  20. Сделал выборку рандомом для 10к юзеров. Заодно развернул по танкам, чтобы удобней было. Пойдет?
  21. Мало боев и мало игроков. Получается средний дамаг выше чем у 100-го сверху. Думаю, можно забить, такие вообще в бою встречаются?
  22. Тут общее по всем игрокам, а требуется, насколько я понял. по каждому игроку отдельно.
  23. 1. в 60-65 попадет много ротных, они испортят картину. 3. Можно будет попробовать сделать csv. Средний дамаг по танкам - это общий, или по каждому танку игрока? ЗЫ давайте определимся с термином, а то не понятно как результирующую цифру называть.
  24. У T-calc'а другие цели, он не для всех игроков необходим. Тебе как раз больше подойдет teff, который считается по дамагу. T-calc действительно начинает правильно работать только при достаточном количестве боев. Чем меньше боев учитывать, тем больше будет погрешность. В данном случае это критично.
  25. Мне кажется, teff (216) для кваса более правильный чем teff2. Ну не умеет он еще играть, куда ему рейтинг завышать? Думаю, пока не нужно. Вон, Kd и Kf я в итоге к общему свел, без существенной потери точности. Сложно по уровням подбирать получается, тогда уж для каждого танка нужно это вводить.
×
×
  • Create New...