Jump to content
Korean Random

Leaderboard


Popular Content

Showing content with the highest reputation since 06/16/18 in all areas

  1. 24 points
    (See English translation below) Всем привет, Мы подготовили специальную версию редактора ангаров для мододелов, качать здесь. Предоставляем "как есть", в редакторе могут быть баги, странные костыли и неработающий функционал, но в целом он вполне работоспособен, и в нем, к примеру, делался ангар для мода Girls und Panzer. В случае возникновения вопросов рекомендую обращаться к @RAGEQUIT, у него уже есть опыт работы с редактором. ========== Hey guys, We've prepared a special version of our internal hangar editor for mod creators, download link. World Editor is provided "as is", and it may contain bugs, broken features and generate lots of non-relevant error messages. Still, it should be operable; for example, mods like Girls und Panzer and Independence Day Garage were created using this particular version. If you have any questions, please ask them in this topic.
  2. 17 points
    xvm-ddar-config.zip Настройки для правильной работы прицела Для меня танки — это развлечение и отдых. Мне важно удовольствие от процесса игры. Я не вижу смысла тратить время и силы на запоминание с какой скоростью заряжается WZ-111 1-4, сколько дамага мне в лоб может выписать Leo или засвечусь ли я, если выстрелю сейчас в 45TP. Цель создания этого конфига — лучше понимать, что происходит на поле боя и тратить на это меньше мозгового топлива. Конфиг частично написан мной, частично взят из других конфигов и изменен, а частично просто честно украден у Некроманта и оставлен как есть. Надеюсь, кому-то с этим конфигом будет играть приятнее. Спасибо Некроманту за конфиг-донор, ktulho, night_dragon_on и Kotyarko_O за скрипты и всем разработчикам xvm за наше счастливое детство. Окно загрузки боя Окно статистики по клавише Tab Три левых числа - статистика конкретного танка, три следующих - статистика игрока в целом. Количество боев, рейтинг и процент побед. Яркий маркер слева говорит о том, что у игрока установлен xvm и включены сервисы xmqp. Обычные уши и хитлог Слева от иконки количество хп. В хитлоге верхняя часть показывает ваш дамаг, нижняя - дамаг с вашей помощью. Уши по клавише Alt Слева направо: Статистика wn8, статистика по танку xte, процент побед, количество боев. На иконке время перезарядки и дамаг танка. Прицел Слева хп, справа информация о снаряде и перезарядка. Сверху дальность, становится зелёной, если расстояние до цели больше ее обзора. При повреждении критически важных модулей или членов экипажа рядом с точкой прицеливании появляется соответствующая иконка и можно отремонтироваться просто кликнув на неё. Прицел при наведении и лампочка Если цель пробьется, прицел становится зеленым, если не пробьется - красным. Если хз, то желтым. Зеленые цифры показывают приведенную броню в точке прицеливания. Артиллерийский прицел В арт-прицел добавлены время полета снаряда и время сведения. Круги помогают рассчитать упреждение по движущемуся танку. Маркеры У противников на полосе есть два числа. Слева время перезарядки. Если оно приглушенное, то вы зарядитесь быстрее противника. Если ярко-белое, то он быстрее. Справа его дамаг. По альту показывается ещё и бронепробитие. Если противник шотный, над ним загорается ромбик. Дамаг-панель Миникарта Ангар В обычной карусели есть фон, который позволяет мельком понять тип танка. И количество опыта до полной прокачки. Карусель по клавише Alt Слева: средний дамаг, процент побед, рейтинг, количество боёв. Справа процент метки на стволе и количество опыта до полной прокачки. Дополнительно: Иконки для дерева исследований ddar.icons.wotmod
  3. 17 points
    ModsSettingsAPI Инструмент для создания меню настроек модификаций Автор модификации: @IzeBerg ModsSettingsApi - это модификация клиента игры World of Tanks, которая предоставляет сторонним разработчикам инструментарий для создания удобного меню настроек. Основные этапы работы модификации заключается в следующем: При загрузке клиента игры modsSettingsApi загружает файл сохраненных настроек сторонних модификаций. Если файл отсутствует - будет создан новый. Затем modsSettingsApi ожидает подключения к себе сторонних модификаций посредством программного интерфейса. Для генерации меню настроек, сторонняя модификация должна отправить в modsSettingsApi шаблон, содержащий в себе описание необходимых для отображения графических элементов. Кроме шаблона сторонняя модификация должна отправить ссылку на функцию, которая будет вызываться при любом изменении настроек стороннего мода. При необходимости обработки нажатия дополнительных кнопок модификация должна отправить ссылку на функцию, которая будет вызывается при нажатии на кнопку с передачей текущего значения. При изменении настроек modsSettingsApi будет вызывать переданный модификацией метод с новыми параметрами. При использовании кнопок, ModSettingsAPI будет вызывать переданный модификацией метод с текущим параметром и его значением. Полное описание работы модификации с примерами можно прочитать здесь: http://wiki.wargaming.net/ru/ModsettingsAPI Официальный репозиторий модификации на Bitbucket: https://bitbucket.org/The_IzeBerg/modssettingsapi/ Ссылка на скачивание: https://bitbucket.org/The_IzeBerg/modssettingsapi/downloads/ Репортить баги можно сразу на Bitbucket используя багтрекер. Предложения по улучшению модификации можно посылать туда же, создавая тикет с заголовком [Suggestion] и тэгом [Proposal]
  4. 15 points
    Версия 055 (2018-12-11) Что нового: поддержка 1.3.0.0 исправлена загрузка ресурсов для колесной техники (Roman Astafev) Скачать
  5. 14 points
    Поддержать развитие мода Visa 4276 7400 1529 7732 Qiwi +7 914 802 18 59
  6. 13 points
    Может кому приглянутся Новая папка (2).rar
  7. 13 points
  8. 13 points
    Доброе утро! Скоро данной модификации будет 5 лет. Мод тех времен, когда Серб говорил - ужас какой, а Крута - страдай пидарас, твои мучения радуют нас) Тогда, 5 лет назад, я делал для себя калькулятор и была идея опубликовать для всех. logos.swf - тогда с этого все начиналось. К дню рождения мода, то есть, публикации на официальном форуме и на форуме koreanrandom - подготовлю немного ностальгии и выложу весь проект в исходных кодах.
  9. 12 points
    1. Страница поддержки для желающих отблагодарить 2. При публикации файлов на сторонних источниках указывайте авторство hideHangarElements Скрипт предназначен для: --- отключения отображения кнопки "Реферальная программа"; --- отключения отображения кнопки "Общий чат"; --- отключения отображения рекламы премиум техники (на фоне в ангаре); --- отключения отображения информационного окна с перечнем полученных наград за "Довольствие"; --- отключения отображения всплывающего окна об открытии "Резервного хранилища" при входе в ангар; --- отключения отображения всплывающих сообщений и счетчика в меню от "Полевой почты"; --- отключения отображения кнопки "Сессионная статистика" и/или счетчика проведенных боев на кнопке. Поставляется с конфигурационным файлом. Установка: Содержимое архива распаковать в корневую директорию клиента Настройка: mods\configs\hangarAddons\ "mods_name.json" Скачать hangarAddons.zip
  10. 12 points
    Как-то я бродил по интернетам и заметил, что Wargaming предлагают присоединиться к путешествию во времени и посмотреть на клиент образца 2012 года. Что же, нам тоже есть что вспомнить :) Итак, XVM Classic, на базе XVM 1.7 от 12 марта 2012 года. Изменения относительно классического XVM 1.7 * адаптированно под современные серверы XVM API * используется рейтинг WN8 вместо EFF * изменена работа флага /debug у wot-xvm-proxy. Теперь он не запускает клиент самостоятельно, а просто ждет, пока не нажмут Enter. Может быть полезно для запуска реплеев. Установка 0. Установите классический WoT: https://wotclassic.ru/ 1. Установите MSVS Redist 2017 x64 https://aka.ms/vs/15/release/vc_redist.x64.exe 2. Установите Dokan_x64.msi из каталога Dokan 3. Скопируйте содержимое каталога Client в каталог WoT 4. Если необходимо, настройте конфигурационный файл: `\res\gui\flash\XVM.xvmconf` Можно выбрать готовый из каталога `Sample` 5. Для отображения статистики необходимо запускать файл wot-xvm-proxy.exe (игра будет запущена автоматически). ВАЖНО. Вы также должны хотя бы один раз зайти в современный клиент (WoT 1.4.1) с установленным XVM, чтобы статистика начала отображаться. Скачать XVM-Classic_1.7_2.zip История версий * 1.7_3 * исправлено отображение OTM * 1.7_2 * исправлен хардкод пути к WoT * исправлена опечатка в слове lychshe * 1.7_1 * первый публичный выпуск Оно даже работает XVM-Classic_1.7_3.zip
  11. 12 points
     Обновление конфига: bitbucket.org
  12. 12 points
    This is a quick Link to all of Hawg's 1.1.0 Updated mods , 64 Updated mods that are on Hawg's Main Project Page XVM (5) Damage Mods (9) Mini Maps (4) HawgXVM Glass Damage Panel Hawg's MiniMap HawgPack Needle Damage Indicator V2 Spg - TD -Passive Scout- Tactical Minimap's Hawg's XVM Nickname Icons V1 Damage Indicator Tactical Battle Loading MiniMap's Arty MiniMap Aim Paint Balls Damage Passive Scout Tactical MiniMap Hawg & 150 6th Sense XVM Bulbs V2 Damage Indicator Target Arrow V1 Needle Color blind Damage Indicator V1 Sixth Sense (7) Target Arrow's V2 I am Groot 6th sense &  + Sound ColorBlind Paint Ball Damage Contours Icons (1) Achievement Medals 6th Sense Real Time Contour Icons ++ 101 Sixth Sense Sound's Mark of Excellence (2) NEW Hawg & 150 6th Sense No XVM Bulbs Army Rank Mark Of Excellence Consumable,Shells,Equipment Informer Suaron 6th sense + With Sound Mark Of Excellence HawgPack Lite Sabaton 6th sense Cobra 6th sence Tank Carousel (4) Sky & Clouds (1) Tank Carousel LED Lights Blue Sky Carousel Flags Remover Battle Results ( 18 ) Carousel Flags Other (8) BW Battle Results No Carousel Tank Icons Radial Menu Tank Battle Results Login (3) Battle Timers Darth Vader Battle Results Game Loading Screens Colored Pre Battle Timer Cobra Battle Results Hawg's Login Screen Shells By Lynnpaul Pin Up Girl Battle Results Hot Beach Patry Hawg's Flag Emblems Simple Black Window Battle Results Hawg's UnderWater Timer Simple Rustic Steel Battle Results Crewman (1) Base Cap Circles V.1 Leviathan Battle Results Invisible Man Crewman Base Cap Circles V2 Skulls Battle Results Wonder Woman Battle Results Grim Reaper Battle Results Fire Battle Results Marvin The Martian Battle Results USA Flag Battle Results Sabaton Battle Results Trump's Battle Results Minnion Battle Results UK Flags Battle Results
  13. 12 points
    NetStatisticsModules(NSM) Версия: 1.2.5 | Ссылка: Git-Hub Пакет NSM это библиотека модулей с открытым исходным кодом для мододелов, в которой реализованы основные инструменты для получения статистики игроков с серверов WG и XVM и различные математические функции, такие как расчет того или иного рейтинга, или показателя, расчет шансов на победу и т.д. Библиотека периодически обновляется и дополняется. Состав пакета: xvm_statistics - модуль для получения статистики игроков с сервера XVM wg_statistics - модуль для получения статистики игроков с сервера WG rating_calculation - модуль для расчета рейтингов игроков и различных статистических показателей victory_chances - модуль для расчета шансов на победу в бою При использовании функций и эвентов из модулей статистики, обращающихся к серверам WG-API и XVM-API, необходимо указывать <application_id> вашего приложения. Чтобы его получить достаточно зайти на сайт https://developers.wargaming.net и зарегистрировать свой мод как автономное приложение, после чего ему будет присвоен токен из 33 символов, это и есть <application_id>. Используйте его при работе с библиотекой и все ваши обращения к серверам будут идентифицироваться посредством этого токена. В случае с WG-API вы также сможете в своем личном кабинете наблюдать статистику запросов вашего мода. Для применения пакета достаточно положить его в папку mods\X.X.X\. После чего можно импортировать из этого пакеты все необходимые вашему моду функции и эвенты и использовать их в коде своего мода. Ниже дается подробное описание функций и эвентов и примеры их использования по каждому из модулей NSM. Модуль: xvm_statistics События: g_XVMStatisticsEvents addStatsAccountBecomePlayer - подписаться на событие AccountBecomePlayer, которое возвращает словарь со статистикой игрока по аккаунту и по танкам при авторизации в ангаре (требуется активация на сайте XVM). Формат словаря {'players': [{...}]}. Ниже пример подписки и отписки от эвента. from gui.mods.xvm_statistics import g_XVMStatisticsEvents #Returns the full statistics of the player during authorization in the game client, #if there is no data on the server or there is no connection or there is no token, it returns None def event(statistic): statistic -> dict or None #{'players': [{'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'wn8': 2093, 'xp': 15118810, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295000L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'memberhistory': [], 'is_banned': None, 'max_frg': 11, 'flag': None, 'dt': '2018-12-15T20:21:35.22+00:00', 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'srv': 6873, 'w': 11715, 'v': {'8465': {'b': 129, 'frg': 141, 'mom': 3, 'dmg': 167647, 'cap': 471, 'srv': 40, 'w': 88, 'spo': 193, 'xp': 106742, 'id': '8465', 'def': 13}, ...}, 'lvl': 7.54826, '_id': 2365719, 'def': 14626}]} ... g_XVMStatisticsEvents.addStatsAccountBecomePlayer(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delStatsAccountBecomePlayer(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delStatsAccountBecomePlayer(<application_id>=str) addStatsBattleLoaded - подписаться на событие BattleLoaded, которое возвращает словарь со статистикой игроков по аккаунту и по текущему танку при загрузке боя (требуется активация на сайте XVM). Формат словаря {'players': [{...}, {...}, ...]}. В примере ниже статистика двух игроков, зашедших в тренировочный бой на RU 251 и ЛТТБ. #Returns the statistics of all players when the battle is loaded, #if there is no connection to the server or there is no token, then it returns None def event(statistic): statistic -> dict or None ... g_XVMStatisticsEvents.addStatsBattleLoaded(<application_id>=str, event=func) #{'players': [{'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'xp': 15118810, 'wn8': 2093, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295220L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'max_frg': 11, 'flag': None, 'is_banned': None, 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'r': 8970, 'srv': 6873, 'w': 11715, # 'v': {'wtr': 2095, 'b': 86, 'frg': 33, 'mom': 3, 'dmg': 63105, 'cap': 37, 'srv': 10, 'w': 39, 'spo': 154, 'xp': 55069, 'def': 17}, # 'lvl': 7.54826, '_id': 2365719, 'def': 14626}, # {'status': None, 'max_xp': 2304, 'dmg': 3102429, 'spo': 4802, 'xp': 1957580, 'wn8': 1276, 'frg': 3273, 'nm': 'stiiiiil777', 'ts': 1545087003283L, 'wgr': 4241, 'hip': 54, 'wtr': 3309, 'max_frg': 8, 'flag': None, 'is_banned': None, 'lang': None, 'b': 4003, 'e': 1034, 'cid': None, 'max_dmg': 4017, 'cap': 4717, 'dmg_r': 2573057, 'r': 4241, 'srv': 1057, 'w': 1958, # 'v': {'wtr': 2724, 'b': 79, 'frg': 30, 'mom': 3, 'dmg': 41240, 'cap': 67, 'srv': 7, 'w': 35, 'spo': 208, 'xp': 38228, 'def': 12}, # 'lvl': 6.43886, '_id': 2446623, 'def': 2871}]} ... g_XVMStatisticsEvents.delStatsBattleLoaded(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delStatsBattleLoaded(<application_id>=str) addStatsFullBattleLoaded - аналогично предыдущему событию, только возвращает статистику игроков по всем танкам (требуется активация на сайте XVM). #Returns the full statistics of all players when the battle is loaded, #if there is no connection to the server or there is no token, then it returns None def event(statistic): statistic -> dict or None ... g_XVMStatisticsEvents.addStatsFullBattleLoaded(<application_id>=str, event=func) #{'players': [{'status': None, 'max_xp': 2304, 'dmg': 3102429, 'spo': 4802, 'wn8': 1276, 'xp': 1957580, 'frg': 3273, 'nm': 'stiiiiil777', 'ts': 1545087003000L, 'wgr': 4241, 'hip': 54, 'wtr': 3309, 'memberhistory': [], 'is_banned': None, 'max_frg': 8, 'flag': None, 'dt': '2018-12-17T22:50:03.283+00:00', 'lang': None, 'b': 4003, 'e': 1034, 'cid': None, 'max_dmg': 4017, 'cap': 4717, 'dmg_r': 2573057, 'srv': 1057, 'w': 1958, # 'v': {'9249': {'wtr': 1197, 'b': 15, 'frg': 4, 'mom': 1, 'dmg': 7614, 'cap': 15, 'srv': 3, 'w': 7, 'spo': 1, 'xp': 4599, 'id': '9249', 'def': 0}, ...}, # 'lvl': 6.43886, '_id': 2446623, 'def': 2871}, # {'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'wn8': 2093, 'xp': 15118810, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295000L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'memberhistory': [], 'is_banned': None, 'max_frg': 11, 'flag': None, 'dt': '2018-12-15T20:21:35.22+00:00', 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'srv': 6873, 'w': 11715, # 'v': {'8465': {'b': 129, 'frg': 141, 'mom': 3, 'dmg': 167647, 'cap': 471, 'srv': 40, 'w': 88, 'spo': 193, 'xp': 106742, 'id': '8465', 'def': 13}, ...}, # 'lvl': 7.54826, '_id': 2365719, 'def': 14626}]} ... g_XVMStatisticsEvents.delStatsFullBattleLoaded(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delStatsFullBattleLoaded(<application_id>=str) Запросы: g_XVMConsole addAsyncReports - подписаться на встроенное событие AsyncReports, возвращающее результат запроса при асинхронном вызове (если вызываемая функция явно не указывалась в числе аргументов запроса). Ниже пример подписки и отписки от события. from gui.mods.xvm_statistics import g_XVMConsole #Returns reports from the server for the _Async requests, if no onAsyncReports is specified def event(statistic): statistic -> dict or None ... g_XVMConsole.addAsyncReports(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delAsyncReports(<application_id>=str, event=func) ... g_XVMStatisticsEvents.delAsyncReports(<application_id>=str) getStatsByID - возвращает словарь со статистикой игрока или игроков по аккаунту и по танкам, если известны их accountDBID (требуется активация на сайте XVM). Формат словаря {'players': [{...}, {...}, ...]}. getStatsByID_Async - асинхронная версия, при получении результата вызывает пользовательскую функцию onAsyncRepots, если она задана, иначе вызывает встроенное событие onAsyncReports. В onAsyncRepots можно передавать список функций. #Return statistics for one or more players with all the tanks by a accountDBID #IDs=[2365719, 34483, accountDBID, ...] or 2365719 only g_XVMConsole.getStatsByID(<application_id>=str, IDs=int or list, timeout=5.0) -> dict or None #{'players': [{'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'wn8': 2093, 'xp': 15118810, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295000L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'memberhistory': [], 'is_banned': None, 'max_frg': 11, 'flag': None, 'dt': '2018-12-15T20:21:35.22+00:00', 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'srv': 6873, 'w': 11715, 'v': {'8465': {'b': 129, 'frg': 141, 'mom': 3, 'dmg': 167647, 'cap': 471, 'srv': 40, 'w': 88, 'spo': 193, 'xp': 106742, 'id': '8465', 'def': 13}, ...}, 'lvl': 7.54826, '_id': 2365719, 'def': 14626}]} g_XVMConsole.getStatsByID_Async(<application_id>=str, IDs=int or list, onAsyncReports=None or func or list, timeout=5.0) getStatsByNick - возвращает словарь со статистикой игрока или игроков по аккаунту и по танкам, если известны их ники (требуется активация на сайте XVM). Формат словаря {'players': [{...}, {...}, ...]}. Если регион не указан, то он определяется автоматически по региону авторизовавшегося в клиенте игрока или по локализации клиента игры (см. g_XVMConsole.g_HomeRegion). getStatsByNick_Async - асинхронная версия, при получении результата вызывает пользовательскую функцию onAsyncRepots, если она задана, иначе вызывает встроенное событие onAsyncReports. В onAsyncRepots можно передавать список функций.. #The same, but with the help of the player's nickname #nicknames = ['Straik','MeeGo'] or 'Straik' only; region=('RU','EU','COM','ASIA') g_XVMConsole.getStatsByNick(<application_id>=str, nicknames=str or list, region='', timeout=5.0) -> dict or None #{'players': [{'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'wn8': 2093, 'xp': 15118810, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295000L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'memberhistory': [], 'is_banned': None, 'max_frg': 11, 'flag': None, 'dt': '2018-12-15T20:21:35.22+00:00', 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'srv': 6873, 'w': 11715, 'v': {'8465': {'b': 129, 'frg': 141, 'mom': 3, 'dmg': 167647, 'cap': 471, 'srv': 40, 'w': 88, 'spo': 193, 'xp': 106742, 'id': '8465', 'def': 13}, ...}, 'lvl': 7.54826, '_id': 2365719, 'def': 14626}]} g_XVMConsole.getStatsByNick_Async(<application_id>=str, nicknames=str or list, region='', onAsyncReports=None or func or list, timeout=5.0) getStats - возвращает словарь со статистикой игроков по аккаунту и по конкретному танку, если известны accountDBID игрока и задан compactDescr его танка (требуется активация на сайте XVM). Формат словаря {'players': [{...}, {...}, ...]}. getStats_Async - асинхронная версия, при получении результата вызывает пользовательскую функцию onAsyncRepots, если она задана, иначе вызывает встроенное событие onAsyncReports. В onAsyncRepots можно передавать список функций.. #Return statistics for a specific tank for one or multiple users #ids={2365719:54529, 4100782:51841, accountDBID:compactDescr, ...} g_XVMConsole.getStats(<application_id>=str, ids=dict) -> dict or None #{'players': [{'status': 1, 'max_xp': 2868, 'dmg': 29441665, 'spo': 22369, 'xp': 15118810, 'wn8': 2093, 'frg': 24127, 'nm': 'StranikS_Scan', 'ts': 1544905295220L, 'wgr': 8970, 'hip': 71, 'wtr': 6580, 'max_frg': 11, 'flag': None, 'is_banned': None, 'lang': None, 'b': 20029, 'e': 1457, 'cid': 69731, 'max_dmg': 8528, 'cap': 38302, 'dmg_r': 20473839, 'r': 8970, 'srv': 6873, 'w': 11715, # 'v': {'wtr': 2095, 'b': 86, 'frg': 33, 'mom': 3, 'dmg': 63105, 'cap': 37, 'srv': 10, 'w': 39, 'spo': 154, 'xp': 55069, 'def': 17}, # 'lvl': 7.54826, '_id': 2365719, 'def': 14626}, # {'status': None, 'max_xp': 2304, 'dmg': 3102429, 'spo': 4802, 'xp': 1957580, 'wn8': 1276, 'frg': 3273, 'nm': 'stiiiiil777', 'ts': 1545087003283L, 'wgr': 4241, 'hip': 54, 'wtr': 3309, 'max_frg': 8, 'flag': None, 'is_banned': None, 'lang': None, 'b': 4003, 'e': 1034, 'cid': None, 'max_dmg': 4017, 'cap': 4717, 'dmg_r': 2573057, 'r': 4241, 'srv': 1057, 'w': 1958, # 'v': {'wtr': 2724, 'b': 79, 'frg': 30, 'mom': 3, 'dmg': 41240, 'cap': 67, 'srv': 7, 'w': 35, 'spo': 208, 'xp': 38228, 'def': 12}, # 'lvl': 6.43886, '_id': 2446623, 'def': 2871}]} g_XVMConsole.getStats_Async(<application_id>=str, ids=dict, onAsyncReports=None or func or list) getOnlineUsersCount - возвращает количество игроков на серверах WG (требуется активация на сайте XVM). #Return online WOT-server statistics g_XVMConsole.getOnlineUsersCount(<application_id>=str) -> dict or None #{'e': [{'players_online': 65997, 'server': 'EU2'}, {'players_online': 93610, 'server': 'EU1'}], 'r': [{'players_online': 47301, 'server': 'RU8'}, {'players_online': 54485, 'server': 'RU7'}, {'players_online': 101362, 'server': 'RU2'}, {'players_online': 81508, 'server': 'RU1'}, {'players_online': 43960, 'server': 'RU3'}, {'players_online': 105694, 'server': 'RU6'}, {'players_online': 70492, 'server': 'RU5'}, {'players_online': 48227, 'server': 'RU4'}, {'players_online': 7066, 'server': 'RU9'}, {'players_online': 16221, 'server': 'RU10'}], 'asia': [{'players_online': 133, 'server': '503'}, {'players_online': 3999, 'server': '502'}], 'na': [{'players_online': 8899, 'server': '303'}, {'players_online': 356, 'server': '304'}, {'players_online': 4793, 'server': 'NA EAST'}]} Токен: g_UserToken Токен игрока, получаемый им при активации на сайте XVM. Если токена нет или он просрочен, то доступа к статистике не будет. Все вызовы будут возвращать None. Игроку достаточно активироваться на сайте XVM и перезайти в клиент игры и функционал опять заработает. from gui.mods.xvm_statistics import g_UserToken g_UserToken.accountDBID -> int or None g_UserToken.userToken -> str or None #Default value is '', can also take values: #'You need to be logged in once for authorization!' #'Requires activation on the XVM-website (https://modxvm.com/)!' #'No connection to the XVM-server!' g_UserToken.errorStatus -> str Домашний регион: g_HomeRegion Регион авторизовавшегося в ангаре игрока или регион соответствующий локализации клиента игры. from gui.mods.xvm_statistics import g_HomeRegion g_HomeRegion.accountDBID -> int or None g_HomeRegion.homeRegion -> str or None Модуль: wg_statistics События: g_WGStatisticsEvents addStatsAccountBecomePlayer - подписаться на событие AccountBecomePlayer, которое возвращает словарь со статистикой игрока по аккаунту и по танкам при авторизации в ангаре. Запрашиваются данные только по рандомным боям. Формат словаря {'players': [{...}]}. Ниже пример подписки и отписки от эвента. from gui.mods.wg_statistics import g_WGStatisticsEvents #Returns the full statistics of the player in random battles during authorization in the game client, #if there is no data on the server or server is unavailable, it returns None def event(statistic): statistic -> dict or None ... g_WGStatisticsEvents.addStatsAccountBecomePlayer(<application_id>=str, event=func) #{'players': [{'spotted': 22369, 'battles_on_stunning_vehicles': 2, # 'vehicles': {11265: {'spotted': 174, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 14, 'explosion_hits_received': 0, 'avg_damage_blocked': 280.0, 'capture_points': 595, 'no_damage_direct_hits_received': 4, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 664, 'piercings': 3, 'xp': 142066, 'in_garage': None, 'tank_id': 11265, 'damage_dealt': 164908, 'hits_percents': 64, 'stun_number': 0, 'draws': 5, 'hits': 975, 'losses': 84, 'battles': 214, 'piercings_received': 10, 'damage_received': 141906, 'survived_battles': 81, 'shots': 1514, 'wins': 125, 'frags': 230, 'dropped_capture_points': 89, 'mark_of_mastery': 4, 'tanking_factor': 0.25}, ...}, # 'avg_level': 7.54803, 'max_xp': 2868, 'avg_damage_blocked': 561.73, 'max_xp_tank_id': 529, 'explosion_hits': 242, 'global_rating': 8970, 'piercings': 48815, 'xp': 15118810, 'survived_battles': 6873, 'dropped_capture_points': 14626, 'client_language': 'r', 'hits_percents': 71, 'draws': 276, 'max_damage': 8528, 'battles': 20029, 'clan_id': 69731, 'damage_received': 20473839, 'avg_damage_assisted': 560.04, 'max_frags_tank_id': 12305, 'frags': 24127, 'stun_number': 10, 'tanking_factor': 0.44, 'avg_damage_assisted_radio': 431.61, 'direct_hits_received': 44950, 'account_id': 2365719, 'damage_dealt': 29441665, 'stun_assisted_damage': 1047, 'battle_avg_xp': 755, 'max_damage_tank_id': 16897, 'nickname': 'StranikS_Scan', 'capture_points': 38302, 'hits': 138087, 'last_battle_time': 1544904305, 'wins': 11715, 'losses': 8038, 'piercings_received': 32339, 'no_damage_direct_hits_received': 12606, 'max_frags': 11, 'shots': 193372, 'explosion_hits_received': 2208, 'avg_damage_assisted_track': 128.44}]} ... g_WGStatisticsEvents.delStatsAccountBecomePlayer(<application_id>=str, event=func) ... g_WGStatisticsEvents.delStatsAccountBecomePlayer(<application_id>=str) addStatsBattleLoaded - подписаться на событие BattleLoaded, которое возвращает словарь со статистикой игроков по аккаунту и по текущему танку при загрузке боя. Запрашиваются данные только по рандомным боям. Формат словаря {'players': [{...}, {...}, ...]}. В примере статистика двух игроков, зашедших в тренировочный бой на RU 251 и ЛТТБ. #Returns the statistics of all players and current tanks for random battles, when the battle is loaded #if there is no data on the server or server is unavailable, it returns None def event(statistic): statistic -> dict or None ... g_WGStatisticsEvents.addStatsBattleLoaded(<application_id>=str, event=func) #{'players': [{'spotted': 22369, 'battles_on_stunning_vehicles': 2, # 'vehicles': {'spotted': 154, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 315, 'explosion_hits_received': 21, 'avg_damage_blocked': 0.0, 'capture_points': 37, 'no_damage_direct_hits_received': 21, 'stun_assisted_damage': 0, 'explosion_hits': 19, 'battle_avg_xp': 640, 'piercings': 339, 'xp': 55069, 'in_garage': None, 'tank_id': 18449, 'damage_dealt': 63105, 'hits_percents': 66, 'stun_number': 0, 'draws': 0, 'hits': 471, 'losses': 47, 'battles': 86, 'piercings_received': 294, 'damage_received': 97933, 'survived_battles': 10, 'shots': 713, 'wins': 39, 'frags': 33, 'dropped_capture_points': 17, 'mark_of_mastery': 3, 'tanking_factor': 0.0}, # 'max_xp': 2868, 'avg_damage_blocked': 561.73, 'max_xp_tank_id': 529, 'explosion_hits': 242, 'global_rating': 8970, 'piercings': 48815, 'xp': 15118810, 'survived_battles': 6873, 'dropped_capture_points': 14626, 'client_language': 'r', 'hits_percents': 71, 'draws': 276, 'max_damage': 8528, 'battles': 20029, 'clan_id': 69731, 'damage_received': 20473839, 'avg_damage_assisted': 560.04, 'max_frags_tank_id': 12305, 'frags': 24127, 'stun_number': 10, 'tanking_factor': 0.44, 'avg_damage_assisted_radio': 431.61, 'direct_hits_received': 44950, 'account_id': 2365719, 'damage_dealt': 29441665, 'stun_assisted_damage': 1047, 'battle_avg_xp': 755, 'max_damage_tank_id': 16897, 'nickname': 'StranikS_Scan', 'capture_points': 38302, 'hits': 138087, 'last_battle_time': 1544904305, 'wins': 11715, 'losses': 8038, 'piercings_received': 32339, 'no_damage_direct_hits_received': 12606, 'max_frags': 11, 'shots': 193372, 'explosion_hits_received': 2208, 'avg_damage_assisted_track': 128.44}, # {'spotted': 4802, 'battles_on_stunning_vehicles': 33, # 'vehicles': {'spotted': 208, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 376, 'explosion_hits_received': 13, 'avg_damage_blocked': 156.01, 'capture_points': 67, 'no_damage_direct_hits_received': 64, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 484, 'piercings': 250, 'xp': 38228, 'in_garage': None, 'tank_id': 18433, 'damage_dealt': 41240, 'hits_percents': 59, 'stun_number': 0, 'draws': 2, 'hits': 344, 'losses': 42, 'battles': 79, 'piercings_received': 312, 'damage_received': 74223, 'survived_battles': 7, 'shots': 588, 'wins': 35, 'frags': 30, 'dropped_capture_points': 12, 'mark_of_mastery': 3, 'tanking_factor': 0.17}, # 'max_xp': 2304, 'avg_damage_blocked': 170.05, 'max_xp_tank_id': 16641, 'explosion_hits': 447, 'global_rating': 4241, 'piercings': 3302, 'xp': 1957580, 'survived_battles': 1057, 'dropped_capture_points': 2871, 'client_language': 'r', 'hits_percents': 54, 'draws': 66, 'max_damage': 4017, 'battles': 4003, 'clan_id': None, 'damage_received': 2573057, 'avg_damage_assisted': 199.54, 'max_frags_tank_id': 54289, 'frags': 3273, 'stun_number': 120, 'tanking_factor': 0.32, 'avg_damage_assisted_radio': 167.44, 'direct_hits_received': 6055, 'account_id': 2446623, 'damage_dealt': 3102429, 'stun_assisted_damage': 10171, 'battle_avg_xp': 489, 'max_damage_tank_id': 8977, 'nickname': 'stiiiiil777', 'capture_points': 4717, 'hits': 19191, 'last_battle_time': 1545078809, 'wins': 1958, 'losses': 1979, 'piercings_received': 4133, 'no_damage_direct_hits_received': 1917, 'max_frags': 8, 'shots': 35342, 'explosion_hits_received': 149, 'avg_damage_assisted_track': 32.1}]} ... g_WGStatisticsEvents.delStatsBattleLoaded(<application_id>=str, event=func) ... g_WGStatisticsEvents.delStatsBattleLoaded(<application_id>=str) addStatsFullBattleLoaded - аналогично предыдущему событие, только возвращает статистику игроков по всем танкам. Запрашиваются данные только по рандомным боям. #Returns the full statistics of all players for random battles, when the battle is loaded #if there is no data on the server or server is unavailable, it returns None def event(statistic): statistic -> dict or None ... g_WGStatisticsEvents.addStatsFullBattleLoaded(<application_id>=str, event=func) #{'players': [{'spotted': 4802, 'battles_on_stunning_vehicles': 33, # 'vehicles': {3329: {'spotted': 6, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 0, 'explosion_hits_received': 0, 'avg_damage_blocked': 0.0, 'capture_points': 0, 'no_damage_direct_hits_received': 0, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 138, 'piercings': 0, 'xp': 1799, 'in_garage': None, 'tank_id': 3329, 'damage_dealt': 953, 'hits_percents': 10, 'stun_number': 0, 'draws': 0, 'hits': 62, 'losses': 4, 'battles': 13, 'piercings_received': 0, 'damage_received': 1170, 'survived_battles': 1, 'shots': 592, 'wins': 9, 'frags': 6, 'dropped_capture_points': 0, 'mark_of_mastery': 0, 'tanking_factor': 0.0}, ...}, # 'avg_level': 6.43542, 'max_xp': 2304, 'avg_damage_blocked': 170.05, 'max_xp_tank_id': 16641, 'explosion_hits': 447, 'global_rating': 4241, 'piercings': 3302, 'xp': 1957580, 'survived_battles': 1057, 'dropped_capture_points': 2871, 'client_language': 'r', 'hits_percents': 54, 'draws': 66, 'max_damage': 4017, 'battles': 4003, 'clan_id': None, 'damage_received': 2573057, 'avg_damage_assisted': 199.54, 'max_frags_tank_id': 54289, 'frags': 3273, 'stun_number': 120, 'tanking_factor': 0.32, 'avg_damage_assisted_radio': 167.44, 'direct_hits_received': 6055, 'account_id': 2446623, 'damage_dealt': 3102429, 'stun_assisted_damage': 10171, 'battle_avg_xp': 489, 'max_damage_tank_id': 8977, 'nickname': 'stiiiiil777', 'capture_points': 4717, 'hits': 19191, 'last_battle_time': 1545078809, 'wins': 1958, 'losses': 1979, 'piercings_received': 4133, 'no_damage_direct_hits_received': 1917, 'max_frags': 8, 'shots': 35342, 'explosion_hits_received': 149, 'avg_damage_assisted_track': 32.1}, # {'spotted': 22369, 'battles_on_stunning_vehicles': 2, # 'vehicles': {11265: {'spotted': 174, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 14, 'explosion_hits_received': 0, 'avg_damage_blocked': 280.0, 'capture_points': 595, 'no_damage_direct_hits_received': 4, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 664, 'piercings': 3, 'xp': 142066, 'in_garage': None, 'tank_id': 11265, 'damage_dealt': 164908, 'hits_percents': 64, 'stun_number': 0, 'draws': 5, 'hits': 975, 'losses': 84, 'battles': 214, 'piercings_received': 10, 'damage_received': 141906, 'survived_battles': 81, 'shots': 1514, 'wins': 125, 'frags': 230, 'dropped_capture_points': 89, 'mark_of_mastery': 4, 'tanking_factor': 0.25}, ...}, # 'avg_level': 7.54803, 'max_xp': 2868, 'avg_damage_blocked': 561.73, 'max_xp_tank_id': 529, 'explosion_hits': 242, 'global_rating': 8970, 'piercings': 48815, 'xp': 15118810, 'survived_battles': 6873, 'dropped_capture_points': 14626, 'client_language': 'r', 'hits_percents': 71, 'draws': 276, 'max_damage': 8528, 'battles': 20029, 'clan_id': 69731, 'damage_received': 20473839, 'avg_damage_assisted': 560.04, 'max_frags_tank_id': 12305, 'frags': 24127, 'stun_number': 10, 'tanking_factor': 0.44, 'avg_damage_assisted_radio': 431.61, 'direct_hits_received': 44950, 'account_id': 2365719, 'damage_dealt': 29441665, 'stun_assisted_damage': 1047, 'battle_avg_xp': 755, 'max_damage_tank_id': 16897, 'nickname': 'StranikS_Scan', 'capture_points': 38302, 'hits': 138087, 'last_battle_time': 1544904305, 'wins': 11715, 'losses': 8038, 'piercings_received': 32339, 'no_damage_direct_hits_received': 12606, 'max_frags': 11, 'shots': 193372, 'explosion_hits_received': 2208, 'avg_damage_assisted_track': 128.44}]} ... g_WGStatisticsEvents.delStatsFullBattleLoaded(<application_id>=str, event=func) ... g_WGStatisticsEvents.delStatsFullBattleLoaded(<application_id>=str) Запросы: g_WGConsole OnAsyncReports - подписаться на встроенное событие AsyncReports, возвращающее результат запроса при асинхронном вызове (если вызываемая функция явно не указывалась в числе аргументов запроса). Ниже пример подписки и отписки от события. from gui.mods.wg_statistics import g_WGConsole #Returns reports from the server for the _Async requests, if no onAsyncReport is specified g_WGConsole.addAsyncReports(<application_id>=str, event=func) ... g_WGConsole.delAsyncReports(<application_id>=str, event=func) ... g_WGConsole.delAsyncReports(<application_id>=str) getStatsFull - возвращает словарь со статистикой игрока или игроков по аккаунту и по танкам, если известны их accountDBID (аналог функции getStatsByID в модуле xvm_statistics). Формат словаря {'players': [{...}, {...}, ...]}. Запрашиваются данные только по рандомным боям. getStatsFull_Async - асинхронная версия, при получении результата вызывает пользовательскую функцию onAsyncRepots, если она задана, иначе вызывает встроенное событие onAsyncReports. В onAsyncRepots можно передавать список функций. #Return statistics for one or more players for random battles with all the tanks by a accountDBID #IDs=[2365719, 34483, accountDBID, ...] or 2365719 only g_WGConsole.getStatsFull(<application_id>=str, IDs=int or list, timeout=5.0) -> dict or None #{'players': [{'spotted': 22369, 'battles_on_stunning_vehicles': 2, # 'vehicles': {11265: {'spotted': 174, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 14, 'explosion_hits_received': 0, 'avg_damage_blocked': 280.0, 'capture_points': 595, 'no_damage_direct_hits_received': 4, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 664, 'piercings': 3, 'xp': 142066, 'in_garage': None, 'tank_id': 11265, 'damage_dealt': 164908, 'hits_percents': 64, 'stun_number': 0, 'draws': 5, 'hits': 975, 'losses': 84, 'battles': 214, 'piercings_received': 10, 'damage_received': 141906, 'survived_battles': 81, 'shots': 1514, 'wins': 125, 'frags': 230, 'dropped_capture_points': 89, 'mark_of_mastery': 4, 'tanking_factor': 0.25}, ...}, # 'avg_level': 7.54803, 'max_xp': 2868, 'avg_damage_blocked': 561.73, 'max_xp_tank_id': 529, 'explosion_hits': 242, 'global_rating': 8970, 'piercings': 48815, 'xp': 15118810, 'survived_battles': 6873, 'dropped_capture_points': 14626, 'client_language': 'r', 'hits_percents': 71, 'draws': 276, 'max_damage': 8528, 'battles': 20029, 'clan_id': 69731, 'damage_received': 20473839, 'avg_damage_assisted': 560.04, 'max_frags_tank_id': 12305, 'frags': 24127, 'stun_number': 10, 'tanking_factor': 0.44, 'avg_damage_assisted_radio': 431.61, 'direct_hits_received': 44950, 'account_id': 2365719, 'damage_dealt': 29441665, 'stun_assisted_damage': 1047, 'battle_avg_xp': 755, 'max_damage_tank_id': 16897, 'nickname': 'StranikS_Scan', 'capture_points': 38302, 'hits': 138087, 'last_battle_time': 1544904305, 'wins': 11715, 'losses': 8038, 'piercings_received': 32339, 'no_damage_direct_hits_received': 12606, 'max_frags': 11, 'shots': 193372, 'explosion_hits_received': 2208, 'avg_damage_assisted_track': 128.44}]} g_WGConsole.getStatsFull_Async(<application_id>=str, IDs=int or list, onAsyncReports=None or func or list, timeout=5.0) getStats - возвращает словарь со статистикой игроков по аккаунту и по конкретному танку, если известны accountDBID игрока и задан compactDescr его танка (аналог функции getStats в модуле xvm_statistics). Формат словаря {'players': [{...}, {...}, ...]}. Запрашиваются данные только по рандомным боям. getStats_Async - асинхронная версия, при получении результата вызывает пользовательскую функцию onAsyncRepots, если она задана, иначе вызывает встроенное событие onAsyncReports. В onAsyncRepots можно передавать список функций. #Return statistics for a specific tank for one or multiple users #ids={2365719:54529, 4100782:51841, accountDBID:compactDescr, ...} g_WGConsole.getStats(<application_id>=str, ids=dict, timeout=5.0) -> dict or None #{'players': [{'spotted': 22369, 'battles_on_stunning_vehicles': 2, # 'vehicles': {'spotted': 154, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 315, 'explosion_hits_received': 21, 'avg_damage_blocked': 0.0, 'capture_points': 37, 'no_damage_direct_hits_received': 21, 'stun_assisted_damage': 0, 'explosion_hits': 19, 'battle_avg_xp': 640, 'piercings': 339, 'xp': 55069, 'in_garage': None, 'tank_id': 18449, 'damage_dealt': 63105, 'hits_percents': 66, 'stun_number': 0, 'draws': 0, 'hits': 471, 'losses': 47, 'battles': 86, 'piercings_received': 294, 'damage_received': 97933, 'survived_battles': 10, 'shots': 713, 'wins': 39, 'frags': 33, 'dropped_capture_points': 17, 'mark_of_mastery': 3, 'tanking_factor': 0.0}, # 'max_xp': 2868, 'avg_damage_blocked': 561.73, 'max_xp_tank_id': 529, 'explosion_hits': 242, 'global_rating': 8970, 'piercings': 48815, 'xp': 15118810, 'survived_battles': 6873, 'dropped_capture_points': 14626, 'client_language': 'r', 'hits_percents': 71, 'draws': 276, 'max_damage': 8528, 'battles': 20029, 'clan_id': 69731, 'damage_received': 20473839, 'avg_damage_assisted': 560.04, 'max_frags_tank_id': 12305, 'frags': 24127, 'stun_number': 10, 'tanking_factor': 0.44, 'avg_damage_assisted_radio': 431.61, 'direct_hits_received': 44950, 'account_id': 2365719, 'damage_dealt': 29441665, 'stun_assisted_damage': 1047, 'battle_avg_xp': 755, 'max_damage_tank_id': 16897, 'nickname': 'StranikS_Scan', 'capture_points': 38302, 'hits': 138087, 'last_battle_time': 1544904305, 'wins': 11715, 'losses': 8038, 'piercings_received': 32339, 'no_damage_direct_hits_received': 12606, 'max_frags': 11, 'shots': 193372, 'explosion_hits_received': 2208, 'avg_damage_assisted_track': 128.44}, # {'spotted': 4802, 'battles_on_stunning_vehicles': 33, # 'vehicles': {'spotted': 208, 'battles_on_stunning_vehicles': 0, 'direct_hits_received': 376, 'explosion_hits_received': 13, 'avg_damage_blocked': 156.01, 'capture_points': 67, 'no_damage_direct_hits_received': 64, 'stun_assisted_damage': 0, 'explosion_hits': 0, 'battle_avg_xp': 484, 'piercings': 250, 'xp': 38228, 'in_garage': None, 'tank_id': 18433, 'damage_dealt': 41240, 'hits_percents': 59, 'stun_number': 0, 'draws': 2, 'hits': 344, 'losses': 42, 'battles': 79, 'piercings_received': 312, 'damage_received': 74223, 'survived_battles': 7, 'shots': 588, 'wins': 35, 'frags': 30, 'dropped_capture_points': 12, 'mark_of_mastery': 3, 'tanking_factor': 0.17}, # 'max_xp': 2304, 'avg_damage_blocked': 170.05, 'max_xp_tank_id': 16641, 'explosion_hits': 447, 'global_rating': 4241, 'piercings': 3302, 'xp': 1957580, 'survived_battles': 1057, 'dropped_capture_points': 2871, 'client_language': 'r', 'hits_percents': 54, 'draws': 66, 'max_damage': 4017, 'battles': 4003, 'clan_id': None, 'damage_received': 2573057, 'avg_damage_assisted': 199.54, 'max_frags_tank_id': 54289, 'frags': 3273, 'stun_number': 120, 'tanking_factor': 0.32, 'avg_damage_assisted_radio': 167.44, 'direct_hits_received': 6055, 'account_id': 2446623, 'damage_dealt': 3102429, 'stun_assisted_damage': 10171, 'battle_avg_xp': 489, 'max_damage_tank_id': 8977, 'nickname': 'stiiiiil777', 'capture_points': 4717, 'hits': 19191, 'last_battle_time': 1545078809, 'wins': 1958, 'losses': 1979, 'piercings_received': 4133, 'no_damage_direct_hits_received': 1917, 'max_frags': 8, 'shots': 35342, 'explosion_hits_received': 149, 'avg_damage_assisted_track': 32.1}]} g_WGConsole.getStats_Async(<application_id>=str, ids=dict, onAsyncReports=None or func or list, timeout=5.0) getOnlineUsersCount - возвращает количество игроков на серверах WG. Необходимо указывать регион, если регион не задан, то берется домашний регион (см. g_WGConsole.g_HomeRegion). #Return online WOT-server statistics for region #region=('ru','eu','com','asia') g_WGConsole.getOnlineUsersCount(<application_id>=str, region='ru') -> dict or None #{'wot': [{'players_online': 51366, 'server': 'RU8'}, {'players_online': 57839, 'server': 'RU7'}, {'players_online': 106893, 'server': 'RU2'}, {'players_online': 85843, 'server': 'RU1'}, {'players_online': 46178, 'server': 'RU3'}, {'players_online': 111753, 'server': 'RU6'}, {'players_online': 73782, 'server': 'RU5'}, {'players_online': 50640, 'server': 'RU4'}, {'players_online': 7401, 'server': 'RU9'}, {'players_online': 18437, 'server': 'RU10'}]} Домашний регион: g_HomeRegion Регион авторизовавшегося в ангаре игрока или регион соответствующий локализации клиента игры. from gui.mods.wg_statistics import g_HomeRegion g_HomeRegion.accountDBID -> int or None g_HomeRegion.homeRegion -> str or None Модуль: rating_calculation Функции: g_Calculator globalRating - конвертирует абсолютное значение какого-либо рейтинга в относительное значение шкалы XVM. Если задана опция exct, то возвращает вещественное значение. from gui.mods.rating_calculation import g_Calculator #Converting an absolute value to an index or float value of a universal XVM-Scale #rating = ['wgr', 'eff', 'wn8', 'win', 'wtr', 'xte', 'xtdb', 'sup'] g_Calculator.globalRating(value=float, rating=str, exact=False) -> int or float or None #example: globalRating(2209.651,'wn8') -> 72 or 72.423 if exact=True specificRating - конвертирует относительное значение шкалы XVM в абсолютное значение заданного рейтинга. #Get the value of the specific rating by the XVM-Scale #rating = ['wgr', 'eff', 'wn8', 'win', 'wtr', 'xte', 'xtdb', 'sup'] g_Calculator.specificRating(value=int or float, rating=str) -> float or None #example: specificRating(72.423,'wn8') -> 2209.651 avgTIER - рассчитывает средний уровень техники. Принимает на вход словарь с техникой в XVM- или WG-формате. from gui.mods.rating_calculation import g_Calculator #Return the average level of player's tanks #params = {'id': {'b':int}, ...} and also WG-tags are supported g_Calculator.avgTIER(params=dict) -> float or None #example: avgTIER(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles']) -> 7.54803 needWin - возвращает число побед, необходимых для увеличения % побед на заданную величину. Принимает на вход словарь с числом боев и числом побед, а также на сколько % нужно увеличить показатель. #Return the number of wins to increase the percentage of wins by a given amount and final winning percentage #params = {'b': int, 'w': int} and also WG-tags are supported; incPercentage = float g_Calculator.needWin(params=dict, incPercentage=int or float) -> dict(wins=int, result=float) or None #example: needWin({'b':10,'w':3}, 30) -> (8, 61.111111111111114) needWinHalf - возвращает число побед, необходимых для увеличения процента побед на 0,5%. Принимает на вход словарь с числом боев и числом побед. #Return the number of wins to increase the percentage of wins to the next half percent value and final winning percentage #params = {'b': int, 'w': int} and also WG-tags are supported g_Calculator.needWinHalf(params=dict) -> dict(wins=int, result=float) or None #example: needWinHalf({'b':1000,'w':500}) -> (11, 50.54401582591493) needWinWhole - возвращает число побед, необходимых для увеличения процента побед на 1%. Принимает на вход словарь с числом боев и числом побед. #Return the number of wins to increase the percentage of wins to the next whole percent value and final winning percentage #params = {'b': int, 'w': int} and also WG-tags are supported g_Calculator.needWinWhole(params=dict) -> dict(wins=int, result=float) or None #example: needWinWhole({'b':1000,'w':500}) -> (21, 51.02840352595494) eff - рассчитывает рейтинг РЭ для конкретного танка. Принимает на вход словарь со статистикой танка в XVM- или WG-формате. #Calculation of EFF for one tank with id=compactDescr, see https://koreanrandom.com/forum/topic/13386- #params = {'id':int, 'b':int, 'dmg':int, 'frg':int, 'spo':int, 'cap':int, 'def':int} and also WG-tags are supported g_Calculator.eff(params=dict) -> float or None #example: eff(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles'][257]) -> 1108.86042228 wn8 - рассчитывает рейтинг WN8 для конкретного танка. Принимает на вход словарь со статистикой танка в XVM- или WG-формате. #Calculation of WN8 for one tank with id=compactDescr, see https://koreanrandom.com/forum/topic/13434- #params = {'id':int, 'b':int, 'w':int, 'dmg':int, 'frg':int, 'spo':int, 'def':int} and also WG-tags are supported g_Calculator.wn8(params=dict) -> float or None #example: wn8(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles'][257]) -> 1867.55994042 xte - рассчитывает рейтинг xTE для конкретного танка. Принимает на вход словарь со статистикой танка в XVM- или WG-формате. #Calculation of xTE for one tank with id=compactDesc, see https://koreanrandom.com/forum/topic/23829- #params = {'id':int, 'b':int, 'dmg':int, 'frg':int} and also WG-tags are supported g_Calculator.xte(params=dict) -> float or None #example: xte(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles'][257]) -> 70.3853988826 xtdb - рассчитывает показатель xTDB для конкретного танка. Принимает на вход словарь со статистикой танка в XVM- или WG-формате. #Calculation of xTDB for one tank with id=compactDesc, see https://koreanrandom.com/forum/topic/23829- #params = {'id':int, 'b':int, 'dmg':int} and also WG-tags are supported g_Calculator.xtdb(params=dict) -> float or None #example: xtdb(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles'][257]) -> 68.8375478927 EFF - рассчитывает рейтинг РЭ для аккаунта игрока. Принимает на вход словарь со статистикой игрока в XVM- или WG-формате. #Calculation of EFF for player account with lvl=avgTIER, see https://koreanrandom.com/forum/topic/13386- #params = {'b':int, 'lvl':float, 'dmg':int, 'frg':int, 'spo':int, 'cap':int, 'def':int} and also WG-tags are supported g_Calculator.EFF(params=dict) -> float or None #example: EFF(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]) -> 1456.62977209 WN8 - рассчитывает рейтинг WN8 для аккаунта игрока. Принимает на вход словарь со статистикой игрока в XVM- или WG-формате. #Calculation of WN8 for player account with id=compactDescr, see https://koreanrandom.com/forum/topic/13434- #params = {'b':int, 'w':int, 'dmg':int, 'frg':int, 'spo':int, 'def':int, # 'v': {'id':{'b':int, 'w':int, 'dmg':int, 'frg':int, 'spo':int, 'def':int}, 'id':{...}, ...}} g_Calculator.WN8(params=dict) -> float or None #example: WN8(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]) -> 2093.12196623 XTE - рассчитывает рейтинг xTE для аккаунта игрока. Принимает на вход словарь со статистикой всех танков игрока в XVM- или WG-формате. #Calculation of xTE for player account with id=compactDesc, see https://koreanrandom.com/forum/topic/23829-/?do=findComment&comment=445507 #params = {'id': {'b':int, 'dmg': int, 'frg': int}, 'id':{...}, ...}} g_Calculator.XTE(params=dict) -> float or None #example: XTE(g_WGConsole.getStatsFull(<application_id>, 2365719)['players'][0]['vehicles']) -> 66.3322963036 Константы: g_Tables xvmscaleTable - таблица перевода рейтингов в шкалу XVM. Актуальная версия загружается автоматически с сайта XVM при запуске клиента игры. #Tables, autoupdated from the XVM-site and loaded from disk from gui.mods.rating_calculation import g_Tables g_Tables.xvmscaleTable -> dict or None #{'xwgr': [1361, ...], 'xeff': [378, ...], 'xwn8': [56,...], 'xwin': [43.44, ...], 'xwtr': [1409, ...]} wn8Table - таблица ожидаемых значений для расчета рейтинга WN8. Актуальная версия загружается автоматически с сайта XVM при запуске клиента игры. g_Tables.wn8Table -> dict or None #{'header': {'url': 'https://...', 'source': 'XVM', 'version': '2018-02-12'}, # 'data': [{'expDamage': 1079.886, 'expSpot': 0.769, 'IDNum': 55297, 'expWinRate': 52.995, 'expDef': 0.881, 'expFrag': 1.146}, ...]} wn8idsTable - эта же таблица, но в виде словаря с id-танков в качестве ключей. g_Tables.wn8idsTable -> dict or None #{55297: {'expDamage': 1079.886, 'expSpot': 0.769, 'expWinRate': 52.995, 'expDef': 0.881, 'expFrag': 1.146}, ...} xteTable - таблица ожидаемых значений для расчета рейтинга xTE. Актуальная версия загружается автоматически с сайта XVM при запуске клиента игры. g_Tables.xteTable -> dict or None #{'62737': {'tf': 1.64, 'x': [342, ...], 'td': 2168, 'ad': 1171, 'af': 0.78}, ...} xtdbTable - таблица ожидаемых значений для расчета показателя xTDB. Актуальная версия загружается автоматически с сайта XVM при запуске клиента игры. g_Tables.xtdbTable -> dict or None #{'62737': {'tf': 1.64, 'x': [726, ...], 'td': 2168, 'ad': 1171, 'af': 0.78}, ...} supTable - таблица значений шкалы процентного превосходства SUP%. Актуальная версия загружается автоматически с сайта XVM при запуске клиента игры. g_Tables.supTable -> tuple #('1.2', ..., '99.99') Модуль: victory_chances События: g_StatisticEvents onBattleLoaded - возвращает указатель на экземпляр класса g_TanksStatistic при загрузке боя, содержащий информацию по шансам команд. from gui.mods.victory_chances import g_StatisticEvents #It works when the caching of users and tanks information is completed when the battle is loaded #Returns a pointer to class instance g_TanksStatistic def func(statistic): statistic -> pointer or None #example: <gui.mods.victory_chances._TanksStatistic object at 0x2B5B8F70> ... g_StatisticEvents.onBattleLoaded += func onVehiclesChanged - возвращает указатель на экзепляр класса g_TanksStatistic, причину срабатывания (см. UPDATE_REASONE) и vehicleID танка, когда меняется какой-либо из параметров техники. #It works when the players and the parameters of the tanks change #Returns a pointer to g_TanksStatistic, reasone type as UPDATE_REASONE and vehicleID def func(statistic, reasone, vID): statistic -> pointer or None #example: <gui.mods.victory_chances._TanksStatistic object at 0x2B494EB0> reasone -> int #example: 0 vID -> int #example: 6632275 ... g_StatisticEvents.onVehiclesChanged += func onCountChanged - возвращает новое число союзных и вражеских танков, когда кто-то присоединятся к бою или погибает в бою. #It works when change the count of tanks in teams #Returns the number of allies and enemy tanks def func(allies, enemies): allies -> int #example: 15 enemies -> int #example: 14 ... g_StatisticEvents.onCountChanged += func onHealthChanged - возвращает новые суммарные значения хп команд, когда кому-то наносится урон или кто-то погибает. #It works when the health of users changed #Returns the total healths of allies and enemy teams def func(allies, enemies): allies -> int #example: 4510 enemies -> int #example: 3240 ... g_StatisticEvents.onHealthChanged += func onChanceChanged - возвращает новые значения шансов на победу и условные силы команд союзников и противников, когда кому-то наносится урон или кто-то погибает. #It works when the chances of victory changed #Returns the chances 0..100 and total forces of allies and enemy teams def func(a_chances, e_chances, a_forces, e_forces): a_chances -> int #example: 45 e_chances -> int #example: 55 a_forces -> int #example: 4500 e_forces -> int #example: 5500 ... g_StatisticEvents.onChanceChanged += func Переменные: g_TanksStatistic Экземпляр класса с текущими параметрами техники и статистикой команд. Экземпляр един для всех в клиенте игры. В примере статистика двух игроков, зашедших в тренировочный бой на RU 251 и ЛТТБ. #Parameters of tanks and players statistics from gui.mods.victory_chances import g_TanksStatistic g_TanksStatistic.base -> dict #{6632274: {'userName': 'StranikS_Scan', 'isAlive': True, 'name': 'Ru251', 'level': 9, 'hp': 1400, 'isEnemy': False, 'gun': {'shell': {'AP': {'dpm': 0, 'damage': 0}, 'HE': {'dpm': 2742.8571428571427, 'damage': 160.0}, 'APRC': {'dpm': 2057.1428571428573, 'damage': 240.0}, 'HC': {'dpm': 2057.1428571428573, 'damage': 240.0}}, 'reload': 7.0, 'caliber': 90.0, 'currentShell': 'APRC', 'currentDamage': 240.0, 'currentDpm': 2057.1428571428573}, 'accountDBID': 2365719, 'Th': 0.7000000123624448, 'force': 1.3714285956488717, 'contribution': 65.287617689119, 'Te': 0.5104166666666666, 'type': {'tag': 'lightTank'}, 'tank_id': 18449}, 6632275: {'userName': 'stiiiiil777', 'isAlive': True, 'name': '\xd0\x9b\xd0\xa2\xd0\xa2\xd0\x91', 'level': 8, 'hp': 1050, 'isEnemy': True, 'gun': {'shell': {'AP': {'dpm': 1999.9999646787296, 'damage': 180.0}, 'HE': {'dpm': 3333.3332744645495, 'damage': 150.0}, 'APRC': {'dpm': 1999.9999646787296, 'damage': 180.0}, 'HC': {'dpm': 0, 'damage': 0}}, 'reload': 5.400000095367432, 'caliber': 85.0, 'currentShell': 'AP', 'currentDamage': 180.0, 'currentDpm': 1999.9999646787296}, 'accountDBID': 2446623, 'Th': 0.5104166666666666, 'force': 0.7291666537891202, 'contribution': 34.712382310881004, 'Te': 0.7000000123624448, 'type': {'tag': 'lightTank'}, 'tank_id': 18433}} g_TanksStatistic.allyChance -> int or None #example: 65.2876176891 g_TanksStatistic.enemyChance -> int or None #example: 34.7123823109 g_TanksStatistic.allyTanksCount -> int or None #example: 1 g_TanksStatistic.enemyTanksCount -> int or None #example: 1 g_TanksStatistic.allyTeamHP -> int or None #example: 1400 g_TanksStatistic.enemyTeamHP -> int or None #example: 1050 g_TanksStatistic.allyTeamOneDamage -> int or None #example: 240.0 g_TanksStatistic.enemyTeamOneDamage -> int or None #example: 180.0 g_TanksStatistic.allyTeamDPM -> int or None #example: 2057.14285714 g_TanksStatistic.enemyTeamDPM -> int or None #example: 1999.99996468 g_TanksStatistic.allyTeamForces -> int or None #example: 1.37142859565 g_TanksStatistic.enemyTeamForces -> int or None #example: 0.729166653789 Константы: UPDATE_REASONE Причины обновления статистики. #Types of reasons in OnVehiclesChanged event from gui.mods.victory_chances import UPDATE_REASONE UPDATE_REASONE.VEHICLE_ADDED -> int UPDATE_REASONE.VEHICLE_DEATH -> int UPDATE_REASONE.HEALTH_CHANGED -> int Примеры модов, использующих модули из библиотеки можно найти в моем репозитарии на Git-Hub.
  14. 11 points
    Пилим сервис статистики, на котором можно будет отслеживать актуальные и исторические данные по игрокам и кланам из базы XVM. Хотим показать первые наброски и получить ваши отзывы. Обращаем внимание на то, что это максимально сырой вариант и все доработки ещё впереди. Как посмотреть? Ссылка на вашу страницу статистики доступна в личном кабинете на сайте XVM: Что ещё запланировано: Страница клана Топ игроков Топ кланов Поиск
  15. 11 points
    На данный момент в стандартной поставке мода отключены следующие компоненты: Миникарта / Minimap Окно загрузки боя Окно по Таб Компоненты работоспособные на данный момент: Кастомизируемые текстовые поля [ BattleLabels ] [Лог попаданий / Hitlog] V2 (py_macro) Полоса захвата / Capture bar Замена лампочки перка "Шестое чувство" Маркеры над техникой Остальные компоненты требуют полной или частичной адаптации. В данной теме обсуждаем работоспособность компонентов, ищем различного рода недоработки/неисправности. Известные проблемы (в процессе наполнения): Не обновляется макрос {{turret}} в маркерах над техникой после возрождения. Исправленные проблемы (в процессе наполнения):
  16. 11 points
    Вертикальное дерево развития 1920x1080 [16:9] Скриншоты: Поддержать развитие мода Visa4276 7400 1529 7732Qiwi+7 914 802 18 59
  17. 11 points
    Таймер как раньше макросы: {time} — время до начала боя {battleType} — тип боя {winString} — задача боя Измененный стандартный таймер можно изменить масштаб, прозрачность, расположение или отключить по отдельности, в конфиге он выключен полностью Скачать
  18. 11 points
    Обновил до версии 7.8.7
  19. 11 points
    Всем привет! В ночь с 27 на 28 марта выйдет микропатч. Папки модов будут называться /mods/1.4.1.1/ и /res_mods/1.4.1.1/ Готовьтесь
  20. 10 points
    Анонсирую мод Позиций - места настрела, насвета, укрытия НЛД (нижней лобовой детали) для игры World of Tanks. Видео по установке: Скачать бесплатный мод Позиций
  21. 10 points
    Данная модификация добавляет лог урона нанесенного с вашей помощью (по засвету, гусенице, оглушение). Пример подключения: 1) В файл battleLabels.xc добавить: ${ "battleLabelsTemplates.xc":"def.assistLog_Background"}, ${ "battleLabelsTemplates.xc":"def.assistLog"}, 2) В файле battleLabelsTemplates.xc добавить секцию: "assistLog": { "enabled": true, "updateEvent": "PY(ON_ASSIST_LOG)", "x": "{{py:xvm.assistLog_x}}", "y": "{{py:xvm.assistLog_y}}", "width": 300, "height": 500, "layer": "bottom", "screenHAlign": "right", "textFormat": { "color": "0xF4EFE8", "size": 15}, "format": "{{py:xvm.assistLog}}", "mouseEvents": { "mouseDown": "assistLog_mouseDown", "mouseUp": "assistLog_mouseUp", "mouseMove": "assistLog_mouseMove" } }, "assistLog_Background": { "enabled": true, "$ref": { "path":"def.assistLog" }, "format": "{{py:xvm.assistLog_Background}}" }, 3) Файлы assistLog.xc скопировать в папку с вашим кофигом (например в \res_mods\configs\xvm\default\) 4) В файле @xvm.xc нужно добавить ссылку на файл assistLog.xc: "assistLog": ${"assistLog.xc":"assistLog"}, 5) В файле hotkeys.xc добавить клавишу для альтернативного режима: "assistLogAltMode": { "enabled": true, "keyCode": 56, "onHold": true } 6) В файле colors.xc для макросов {{c:assist}}, {{c:sum-assist}}, {{c:track}}, {{c:sum-track}}, {{c:spot}}, {{c:sum-spot}}, {{c:stun}}, {{c:sum-stun}} добавить секцию: // Динамический цвет по проценту нанесенного урона цели. "dmg_ratio_player": [ { "value": 16.5, "color": ${"def.colorRating.very_bad" } }, { "value": 33.5, "color": ${"def.colorRating.bad" } }, { "value": 49.5, "color": ${"def.colorRating.normal" } }, { "value": 66.5, "color": ${"def.colorRating.good" } }, { "value": 83.5, "color": ${"def.colorRating.very_good"} }, { "value": 999, "color": ${"def.colorRating.unique" } } ], 7) Файл assist_log.py скопировать в \res_mods\configs\xvm\py_macro\ 8) Файл assistLog.py скопировать в \res_mods\configs\xvm\py_macro\xvm\ Поддерживаемые макросы перечислены в файл assistLog.xc. Если кто хочет, то отредактируйте описание. Скачать: assistLog.xc assist_log.py assistLog.py
  22. 10 points
    Привет! В ночь с 10 на 11 июня выйдет обновление 1.5.1, папки модов будут называться /mods/1.5.1.0/ и /res_mods/1.5.1.0/
  23. 10 points
    Флэш для часов я починил. Вот эти две ошибки устранены. В лог больше не гадит. 2019-06-04 02:56:26.154: ERROR: ArgumentError: Error #1063: Argument count mismatch on hClock instance constructor. Expected from 1 to 1, got 0. at hClock instance constructor() at scaleform.clik.core::UIComponent instance constructor() at net.wg.infrastructure.base::UIComponentEx instance constructor() at net.wg.infrastructure.base.meta.impl::BaseDAAPIComponentMeta instance constructor() at net.wg.infrastructure.base::BaseDAAPIComponent instance constructor() at net.wg.infrastructure.base.meta.impl::AbstractViewMeta instance constructor() at net.wg.infrastructure.base::AbstractView instance constructor() at hangarClock instance constructor() 2019-06-04 02:56:26.263: ERROR: TypeError: Error #1009: Cannot access a property or method of a null object reference. Мне пришлось внести достаточно изменений, так что пока в сыром виде, но можете пользоваться, это уже рабочий вариант. Я просто позже приведу в порядок код флеша, там сейчас помойка небольшая. Теперь дело за калькулятором, там тоже до фига AntonVK_HangarClock_1.5.0.0.wotmod
  24. 10 points
    Привет, В ночь с 18 на 19 марта выйдет обновление 1.4.1, папки модов будут называться /mods/1.4.1.0/ и /res_mods/1.4.1.0/
  25. 10 points
    Всем привет! В следующий понедельник, 11 марта, в World of Tanks стартует второй эпизод режима «Линия Фронта». В прошлый раз у нас были некоторые проблемы совместимости режима с модами, поэтому одновременно с запуском второго эпизода мы выпустим микропатч, отламывающий установленные у игроков моды. Новые папки модов будут называться /mods/1.4.0.2/ и /res_mods/1.4.0.2
  26. 10 points
    Nопик вот этот... Афигительнейший анализ (от слов анал и лизать) даже не дизассемблированного кода от человека, который в кодинге не разбирается. 127.0.0.1 это сраный локалхост. Это IP, по которому комп может обратиться к самому себе по тем или иным причинам. Обведенная рамочкой функция, если я все правильно вижу, принимает на вход url и проверяет, не ссылается ли этот url часом на localhost при помощи вызова gethostbyname. Название isLocalHost как бы намекает. Начнем с того, что картошкин вайтлист работает только на их же встроенный WebBrowser, а на вызовы из модулей вроде urllib2 не влияет никак. Это раз. В коде, кстати, написан urllib. Который либо используется либо для собственно скачивания данных, и если так, то автор идиот (пользуйтесь urllib2, работяги), либо же - для urllib.urlencode, которая просто-напросто превращает питоновский dict в закодированную в понятный для http-сервера формат строку. Это два. Вышеупомянутый белый список был выключен практически сразу же после появления, когда я спросил про официальный метод монетизации модов, и больше не включался - это три. Начнем с того, что если там что-то и качается - то DLL - Dynamic Language Library - но никак не DDL - Data Definition Language (примером такого Language будет SQL). Скорее всего, тамошние три буквы обозначают Data DownLoad. Ссылка на скачивание, то бишь - вместо /download/ написали /ddl/. Что они там качают - уже вопрос другой, вполне вероятно, что какой-нибудь динамически формируемый список. Проверить мне не удалось, потому что сайта wotzone.ru на данный момент не существует - он просто не открывается браузером. А пароли воровать можно простым хуком одной функции через питон. Все потому что ВГ, если вы вдруг не знали давно всем известный факт, присылает ваш пароль из флеша login.swf в питоновскую функцию открытым текстом. Если не стоит галочка "запомнить пароль", that is. Но это можно легко обойти. Да, сайт mods2all выглядит интересно - главная страница говорит HELLO, потом спрашивает WHAT WAS BEFORE THE BIG BANG? и редиректит тебя на главную гугла. А wotzone, как я уже сказал, вообще не существует. И вполне вероятно, что Фокс действительно что-то повшивал в свои моды, учитывая наплыв европейцев с жалобами на рекламу в его настройщике. Но я могу сказать точно, что конкретно в топике написан полнейший некомпетентный мнительный БРЕД. Даже если из него сделаны ВНЕЗАПНО верные выводы, по которым не буду ничего комментировать. PY out.
  27. 10 points
    Всем привет. В ночь с 27 на 28 июня выходит микропатч. Фиксим новые баги, папка не нужна
  28. 9 points
    1. Файлы предназначены для отключения зеркальности кастомных иконок техники размером 80х24 пикселя. *. Иконки техники данного размера создаются программой TankIconMaker 2. Страница поддержки для желающих отблагодарить 3. При публикации файлов на сторонних источниках указывайте авторство Отключение зеркальности для элементов в бою: ◉ окно загрузки боя; ◉ окно по нажатию Tab; ◉ панели команд (уши). Без удаления элементов: mvi_battle.zip С удалением уровня техники: mvi_battle_clear.zip Отключение зеркальности для элементов в ангаре: ◉ окно тренировочной комнаты; ◉ всплывающая подсказка при наведении на экипаж. Без удаления элементов: mvi_hangar.zip С удалением уровня техники: mvi_hangar_clear.zip С удалением уровня и названия техники: mvi_hangar_clear.zip Иконки техники (с картинки выше): Для версии клиента - v.1.5.1.1 #1327: vehicle_icons.zip mvi_hangar_clear-all.zip
  29. 9 points
    1. Страница поддержки для желающих отблагодарить 2. При публикации файлов на сторонних источниках указывайте авторство noBinoculars Скрипт предназначен для отключения затемнения и озеленения в снайперском режиме. Поставляется с конфигурационным файлом. Не требует подмены стандартной текстуры "slens_map.dds". noFlashBang Скрипт предназначен для отключения красной вспышки когда враг попадает по вам. Поставляется с конфигурационным файлом. noCameraLimit Скрипт предназначен для отключения предела вращения камеры в снайперском прицеле для техники с ограниченными УГН-ми* Поставляется с конфигурационным файлом. «УНГ» - углы горизонтальной наводки орудия noBattleHint Скрипт предназначен для отключения подсказок в бою (смена режима прицеливания АРТ-САУ, переход в осадный режим, переход в меню ЛБЗ) Поставляется с конфигурационным файлом. safeShot Скрипт предназначен для блокировки случайного выстрела по союзникам и трупам (уничтоженной технике). Поставляется с конфигурационным файлом. Блокировка выстрела по технике союзника. --- Корпус должен быть подсвечен. --- Настраиваемое исключение для тимкиллеров. Блокировка выстрела по уничтоженной технике. --- Настраиваемое время блокировки. Мод полностью отключается при использовании горячей клавиши. --- Горячая клавиша подлежит настройке. extendedZoom Скрипт предназначен для регулировки отдаления камеры, задания кратности прицела в снайперском режиме. Поставляется с конфигурационным файлом. autoAimMarker Скрипт предназначен для отображения видимого маркера текущей цели при автозахвате. Поставляется с конфигурационным файлом. Установка: В зависимости от выбранного дополнения содержимое архива распаковать в корневую директорию клиента (в папку с игровым клиентом) Настройка: mods\configs\camAddons\ "mods_name.json" Скачать camAddons.zip
  30. 9 points
    11.05.19 версия 1.5.1 История изменений Досье Никто не забыт, ничто забыто Краткое описание - хочешь больше информации по танкам в карусели - жми на Alt, - хочешь расширенную статистику и маркеры в бою - жми на Alt, - хочешь видеть отметки на орудиях в панели по ТАВ - жми на Alt, - хочешь увеличенную миникарту до начала боя - жми на Alt, - хочешь не сливаться каждый бой - вынь руки из жопы, Alt то не резиновый Фото Видео (v. 1.4.1)
  31. 9 points
    Доделал тепловые карты с реплеев версий 1.4.1-1.5.0. Реплеи с wotreplays.ru, уровни 6-10, примерно по 1000 реплеев на команды для стандартых боев и по 500 на штурм\встречный бой. Где-то реплеев не хватило. Добавил также новые тепловые карты, которые никто раньше не делал: урон, трасеры, разъезд в зависимости от заработанного опыта. Буду рад услышать отзывы и предложения, что можно улучшить, какие еще тепловые карты можно собрать (были идеи посмотреть турниры и ранговые бои отдельно, но боюсь данных не хватит). https://wotinspector.com/heatmaps/?platform=pc
  32. 9 points
    Навигация по теме: Установка и знакомство Подсветка синтаксиса Установка Файл расширения Расширения Список и ссылки на расширения Настройка некоторых расширений Темы Некоторые возможности редактора Горячие клавиши Решил я попробовать использовать Visual Studio Code (VSC) для редактирования файлов конфигурации XVM. Сам я им только начал пользоваться (до этого использовал Notepad++), поэтому буду рад, если желающие поделятся опытом работы в нем. У меня пока только положительные впечатления от работы в нем. Итак, согласно Википедии: Скачать дистрибутив можно с официальной страницы. После установки имеем: Первое, что захотелось сделать, это русифицировать интерфейс. Для этого кликаем по иконке Extensions (Расширения) на левой панели и набираем в строке поиска Russian Language Pack. В первой строчке будет нужный нам результат. Нажимаем Install и после установки расширения перезапускаем программу. Теперь откроем папку с нашим конфиг XVM (Файл->Открыть папку...). VSC из "коробки" поддерживает языковой режим "JSON с комментариями" (файлы конфигурации XVM это немного расширенный формат JSON с поддержкой комментариев). Если языковой режим не определился автоматически, то нужно кликнуть в правом нижнем углу и выбрать в списке "JSON with Comments". Что же, неплохо, но это несложно сделать и в Notepad++. Приступим к поиску полезных и не очень расширений (список в конце сообщения). В результате установки и небольшой настройки расширений перечисленных в списке ниже, у меня получился следующий вид: Хорошо заметны отступы, блоки кода и концевые пробелы, выделены парные скобки и теги. Хотелось бы также отметить, что в редакторе отображается символ BOM. Дело в том, что на данный момент, при копировании текста с форума вместе с ним может скопироваться управляющий символ BOM (подробнее здесь), который может поломать конфиг. В VSC он, и не только он, будет отображаться специальным символом: Единственное, что смущает это скудная подсветка синтаксиса. Немного покурив Google, сделал подсветку для файлов *.xc. В разных темах она может выглядеть по разному. В стандартной темной теме она выглядит так: Для установки данной подсветки необходимо: скачать файл xc-X.X.X.vcix (файл находиться в конце сообщения), где X.X.X - версия расширения запустить VSC в право верхнем углу панели "Расширения" (Ctrl + Shift + X) нажать кнопку в выпавшем меню выбрать пункт "Установка из VSIX..." и выбрать скачанный файл После этого в панели "Расширения" у вас должно появиться расширение: Расширения: Существует несколько способов установки расширений. Для меня самый простой способ это пользоваться поиском расширений в самой программе. Bracket Pair Colorizer 2 - добавляет подсветку для скобок, окружающих блоки кода. indent-rainbow - расширение делает отступы более читабельными. Indenticator - еще одно расширение помогающее облегчить восприятия блоков (секций) кодов. Subtle Match Brackets - выделяет парные скобки возле которых находиться курсор. Color Highlight - подсвечивает CSS / веб-цвета, найденные в вашем документе. К сожалению на данный момент не поддерживает цвета в виде 0xFFFFFF, хотя судя по репозиторию попытки были. Trailing Spaces - выделяет и может удалять конечные пробелы (ALT+SHIFT+T). Highlight Matching Tag - выделения соответствующих открывающих или закрывающих тегов. Russian - Code Spell Checker - русский словарь проверки орфографии. Вместе с ним установиться Code Spell Checker и английский словарь. TabSpacer - конвертирует табы в пробелы (Ctrl + Shift + T). Project Manager - менеджер проектов. Будет полезен, если вы настраиваете несколько конфигураций. Path Autocomplete - автозаполнение пути к каталогам и файлам. Markdown Preview Enhanced - предпросмотр файлов в формате Markdown. Пригодится для редактирования файлов README.md на GitHub или BitBucket. (Ctrl + K, V или Ctrl + Shift + V) L13 Diff - Сравнение двух папок (Ctrl + L Ctrl + L). Почти все расширения имеют настройки (Файл->Параметры->Параметры->Расширения). Темы (переключаться между темами можно сочетанием CTRL+K, CTRL+T): Atom One Dark Theme Solarized Custom (3 темы) Yi Dark & Yi Light Themes (2 темы) Расширение для подсветкой синтаксиса файлов конфигурации XVM: xc-1.0.0.vsix
  33. 9 points
    S29_UDES_14_5.7z S27_UDES_16.7z S28_UDES_15_16.7z A126_PzVI_Tiger_II_capt.7z A126_PzVI_Tiger_II_capt - 3D Stile.7z Мод с 3Д стилем (лоды) Ch01_Type59_Gold.7z (Экспериментальный вариант катков, желательно с улучшенной графикой) правка катков у простого 59го по пути Type59_chassis_01_AM.7z добавление в архив будет с выходом нового патча, ждать уже не долго ;)
  34. 9 points
    20 мая выйдет еще один микропатч. Папки модов будут называться /mods/1.5.0.3/ и /res_mods/1.5.0.3/ Включаем новый сезон ранговых.
  35. 9 points
    Дополнение позволяет отобразить клавишу рядом с центром уведомлений в ангаре для просмотра вашей статистики аккаунта на сайте XVM. Страница открывается во внешнем браузере, для конечного пользователя не требуется вводить его ID аккаунта. Подробнее про сервис читаем на данной странице форума: Сервис статистики на сайте XVM Данная модификация добавляет следующие макросы: {{py:vc.buttonsState}} - отдает значение 'True' если есть хотя бы одна техника в окне сравнения, иначе пусто. "mouseEvents" > "mouseDown" > "stats_mouseDown" Установка: widgets.xc ${ "widgetsTemplates.xc": "statistics_XVM" } widgetsTemplates.xc "statistics_XVM": { "enabled": true, "layer": "top", "type": "extrafield", "formats": [ { "updateEvent": "PY(ON_VC_BST)", "x": "{{py:vc.buttonsState?-169|-92}}", "y": -2, "width": 73, "height": 34, "screenHAlign": "right", "screenVAlign": "bottom", "src": "xvm://res/icons/other/xvm_button.png", "mouseEvents": { "mouseDown": "stats_mouseDown" } } ] } Скрипт: statisticsXVM.py Разместить в: configs\xvm\py_macro Готовый комплект: statisticsXVM.zip Для дефолтного конфига (распаковать поверх)
  36. 9 points
    Обновлен мод отметок до 7.00 добавлен показ в ангаре:
  37. 9 points
    https://symbolserver.openwg.net Позволяет корректно отображать коллстек для worldoftanks.exe в отладчиках. Как это работает: При помощи генерации PDB файла, который содержит авторазметку от IDA и размеченные функции С/Python API. Обработка присходит в два этапа 1) экспортируем из IDB в .json с помощью скрипта dumpinfo.py 2) генерируем из .exe и .json результирующую .pdb с помощью pdbgen.exe Забрать скрипт и генератор можно тут: https://github.com/Mixaill/FakePDB/releases/tag/v0.0.0 Планы: * поддержка аргументов для функций С/Python API Суть: Кому может быть интересно: @SkepticalFox @reven86 @Pavel3333
  38. 9 points
    Всем привет, После долгого перерыва, добавляем актуальную версию инструмента. Ссылка также добавлена в первый пост.
  39. 9 points
    Привет! В ночь с 4 на 5 февраля выйдет обновление 1.4, папки модов будут называться /mods/1.4.0.0/ и /res_mods/1.4.0.0/
  40. 9 points
  41. 9 points
    Конфиг XVM обновлен Иконки техники обновлены
  42. 9 points
    Мод показывает в окне результата боя рейтинг wn8, eff, xte за бой, показывает итоговый заработанный опыт и серебро за бой вместо начисленного Скачать
  43. 9 points
  44. 8 points
    "Калькулятор эффективности". Bitbucket: https://bitbucket.org/Kotyarko_O/xvm.py_macro/src/master/ Дисклеймер: Данные, отображаемые этим аддоном, не могут являться точными, т.к. формулы рейтингов не предназначены на расчёт этих рейтингов в рамках одного боя. И я вообще не утверждаю, что в этом есть смысл. Многие используют модификации подобного характера, так что вот вам аналог на XVM`е. Это всего-лишь ради "фапания на циферки" =) Доступные макросы (для ангарной части аддона): {{mapName}} // map name \ название карты {{battleType}} // battle type \ тип боя {{wn8}}, {{xwn8}}, {{eff}}, {{xeff}}, {{xte}} // statistic macroes \ макросы статистики {{c:wn8}}, {{c:eff}}, {{c:xte}} // statistic color macroes \ макросы окраса статистики Доступные макросы (для боевой части аддона): {{py:efficiency.damage}} //суммарный нанесённый урон. {{py:efficiency.wn8}} //расчёт боевой эффективности по формуле WN8. {{py:efficiency.xwn8}} {{py:efficiency.eff}} //расчёт боевой эффективности по формуле EFF. {{py:efficiency.xeff}} {{py:efficiency.xte}} //расчёт боевой эффективности по формуле XTE. {{py:efficiency.diffExpDmg}} //разница между нанесённым в бою уроном и ожидаемым. {{py:efficiency.diffAvgDmg({{tdb}})}} //разница между нанесённым в бою уроном и средним уроном конкретного танка. {{py:efficiency.wn8Color}} //цвет для efficiency.wn8, efficiency.xwn8 {{py:efficiency.effColor}} //цвет для efficiency.eff, efficiency.xeff {{py:efficiency.xteColor}} //цвет для efficiency.xte {{py:efficiency.diffExpDmgColor}} //цвет для efficiencydiffExpDmg {{py:efficiency.diffAvgDmgColor({{tdb}})}} //цвет для efficiencydiffAvgDmg Представление: (ангарная часть аддона, выведение итоговой статистики в окне результатов боя) (боевая часть аддона, подсчёт статистики) Установка: battleLabelsTemplates.xc battleLabels.xc: ${ "battleLabelsTemplates.xc":"def.battleEfficiency" } @xvm.xc: "battleEfficiency": ${"battleEfficiency.xc":"battleEfficiency"} Содержимое архива раcпаковать в "res_mods": battleEfficiency.zip * Обратите внимание, что внутри архива, для примера, имя папки конфигов было взято стандартное - "default".* Соответственно, если у вас папка конфигов имеет уникальное имя, вам нужно скопировать конфиг battleEfficiency.xc, находящийся в папке "default" загруженного архива, в свою папку конфигов.
  45. 8 points
    Я вот щас сильно разочарую всех, кто думает что будут скачивать клиент отдельно с торрентов. авторизация проходит через WGC, если он не запущен, то просто невозможно войти в игру. 100% увидел это ещё на wot classic В случае принудительного ввода WGC я просто развернусь и уйду. мне хватило негативного опыта с гой центром во время 070 эвента. Опишу проблемы которые лично "отхватил" 1. постоянно висит в памяти и производит какие-то действия, антивирус AVG просто заходился в крике про доступ к системным компонентам и постоянному "служебному" трафику. 2. дико медленный запуск клиента. 3. вылеты с ошибками без причины. 4. отказался работать на MAC дочери. 5. при удалении снёс клиент танков вместе с собой. 6. после удаления осталось куча мусора, реестр пришлось восстанавливать из резервной копии, при старте системы получал кучу сообщений от мониторинга целостности. Ну и негатив от того что аунтификация только через этот центр, а не вводом пароля в клиенте игры, мне для тестирования приходится заходить под разными аккаунтами и запускать несколько клиентов одновременно, чтобы к примеру сам с собой в треньке покатать. с гей центром это станет нереально подозреваю. Так что думаю что скоро придётся удалять репо и вместо модов публиковать #НакуйГрёбаныйЦентр
  46. 8 points
  47. 8 points
    mod_marksOnGunExtended 5.11 - added 4 new visual styles - fixed issue with 100% moe - added new option "Battle: show damage to +0.5%"
  48. 8 points
  49. 8 points
    Иконки техники обновлены
  50. 8 points
    встречайте пополнение, как обещал R144_K_91.7z K_91_chassis_01_AM.7z R155_Object_277.7z Object_277_chassis_01_AM.7z
×