Jump to content
Korean Random
fable_player

[Виджеты] Статистика за бой, сессию

Recommended Posts

В общем, Dossier Cache через Unpickler нормально парсится, даже лучше чем в питоне, за счет использования строгих типов данных. Теперь нужно все это залить в sqlite, сделать мониторилку-обновлялку, и можно пробовать делать свой Excel в танках :)

Share this post


Link to post

Short link
Share on other sites

 

 

можно пробовать делать свой Excel в танках

С мастером функций и диаграммами

Share this post


Link to post

Short link
Share on other sites

С мастером функций и диаграммами

и переименовать XVM в WoT-Zadrot ;)

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

@n0per, :no1: поржал:)

Edited by demon2597

Share this post


Link to post

Short link
Share on other sites

В общем, Dossier Cache через Unpickler нормально парсится, даже лучше чем в питоне, за счет использования строгих типов данных. Теперь нужно все это залить в sqlite, сделать мониторилку-обновлялку, и можно пробовать делать свой Excel в танках :)

Ура! Рад что хоть чем-то смог быть полезным проекту :) Не скиллом программинга за неимением времени, так хоть прицельным гуглингом. Очень надеюсь что скоро эта фича станет доступна для теста. Спасибо вам за ваши труды!

 

П.С.: подумалось мне, что если "стандартизировать" ответ от сборщика статистики, то можно отдать его (ответ) на растерзание мододелам которые к ServiceChannel цепляются. альтернативные варианты отображения это ведь тоже хорошо. Главное чтобы модоелы могли быть уверены что адрес для загрузки статы и формат не будут часто меняться...

Edited by pietrovich

Share this post


Link to post

Short link
Share on other sites

Ура! Рад что хоть чем-то смог быть полезным проекту :) Не скиллом программинга за неимением времени, так хоть прицельным гуглингом.

Да, тут что-то гугл меня подвел. А вроде бы даже знал что искал.

 

П.С.: подумалось мне, что если "стандартизировать" ответ от сборщика статистики, то можно отдать его (ответ) на растерзание мододелам которые к ServiceChannel цепляются. альтернативные варианты отображения это ведь тоже хорошо. Главное чтобы модоелы могли быть уверены что адрес для загрузки статы и формат не будут часто меняться...

У меня тут по ходу дела получилась полезная sqlite базюлька, в которой будет вся необходимая инфа. В принципе, не сложно будет отделить от основного кода, и сделать отдельную прогу-агент для сбора статы. В аттаче пример что получилось из моего досье-кэша.

 

вот несколько записей:

playerName │ vid   │ dt         │ data                                                                                                                                                                                                                                                                                                          │ company                                                                                                                                                                                  │ clan                                                                                                                                                                                   
───────────┼───────┼────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sirmax2    │ 9729  │ 1363101714 │ {"battleLifeTime":2153,"maxFrags":1,"xp":5439,"maxXP":1087,"battlesCount":11,"wins":5,"losses":6,"survivedBattles":1,"winAndSurvived":1,"frags":2,"shots":63,"hits":108,"spotted":42,"damageDealt":1098,"damageReceived":4952,"treesCut":19,"capturePoints":0,"droppedCapturePoints":0}                       │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0} │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0}
sirmax2    │ 6161  │ 1363097104 │ {"battleLifeTime":7487,"maxFrags":4,"xp":14650,"maxXP":831,"battlesCount":44,"wins":27,"losses":16,"survivedBattles":9,"winAndSurvived":6,"frags":27,"shots":1087,"hits":580,"spotted":93,"damageDealt":11268,"damageReceived":9791,"treesCut":14,"capturePoints":59,"droppedCapturePoints":8}                │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0} │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0}
sirmax2    │ 3393  │ 1363099394 │ {"battleLifeTime":6186,"maxFrags":4,"xp":5439,"maxXP":568,"battlesCount":20,"wins":11,"losses":8,"survivedBattles":9,"winAndSurvived":9,"frags":30,"shots":63,"hits":57,"spotted":4,"damageDealt":7487,"damageReceived":1343,"treesCut":2,"capturePoints":0,"droppedCapturePoints":0}                         │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0} │ {"xp":0,"battlesCount":0,"wins":0,"losses":0,"survivedBattles":0,"frags":0,"shots":0,"hits":0,"spotted":0,"damageDealt":0,"damageReceived":0,"capturePoints":0,"droppedCapturePoints":0}

Я пока в json пихаю, если что, некоторые поля можно будет выделить отдельно.

И стата будет поделена на рандомную, ротную и клановую.

xvm-stat.db.zip

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites

И стата будет поделена на рандомную, ротную и клановую.

Эм... Опасное нововведение, теперь ревнители "игры для удовольствия" не смогут заявлять что кто-то "стату в ротах понабивал". Как бы это не обернулось волной пожаров из-за подгоревших стульев :")

 

