Автор Тема: WoT battle results -> .CSV  (Прочитано 3442 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« : Февраль 06, 2016, 20:49:18 »
По просьбам, накидал небольшой скрипт - экспортирует данные из файлов с деталями боя WoT (файлы вида 13006580236152.dat) в формат csv, который можно открыть в любых электронных таблицах.

Поддерживаются версии WoT 0.8.0 - 0.9.7
Более поздние версии не поддерживаются, так как в связи с началом тестов стальной охоты и прочего сильно поменялась структура файлов.

P.S. сорри за размер, скрипт на Python. Зато ничего устанавливать не нужно =)

UPD:
Обновил вложение - добавил еще одну проверку файла, дабы пропускать испорченные.
« Последнее редактирование: Февраль 07, 2016, 00:08:07 от CrazySys »

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #1 : Февраль 06, 2016, 21:14:20 »
Речь идёт о файлах из папки battle_results (%APPDATA%\Wargaming.net\WorldOfTanks\battle_results), которые генерируются после каждого боя и содержат данные каждого боя текущей игровой сессии. То есть, содержат в себе подробности последних сыгранных боёв, которые мы можем увидеть по окончанию каждого боя в таком вот виде.
Показать/скрыть спойлер



Файлы нужно закидывать в папку проги data.
« Последнее редактирование: Февраль 07, 2016, 00:08:28 от CrazySys »

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #2 : Февраль 18, 2016, 18:20:52 »
Очень много полей, но их значения не всегда понятны, даже возникли затруднения с определением танка по которому приведены данные.  :)
Нет ли случайно перевода хотя бы части из них?

Прошу пардона за свою неграмотность, а что такое 'allies:' и 'enemies:'?

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #3 : Февраль 19, 2016, 01:16:08 »
Поддерживаются версии WoT 0.8.0 - 0.9.7
А под 0.9.8+ доделываться будет?

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #4 : Февраль 19, 2016, 13:45:41 »
Нет ли случайно перевода хотя бы части из них?
Там названия полей те же что и в ресурсах самой игры.
ID техники - typeCompDescr
allies - союзники, enemies - противники, соответственно ниже идут суммы по командам

По остальным полям - спрашивай, если не понятно, расшифрую. Перевода в готовом виде нет :(

А под 0.9.8+ доделываться будет?
Если честно, то лень.
Так как в 0.9.8 сильно поменялась структура объектов в послебоевой статистике - в одном файле может быть до 3 танков у каждого участника - развернуть в строку несколько сложнее чем раньше.

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #5 : Февраль 21, 2016, 07:04:58 »
Если честно, то лень.
Ну пожааааалуйста, ну сдееееелай!

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #6 : Февраль 23, 2016, 00:25:38 »
Пока не до этого. Может быть позже.

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #7 : Февраль 23, 2016, 16:55:33 »
Можно список всех "arenaID"? А то кроме номеров не написано что за карта и непонятно как эти номера присваивались.

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #8 : Февраль 24, 2016, 00:20:36 »
Можно. В аттаче.
Присваивались номера самой КВГ, я тут ни при чем =) У них много где подобный зоопарк в ресурсах.

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #9 : Февраль 24, 2016, 00:35:04 »
Можно. В аттаче.
У тебя отсутствуют 5 карт, по четырём номера есть.
36   -   42_north_america   -   Порт
33   -   43_north_america   -   Северо-Запад
?   -   51_asia   -   Хребет Дракона
50   -   85_winter   -   Северогорск (Белогорск-19)
58   -   87_ruinberg_on_fire   -   Руинберг в огне
« Последнее редактирование: Февраль 24, 2016, 00:53:37 от Progrev_T »

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #10 : Февраль 24, 2016, 11:54:49 »
Скорее всего эти карты удалены из ресурсов игры.

Я не проверяю это дело давно - все само из них тянется. Посмотрю.

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #11 : Февраль 24, 2016, 12:17:40 »
В аттаче все карты появлявшиеся в ресурсах с патча 0.8.10

Для 72 и 74 нет локализованных названий, так как переехали на новую архитектуру БД и перестали в ней хранить локализованные названия чего-либо.

Обращаю внимание, что ID могут дублироваться. Когда-то на этом ID были акционные карты, но потом на их место ввели обычные:
# id, name, name_ru
70, 109_battlecity_ny, Зимняя битва
70, 101_dday, Оверлорд

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #12 : Февраль 24, 2016, 13:40:47 »
390 боёв на картах вот с такими номерами.
Показать/скрыть спойлер
1957
1983
65538
65539
65540
65541
65542
65543
65544
65545
65549
65550
65553
65556
65557
65560
65587
65593
65594
131073
131080
131093
196609
196610
196611
196612
196613
196614
196615
196616
196617
196618
196620
196621
196622
196623
196624
196626
196628
196629
196630
196631
196632
196634
196639
196640
196641
196642
196651
196657
196658
196660
196663
196665
196666
393219
393271




А как даты правильно переводятся с чисел на нормальные?

Оффлайн CrazySys

  • Разработчик
  • *****
  • Сообщений: 1954
  • Репутация: 50
    • wotlogger.ru
WoT battle results -> .CSV
« Ответ #13 : Февраль 24, 2016, 14:20:29 »
Внутри arenaID не только номер карты, еще и режим боя (штурм/встречка и т.д.), разворачиваются побитовыми операторами:
arenaID=196651
номер карты = arenaID & 65535
режим боя = arenaID >> 16
В данном случае, для 196651:
номер карты =BITAND(arenaID;65535) // 43 - Скрытая деревня
режим боя =BITRSHIFT(arenaID;16) // 3 - Противостояние

Показать/скрыть спойлер
id, type, name
0, ctf, Стандартный бой
1, domination, Встречный бой
2, assault, Штурм
3, nations, Противостояние
5, ctf2, Завоевание
6, escort, Эскорт


в файлах даты в виде unix_time, он же timestamp (кол-во секунд прошедших с 00:00:00 01.01.1970)

=(((COLUMN_ID_HERE/60)/60)/24)+DATE(1970,1,1)

Оффлайн Progrev_T

  • Альфа-тестер
  • ***
  • Сообщений: 67
  • Репутация: 0
WoT battle results -> .CSV
« Ответ #14 : Февраль 24, 2016, 15:59:07 »
Работаю с экселем.

С датой разобрался. =(((число/60)/60)/24)+ДАТА(1970;1;1)

С номером карты тоже. =БИТ.И(arenaID;65535)
Но если arenaID < 65535, то arenaID = arenaID