Система автоматизованої відправки особистих повідомлень гравцям у грі «Світ Танків» / «World of Tanks».
Цей документ описує модульну частину проєкту (клієнт гри). Веб-частина розглядається окремо.
1. Загальна мета модульної частини
Мод має забезпечувати повністю автоматизовану роботу ігрового клієнта для відправки особистих повідомлень гравцям, отримуючи команди та дані з веб-додатку (або локального сервісу), без участі користувача.
Ключові завдання:
Автоматичний вхід у гру
Пропуск усіх стартових і сповіщувальних вікон
Отримання списку гравців та тексту повідомлень
Відправка особистих повідомлень
Зміна акаунта після виконання завдань
2. Сумісність і обмеження
Гра: World of tanks (WG / Lesta)
Версія клієнта: актуальна на момент запуску проєкту (мод має бути легко адаптованим під оновлення)
Тип мода: клієнтський мод (Python + Scaleform / BigWorld)
Робота в віконному та повноекранному режимах
3. Архітектура модульної частини
Мод складається з наступних логічних компонентів:
Ініціалізаційний модуль
Модуль управління інтерфейсом
Модуль відправки повідомлень
Модуль зв'язку з веб-частиною
Модуль зміни акаунтів
Модуль логування та статусів
**На розсуд мододела
4. Ініціалізація та запуск
4.1 Автозапуск
Мод автоматично завантажується при старті клієнта
Не вимагає ручного включення
4.2 Модуль підбору гравців за критеріями за допомогою API ключів(WG\Lesta)
1. В клані(так/ні)
1.1. Тег клану
1.2. Посада
2. Показники
2.1. Кількість боїв
2.2. Відсоток перемог
2.3. WN8
2.4. Топів (10 рів.)
2.5. Боїв на день
2.6. Особистий рейтинг
3. Кланові бої
3.1. Бої в укріпрайоні
3.2. Бої на глобальній карті
3.3. УР Рівень 8
3.4. УР Рівень 10
4. Останній бій (днів)
5. Дата реєстрації
6. Доступні танки(Обов'язкова наявність)
7. Відсутні танки(Виключити з підбору певні танки)
4.3 Пропуск вступних екранів
Мод має автоматично:
Закривати вітальні вікна
Пропускати навчальні підказки
Приймати ліцензійні угоди (якщо з'являються)
Закривати спливаючі акції / новини / івенти
Закривати сповіщення про досягнення
Пріоритет — максимально швидкий вихід в ангар.
5. Зв'язок з веб-частиною
5.1 Тип зв'язку
Один з варіантів (має бути закладено в архітектуру):
HTTP (локальний сервер)
або
WebSocket
Черга команд
5.2 Отримувані дані
Мод має вміти приймати:
Список нікнеймів гравців
Текст повідомлення
Обмеження по швидкості відправки повідомлень
Команди:
start
pause
stop
switch_account
6. Модуль відправки повідомлень
6.1 Пошук гравця
Відкриття інтерфейсу особистих повідомлень
Пошук гравця за нікнеймом
Перевірка, що гравець існує
6.2 Відправка повідомлень
Вставка тексту повідомлення
Відправка повідомлення
Обробка затримок між повідомленнями
6.3 Обмеження
Налаштовувана затримка між повідомленнями
Можливість обмеження кількості повідомлень за сесію
8. Обробка помилок
Мод має коректно обробляти:
Гравець не знайдений
Бан чату
Помилка інтерфейсу
Втрата з'єднання
Критичні помилки клієнта
При помилці:
Логувати причину
Перейти до наступного гравця
Або відправляти статус у веб-частину
9. Зміна акаунтів
9.1 Умови зміни акаунта
Досягнуто ліміт повідомлень
Отримано команду switch_account
Помилка/блокування
9.2 Процес зміни
Мод має:
Вийти з поточного акаунта
Повернутися на екран авторизації
Вибрати наступний акаунт (за даними з веб-частини або конфігу)
Виконати вхід
Повторити ініціалізацію (пропустити вікна, графіку)
10. Логування та статуси
Мод має вести логи:
Успішні повідомлення
Помилки
Зміни акаунтів
Статус поточного завдання
Логи мають бути:
В локальному файлі
Або передаватися у веб-частину
11. Конфігурація
Мод має мати конфігураційний файл:
Затримки
Ліміти
Графічні налаштування
Параметри підключення
Формат: JSON / YAML
12. Вимоги до стабільності
Робота в тривалих сесіях (кілька годин)
Робота в кількох потоках (клієнтів гри)
Відсутність витоків пам'яті
Коректна робота після крашів клієнта
13. Безпека
Відсутність зберігання паролів у відкритому вигляді
14. Результат
Результатом є клієнтський мод, який:
Сам запускає гру
Сам доходить до ангара
Сам відправляє ЛС
Сам змінює акаунти
Керується ззовні (веб-частина)
15. Додатково (за погодженням)
Режим «без інтерфейсу»
Автовідновлення після вилету