SQLite база это хорошо, но я имел в виду несколько иную точку интеграции с мододелами.

К сожалению я еще не имел возможности вдумчиво поковыряться в исходниках, поэтому мои предположения базируются пока только на предыдущем опыте и примерных возможностях компонентов которые входят в поставку/требования XVM. Если я правильно понимаю идею, то Dokan используется для создания "виртуальной папки" и перехвата обращений к ней, затем по имени "виртуального файла" рассчитывается что вернуть в качестве его контента. Во флеш все это тянется стандартными loadXml/LoadVars.load/XML.load/URLLoader.load или как там нынче во флеше читают данные с remote url. Т.е. технически любой SWF мог-бы читать данные предоставляемые XVM, если бы знал что и откуда  читать, и для них это выглядело бы не сложнее чтения из любого другого локального файла.

Если я прав, то просто предоставив мододелам источник для чтения статистики за последний бой, мы бы получили еще массу приятных доработок и в других модах. А вот из sqlite базы, емнип, читать из flash вроде раньше нельзя было. Т.е. sqlite это круто для тех кто быдет делать внешние утилиты, но в клиент эту информацию не затащить...

 

П.С.: посмотрел внимательно на JSON, похоже можно на основании извлекаемых данных еще и ачивку "Медаль лесоруба" выдавать :)

Edited by pietrovich

Share this post


Link to post

Short link
Share on other sites

Эм... Опасное нововведение, теперь ревнители "игры для удовольствия" не смогут заявлять что кто-то "стату в ротах понабивал". Как бы это не обернулось волной пожаров из-за подгоревших стульев :")

Этого же никто не будет видеть, кроме как тебя самого.

Чужое досье-кэш не посмотришь никак.

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

Эм... Опасное нововведение, теперь ревнители "игры для удовольствия" не смогут заявлять что кто-то "стату в ротах понабивал". Как бы это не обернулось волной пожаров из-за подгоревших стульев :")

Турин уже ответил, дополню только, что меня меньше всего волнует что там олени будут заявлять. Если у них такие способы садо-мазо-аутотроллинга, так пусть развлекаются. Я обычно с попкорном за этим наблюдаю.

 

Если я правильно понимаю идею, то Dokan используется для создания "виртуальной папки" и перехвата обращений к ней, затем по имени "виртуального файла" рассчитывается что вернуть в качестве его контента. Если я прав, то просто предоставив мододелам источник для чтения статистики за последний бой, мы бы получили еще массу приятных доработок и в других модах. 

Все так, и другие мододелы могут вызывать команды из xvm-stat. Но я бы предпочел чтобы мододелы подключались к XVM.

 

 

П.С.: посмотрел внимательно на JSON, похоже можно на основании извлекаемых данных еще и ачивку "Медаль лесоруба" выдавать :)

Хе, углядел. Я хотел сюрпризик сделать. :)

Share this post


Link to post

Short link
Share on other sites
Этого же никто не будет видеть, кроме как тебя самого.

 

Это, кстати, печально.

Если бы была возможность аплоадить разделенную статистику на сервер это была бы очередная киллер-фича. Сейчас довольно часто бывает что видишь в команде игрока с неплохой статой, включаешь его в свои планы и рассчитываешь на его адекватность, а он порет какую-то херню и ололо-сливается так и не оказав влияния на исход боя. При этом вроде и по танку у него все хорошо было и в среднем. Может, конечно, у него настроение такое было или просто не судьба, со мной тоже иногда так бывает, но есть подозрение что чаще это суровые ротники, заглянувшие без взвода в рандом - сунулись, растерялись, померли. Как я. когда пытаюсь в роты сунуться. Поэтому для рандома я бы предпочел видеть чистую, рандомную, стату отдельно и общую отдельно. Так можно было бы сразу видеть у кого руки растут откуда надо, но понимания ситуации хватает не всегда, а у кого и не руки, да и не растут. Или кто по всем статьям "папка нагибатор", на которого можно рассчитывать или опасаться, смотря в какой команде :) TWR в принципе немного выручает, но все-таки точные данные, дернутые из кеша. были бы лучше.

 

Я обычно с попкорном за этим наблюдаю.

 

Ну да, сидишь такой с попкорном, и тут сирены и с потолка капать начинает - у соседа сверху стул загорелся и пожарные все пеной залили. Так ведь и до обвинений в терроризме и массовых поджегах недалеко :D

 

Посмотрел еще немного на json и возникли еще вопросы:

В первой строке hits больше чем shots. Это как? Что тaкое hits, это "мы попали" или "в нас попали"?

