- V 0.2 (2022-04-10)
- V 0.3 (2022-05-03)
- V 0.4 (2022-05-04)
- Временные файлы
- Иные файлы модификации
- Исполнение .py файлов
- Исполнение python-кода
- Легальные — "wot mods cleaner" (поиск и удаление модов, восстановление paths.xml, очистка кэша)
- Общая информация
- Переопределение порядка монтирования пакетов
- Порядок загрузки
- Работа с файлами gnu gettext
- Работа с файлами внутри пакетов
- Разрешение конфликтов при загрузке
- Регистрозависимость имён файлов
- Рекомендации по именованию пакетов
- Совместное использование пакетов и res_mods
- Структура пакета
- Установка пакета
- Файл метаданных meta.xml
- Файлы журналов
- Файлы конфигурации
V 0.2 (2022-04-10)
- переработка оформления: новая вёрстка, разбиение на главы;
- переработано описание схемы именования пакетов
- переработано описание порядка подключения пакетов
- добавлены рекомендации насчёт мест хранения журналов и файлов конфигурации
- добавлены примеры исходного кода для работы с файлами внутри пакетов;
- добавлено описание известных на текущий момент проблем
V 0.3 (2022-05-03)
- добавлена информация про ограничения формата файлов .wotmod
- дополнено описание алгоритма разрешения конфликтов для пакетов с одинаковым идентификатором
V 0.4 (2022-05-04)
- Переработано описание разрешения конфликтов между пакетами с помощью файла load_order.xml
Временные файлы
Для хранения временных файлов модификации рекомендованно использовать следующий путь:
Где:
- temp — путь к каталогу с временными файлами для текущего пользователя в ОС;
- author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.
Иные файлы модификации
Для хранения внутри пакета контента, к которому необходимо получить доступ из клиента игры, рекомендованно использовать следующий путь:
Где:
author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.
Исполнение .py файлов
Описание проблемы
На данный момент невозможно исполнение .py -файлов, которые размещены внутри пакета.
Временное решение
Размещать в пакете не только .py , но и скомпилированные в байткод .pyc -файлы.
Исполнение python-кода
После монтирования всех пакетов и разрешения конфликтов, происходит исполнение всех .pyc — файлов из каталога /scripts/client/gui/mods/ в алфавитном порядке, имя которых начинается с mod_ .
В пакете данный файл должен быть расположен по следующему пути:
Легальные — "wot mods cleaner" (поиск и удаление модов, восстановление paths.xml, очистка кэша)
Автор:
StranikS_Scan
Программа для поиска и удаления модификаций и различного мусора из клиента игры «WorldOfTanks«. Умеет находить установленные моды, загружать информацию о файлах игры с сайта обновлений WG, чистить кэш игры, удалять логи, скриншоты и реплеи, делать предварительно бэкап
Поиск файлов в «mods« и «res_mods» папках клиента (Internal mods)
Анализ и восстановление файла «paths.xml«, определение сторонних ссылок на файлы и папки в нём (External mods and files)
Расширенный поиск посторонних файлов в каталоге «WorldOfTanksres« путем загрузки и анализа данных с сервера обновлений WG (External mods and files)
Удаление файлов и папок по расширенному списку, загружаемому с GitHub:
Очистка кэша игры в каталоге
«Wargaming.netWorldOfTanks»
(
Cache-folder
)
Поиск и удаление
log
-файлов (
Logs-files
)
Поиск и удаление скриншотов (
Screenshots-files
)
Поиск и удаление реплеев (
Wotreplays-files
)
Создание
zip
-архива с бэкапом
Через программу можно скачать напрямую с сервера обновлений
WG
последние версии:
WOTLauncher
для
RU
,
EU
,
NA
и
ASIA
регионов
WGCheck
для
RU
,
EU
,
NA
и
ASIA
регионов
Для работы с программой достаточно положить
exe
-файл программы в корень клиента игры (папка
«WorldOfTanks«
), после чего запустить его. Программа автоматически проанализирует клиент игры и выдаст список файлов и модов, которые можно удалить. Удаляете их, закрываете программу, всё готово.
Также для упрощения задания искомой папки вы можете просто перенести мышкой в запущенную программу любой файл из корневого каталога игры. Программа сама по нему определит правильный путь
….
Программа тестировалась на совместимость с игровым и тестовым (
СТ
) клиентами игры
Расширенный анализ файлов клиента игры со
100% выявлением всех запускаемых модов
(
External mods and files
) доступен только при загрузке программой актуальных данных с сервера обновлений
WG
Загрузка данных с сервера обновлений
WG
производится для версии клиента игры, указанной в файле
game_info.xml
. Если версия клиента отличается от той, что на сервере игры, то программа предлагает пользователю выбор — можно либо продолжить на свой страх и риск, либо отказаться от углубленного анализа файлов. Если вы соглашаетесь, то после анализа необходимо тщательно проверить, что программой добавила в перечень удаляемых файлов
Программа не очищает полностью весь каталог клиента игры от посторонних файлов, она ориентирована в первую очередь на обнаружение и удаление тех файлов и модификаций, которые загружаются или могут быть загружены клиентом игры и тем самым влиять на его работу и работоспособность
Чтобы программный сканер или сама программа по какой-либо причине или ошибке не удалила каталог с игрой в коде программы реализована защита от такого удаления.
Скачать:
§
Автор:
StranikS_Scan
Программа для поиска и удаления модификаций и различного мусора из клиента игры «WorldOfTanks«. Умеет находить установленные моды, загружать информацию о файлах игры с сайта обновлений WG, чистить кэш игры, удалять логи, скриншоты и реплеи, делать предварительно бэкап
Поиск файлов в «mods« и «res_mods» папках клиента (Internal mods)
Анализ и восстановление файла «paths.xml«, определение сторонних ссылок на файлы и папки в нём (External mods and files)
Расширенный поиск посторонних файлов в каталоге «WorldOfTanksres« путем загрузки и анализа данных с сервера обновлений WG (External mods and files)
Удаление файлов и папок по расширенному списку, загружаемому с GitHub:
Очистка кэша игры в каталоге
«Wargaming.netWorldOfTanks»
(
Cache-folder
)
Поиск и удаление
log
-файлов (
Logs-files
)
Поиск и удаление скриншотов (
Screenshots-files
)
Поиск и удаление реплеев (
Wotreplays-files
)
Создание
zip
-архива с бэкапом
Через программу можно скачать напрямую с сервера обновлений
WG
последние версии:
WOTLauncher
для
RU
,
EU
,
NA
и
ASIA
регионов
WGCheck
для
RU
,
EU
,
NA
и
ASIA
регионов
Для работы с программой достаточно положить
exe
-файл программы в корень клиента игры (папка
«WorldOfTanks«
), после чего запустить его. Программа автоматически проанализирует клиент игры и выдаст список файлов и модов, которые можно удалить. Удаляете их, закрываете программу, всё готово.
Также для упрощения задания искомой папки вы можете просто перенести мышкой в запущенную программу любой файл из корневого каталога игры. Программа сама по нему определит правильный путь
….
Программа тестировалась на совместимость с игровым и тестовым (
СТ
) клиентами игры
Расширенный анализ файлов клиента игры со
100% выявлением всех запускаемых модов
(
External mods and files
) доступен только при загрузке программой актуальных данных с сервера обновлений
WG
Загрузка данных с сервера обновлений
WG
производится для версии клиента игры, указанной в файле
game_info.xml
. Если версия клиента отличается от той, что на сервере игры, то программа предлагает пользователю выбор — можно либо продолжить на свой страх и риск, либо отказаться от углубленного анализа файлов. Если вы соглашаетесь, то после анализа необходимо тщательно проверить, что программой добавила в перечень удаляемых файлов
Программа не очищает полностью весь каталог клиента игры от посторонних файлов, она ориентирована в первую очередь на обнаружение и удаление тех файлов и модификаций, которые загружаются или могут быть загружены клиентом игры и тем самым влиять на его работу и работоспособность
Чтобы программный сканер или сама программа по какой-либо причине или ошибке не удалила каталог с игрой в коде программы реализована защита от такого удаления.
Скачать:
Общая информация
Пакеты это
способ организации файлов модификаций, в котором весь контент отдельной модификации
упакован в один файл.В случае использования старой схемы распространения файлов, модификации устанавливаются в каталог <каталог WoT>/res_mods/<версия WoT>/.
При этом, файлы разных модификаций располагаются в одних и тех же каталогах, и поэтому зачастую трудно определить, какой файл относится к какой именно модификации. Переход на дистрибуцию в пакетах может существенно упростить организацию файлов модификаций: для установки пользователю достаточно скопировать пакет в каталог <каталог WoT>/mods/<версия WoT>/ , а для деинсталляции удалить ровно тот же файл.
Переопределение порядка монтирования пакетов
Описание проблемы
На данный момент невозможно переопределить порядок монтирования пакетов используя файл load_order.xml .
Временное решение
Нет известного решения. Решение ожидается в скором времени.
Порядок загрузки
Все пакеты, находящиеся в каталоге <каталог_WoT>/mods/<версия_WoT>/ , сортируются по значению узла <id> в файле meta.xml и загружаются по порядку. В случае отсутствия файла meta.xml внутри пакета, в качестве идентификатора пакета будет использовано имя файла.
Для переопределения порядка загрузки может быть использован файл load_order.xml , который должен находиться в вышеуказанном каталоге.
В случае, если все пакеты указаны в load_order.xml , то загрузка выполняется в указанном в файле порядке.
В случае, если часть пакетов в load_order.xml не указана, то сначала выполняется загрузка пакетов из load_order.xml , а затем отсутствующих в нём пакетов в алфавитном порядке.
Внимание: в данный момент использование файла load_orders.xml затруднено (смотрите раздел 9.4).
Работа с файлами gnu gettext
Описание проблемы
На данный момент невозможно переопределить .mo -файлы из <каталог_WoT>/res/text/LC_MESSAGES/ файлами из пакета.
Временное решение
В качестве временного решения, вы можете использовать пакет net.openwg.vfsgettext :
Работа с файлами внутри пакетов
Для работы с файлами внутри пакетов необходимо использовать модуль ResMgr .
Разрешение конфликтов при загрузке
В общем случае, система пакетов не допускает ситуации, когда в каталоге res/ внутри разных пакетов находятся одинаковые файлы. Такая ситуация cчитается конфликтом.
В случае обнаружения конфликта, вызвавший его пакет не будет загружен, а пользователю будет
показано соответствующее уведомление.
Например, если пакеты a.wotmod и b.wotmod будут содержать внутри себя файл res/scripts/entities.xml , то a.wotmod будет загружен успешно, а b.wotmod вызовет конфликт и загружен не будет.
Для управления обработкой конфликтов можно использовать:
1. Файл load_order.xml .
Пакеты, перечисленные в этом файле, не считаются конфликтующими и загружаются без анализа на пересечение имен файлов.
2. Значение узлов <id> и <version> из meta.xml .При наличии узла <id> в файле meta.xml , имя файла пакета не влияет на порядок загрузки. Пакеты, у которых <id> совпадает, считаются разными версиями или частями одной и той же модификации, и конфликты между ними также не учитываются. Данные пакеты загружаются в порядке увеличения версии.
Версии пакетов сравниваются посимвольно согласно таблице ASCII. Поведение совпадает с функцией
strcmp():
- версия 9.0.0 приоритетнее версии 10.0.0
- версия b приоритетнее версии B
- версия c<любые символы> приоритетнее версии c
- если версии совпадают, то приоритет у пакета, имя файла которого будет первым по алфавиту.
При наличии одноименных файлов внутри разных пакетов, конфликты между которыми разрешены посредством load_order.xml или meta.xml , приоритет имеет файл из пакета, который был подключен последним или имеет наибольшее значение <version> .
Регистрозависимость имён файлов
Описание проблемы
На данный момент, при монтировании файлов в виртуальную файловую систему:
- файлы из пакетов монтируются в нижнем регистре
- файлы из <каталог_WoT>/res_mods/ монтируются как есть
В результате, если файл содержится как в пакете, так и в res_mods , и при этом содержит хоть один символ в имени в верхнем регистре, то есть вероятность повторной загрузки файла.
Временное решение
Использовать для <каталог_WoT>/res_mods только имена файлов и каталогов в нижнем регистре.
Рекомендации по именованию пакетов
Для имени пакета (в дальнейшем package_id ) рекомендована следующая схема формирования:
package_id = author_id.mod_id
Где:
- author_id : идентификатор автора. Может быть сайтом разработчика модификации
( com.example ) или же просто его никнеймом ( noname )
- mod_id : идентификатор модификации. Выбирается автором модификации произвольно.
Данное имя используется в файле meta.xml (смотрите раздел 5), а также как часть имени файла
пакета.Пример имён пакетов:
com.example.coolmod
noname.supermod
Имя файла пакета формируется следующим образом:
Где:
- mod_version : версия модификации, задаётся автором в meta.xml (смотрите раздел 5).
Примеры:
com.example.coolmod_0.1.wotmodnoname.supermod_0.2.8.wotmod
Совместное использование пакетов и res_mods
С точки зрения клиента игры, корень виртуальной системы формируется из:
- /res_mods/<версия_WoT>
- /mods/<версия_WoT>/<имя_пакета>.wotmod/res/
- /res/packages/*.pkg/
- /res/
- Иные пути, указанные в файле <Каталог_WoT>/paths.xml
Пути указаны в порядке уменьшения приоритета. То есть, файлы из /res_mods/<версия_WoT>/ имеют наивысший приоритет вне зависимости от содержания load_order.xml
Структура пакета
Пакет представляет собой zip-архив со следующими свойствами:
- без сжатия
- расширение: .wotmod
- максимальный размер архива: 2 ГиБ — 1 байт (2 147 483 647 байт)
Внимание: архивы с компрессией в текущей версии World of Tanks не поддерживаются, поэтому, при
создании архивов необходимо установливать опцию «уровень сжатия» в значение «без сжатия».
архивы размером 2 ГиБ и больше в текущей версии World of Tanks не поддерживаются,
поэтому большие пакеты необходимо разбивать на более мелкие, размер каждого из которых не
будет превышает 2 ГиБ — 1 байт.
Внутри себя пакет содержит:
- обязательно: каталог /res/. Сюда помещаются ресурсы модификации, то есть все те файлы, которые раньше устанавливались в <каталог WoT>/res_mods/<версия WoT>
- опционально: служебный файл meta.xml (смотрите раздел 5)
- опционально: файл LICENSE с лицензионным соглашением
- опционально: любой иной контент, который может понадобиться автору модификации: ссылка на сайт модификации, документация, список изменений и тому подобное.
Пример структуры пакета:
Установка пакета
Пакеты устанавливаются в <каталог WoT>/mods/<версия WoT>. Это может быть как ручное копирование, так и установка посредством инсталятора модификации или сборки модификаций.
При необходимости, пакеты могут быть организованы в подкаталоги, что позволяет авторам сборок модификаций выполнять группировку файлов:
Файл метаданных meta.xml
Необязательный файл meta.xml содержит опциональные поля, описывающие модификацию.Пример заполнения:
Значения из полей <id> и <version> используются для определения порядка монтирования пакетов. Значения полей <name> и <description> в будущем будут использоваться в системе управления модификациями.
Файлы журналов
Помимо штатного файла python.log , для хранения журналов рекомендованно использовать путь:
Где:
author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.
Файлы конфигурации
Для хранения файлов конфигурации модификаций рекомендованно использовать путь
Где:
author_id и mod_id — идентификаторы, описаные в разделе 4 данной спецификации.

