Этот репозиторий содержит всё необходимое для разработки мода для танков.
- WGMods: https://wgmods.net/5652/ (УСТАРЕЛО)
От релизной версии он отличается файлом wot_stat/common/crypto.py, сейчас в нём расположена заглушка, релизная версия кодирует отправляемый на сервер json, дабы усложнить жизнь желающим заспамить сервер фейковыми сообщениями.
На Unix системах ./build.sh -v 1.0.0.0-a.1 -d в папке WOTSTAT. Флаг -d отвечает за дебаг версию с print_debug выводом.
Логгеры создают события events и добавляют их в eventLogger, который хранит и добавляет в нужную игровую сессию battleEventSession это событие.
BattleEventSession группирует события и раз в N=5 секунд отправляет их на сервер. Каждый бой создаётся новый экземпляр BattleEventSession(Events.OnEndLoad()), все события внутри этого боя отправляются через этот экземпляр. Экземпляр завершает своё существование событием Events.OnBattleResult().
Все остальные файлы служебные и не выполняют ключевой роли.
| Событие | Статус | Описание |
|---|---|---|
| OnBattleStart | + | Начало боя |
| OnShot | + | Факт совершения выстрела |
| OnBattleResult | + | Результат боя |
| OnShotReceived | - | Полученное попадание |
| OnDamage | - | Информация об уроне |
Мод сохраняет события на сервер, если вы хотите протестировать мод локально, вы можете запустить тестовый сервер на NodeJS
- В папке
World_of_Tanks/mods/configs/wot_statсоздать текстовый файлconfig.cfg, в который прописать
{
"eventURL": "http://localhost:5000/api/events/send",
"initBattleURL":"http://localhost:5000/api/events/OnBattleStart"
}
- Запустить serverPlaceholder
npm run serve - Запустить танки
- Готово. Теперь мод будет отправлять события на локальный сервер. Их можно посмотреть в консоле сервера.
Для корректной подсветки синтаксиса в IDE необходимы зависимости танков.
- Склонировать репозиторий с подмодулями (
git clone --recursive https://github.com/SoprachevAK/wot-stat.git)- WorldOfTanks-Decompiled - исходный код клиента танков
- BigWorldPlaceholder - заглушки функций библиотеки движка, объявлены только те, которые были нужны мне
- Запустить Zip-Unpacker.exe для исправления регистра названия файлов
- Открыть текущую директорию через PyCharm (File->Open)
- Отметить следующие папки как корень исходников (ПКМ -> Mark Directory as -> Sources Root)
/WorldOfTanks-Decompiled/source/res/scripts/client/WorldOfTanks-Decompiled/source/res/scripts/common/BigWorldPlaceholder
- Готово. Теперь в IDE будет работать подсветка синтаксиса и подсказка кода.
- С помощью PjOrion скомпилировать (Run -> Compile py folder)
- Запустить Zip-Packer.cmd для получения .wotmod файла