battleLifeTime - это время жизни в бою? Имхо, эта цифра без привязки к продолжительности боя ни о чем. 4 минуты в бою это много или мало? А если бой как раз 4 минуты и продлился? Хотелось бы видеть еще какое-то отношение к продолжительности боя, наверное. Может быть есть возможность за сессию извлекать еще среднее отношение lifetime/к общей продолжительности боя? Т.е. если я вижу у себя низкий процент побед за сессию то хотелось бы еще иметь возможность подмечать корреляции с другими параметрами и TTL ту  нужен не в абсолютных цифрах, а относительно боя. Если процент низкий и сливаемся в первой половине боя то может не стоит лезть на передовую? И наоборот, живем на светляке до конца и при этом не побеждаем - нефиг по кустам ныкаться, светить надо.

Edited by pietrovich

Share this post


Link to post

Short link
Share on other sites

В первой строке hits больше чем shots. Это как? Что тaкое hits, это "мы попали" или "в нас попали"?

Глюк unpickler'а, исправлен.

Хотя ХЗ. Рано еще анализировать, собрать надо.

 

battleLifeTime - это время жизни в бою? Имхо, эта цифра без привязки к продолжительности боя ни о чем. 4 минуты в бою это много или мало? А если бой как раз 4 минуты и продлился?

Ну что есть, то есть.

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites

 

 

Если бы была возможность аплоадить разделенную статистику на сервер это была бы очередная киллер-фича.

Не была бы, ибо показывало бы только тех, у кого XVM стоит, плюс фича включена. Плюс наверняка можно было бы мухлевать, отправляя на сервак неверные данные.

Надежнее стату за последние N боев хранить - там и верно будет, и для всех игроков. Но пока реализовывать не хотят, и место на серваке не резиновое.

Share this post


Link to post

Short link
Share on other sites

 

В первой строке hits больше чем shots. Это как? Что тaкое hits, это "мы попали" или "в нас попали"?

shots - всего выстрелов

hits - всего попаданий

 

В моем кеше shots=223724, hits=178310

178310/223724=0.797

ВГ пишут, что у меня точность 80%

Share this post


Link to post

Short link
Share on other sites

Я не пытаюсь понять почему точность округлили! А только подтвердить значения переменных hits и shots. Mr A ты слишком часто людей за одноклеточных считаешь!

  • Upvote 2
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Я не пытаюсь понять почему точность округлили!

Да ну, цитату нужно прочитать, на что ответ был дан.

  • Upvote 1
  • Downvote 4

Share this post


Link to post

Short link
Share on other sites

Добрый день. 

 

с этой ветки http://forum.worldoftanks.ru/index.php?/topic/417855-086-%D0%BC%D0%BE%D0%B4-%D1%86%D0%B2%D0%B5%D1%82%D0%BD%D1%8B%D1%85-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-mcm-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BE-28-06-2013-%D0%B8%D1%82%D0%BE%D0%B3%D0%BE/page__st__1960#top

меня направили сюда. 

 

так вот, хочется получить стату за сутки(у условиях акций это необходимо), а не за сессию. честно признаюсь пролистал ветку быстро, так что мог и не заметить обсуждения этой проблемы. 

я посмотрел декомпилированые исходники, походу надо немного кода добавить в метод pushMessages в net.wargaming.messenger.controls.ServiceMessageList что бы тот сохранял стату между сессиями да и все. так это?

 

могу поучаствовать в реализации фичи? 

Share this post


Link to post

Short link
Share on other sites

Да ну, цитату нужно прочитать, на что ответ был дан.

Mr A ты слишком часто людей за одноклеточных считаешь!

 

Добрый день. 

 

с этой ветки http://forum.worldoftanks.ru/index.php?/topic/417855-086-%D0%BC%D0%BE%D0%B4-%D1%86%D0%B2%D0%B5%D1%82%D0%BD%D1%8B%D1%85-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9-mcm-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BE-28-06-2013-%D0%B8%D1%82%D0%BE%D0%B3%D0%BE/page__st__1960#top

меня направили сюда. 

 

так вот, хочется получить стату за сутки(у условиях акций это необходимо), а не за сессию. честно признаюсь пролистал ветку быстро, так что мог и не заметить обсуждения этой проблемы. 

я посмотрел декомпилированые исходники, походу надо немного кода добавить в метод pushMessages в net.wargaming.messenger.controls.ServiceMessageList что бы тот сохранял стату между сессиями да и все. так это?

 

могу поучаствовать в реализации фичи? 

Пока вариант от команды XVM не готов, могу посоветовать онлайн анализатор досьекеша с выводом посуточной статистики.

http://www.vbaddict.net/adu/ActiveDossierUploader.exe

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Mr A ты слишком часто людей за одноклеточных считаешь!

 

Пока вариант от команды XVM не готов, могу посоветовать онлайн анализатор досьекеша с выводом посуточной статистики.

http://www.vbaddict.net/adu/ActiveDossierUploader.exe

спс. да вот я пытался анализатор юзать. у меня дельту толком не вычисляет.  еще раз попробую 

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...