Этот репозиторий содержит всё необходимое для разработки мода для танков.
- 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 файла