System automatycznego wysyłania wiadomości prywatnych do graczy w grze „World of Tanks”.
Dokument ten opisuje część modyfikacji projektu (klient gry). Część webowa jest rozpatrywana oddzielnie.
1. Ogólny cel części modyfikacji
Modyfikacja powinna zapewniać w pełni zautomatyzowaną pracę klienta gry do wysyłania wiadomości prywatnych do graczy, otrzymując polecenia i dane z aplikacji webowej (lub lokalnej usługi), bez udziału użytkownika.
Kluczowe zadania:
Automatyczne logowanie do gry
Pomijanie wszystkich okien startowych i powiadomień
Otrzymywanie listy graczy i tekstów wiadomości
Wysyłanie wiadomości prywatnych
Zmiana konta po wykonaniu zadań
2. Kompatybilność i ograniczenia
Gra: World of Tanks (WG / Lesta)
Wersja klienta: aktualna w momencie uruchomienia projektu (modyfikacja powinna być łatwo dostosowywana do aktualizacji)
Typ modyfikacji: modyfikacja kliencka (Python + Scaleform / BigWorld)
Praca w trybie okienkowym i pełnoekranowym
3. Architektura części modyfikacji
Modyfikacja składa się z następujących komponentów logicznych:
Moduł inicjalizacyjny
Moduł zarządzania interfejsem
Moduł wysyłania wiadomości
Moduł komunikacji z częścią webową
Moduł zmiany kont
Moduł logowania i statusów
**Na uznanie twórcy modyfikacji
4. Inicjalizacja i uruchomienie
4.1 Autostart
Modyfikacja automatycznie ładowana przy starcie klienta
Nie wymaga ręcznego włączania
4.2 Moduł doboru graczy według kryteriów za pomocą kluczy API (WG\Lesta)
1.W klanie (tak/nie)
1.1. Tag klanu
1.2. Stanowisko
2. Wskaźniki
2.1. Liczba bitew
2.2. Procent zwycięstw
2.3. WN8
2.4. Topów (10 poziom)
2.5. Bitew dziennie
2.6. Osobisty ranking
3.Boje klanowe
3.1.Boje w umocnionym rejonie
3.2. Boje na globalnej mapie
3.3. Poziom 8
3.4. Poziom 10
4. Ostatnia bitwa (dni)
5. Data rejestracji
6. Dostępne czołgi (obowiązkowa obecność)
7. Brakujące czołgi (wykluczyć z doboru określone czołgi)
4.3 Pomijanie ekranów wstępnych
Modyfikacja powinna automatycznie:
Zamykać okna powitalne
Pomijać wskazówki szkoleniowe
Akceptować umowy licencyjne (jeśli się pojawią)
Zamykać wyskakujące akcje / wiadomości / wydarzenia
Zamykać powiadomienia o osiągnięciach
Priorytet — maksymalnie szybkie wyjście do garażu.
5. Komunikacja z częścią webową
5.1 Typ komunikacji
Jedna z opcji (powinna być uwzględniona w architekturze):
HTTP (lokalny serwer)
lub
WebSocket
Kolejka poleceń
5.2 Otrzymywane dane
Modyfikacja powinna umieć przyjmować:
Listę nicków graczy
Tekst wiadomości
Ograniczenia prędkości wysyłania wiadomości
Polecenia:
start
pause
stop
switch_account
6. Moduł wysyłania wiadomości
6.1 Wyszukiwanie gracza
Otwieranie interfejsu wiadomości prywatnych
Wyszukiwanie gracza po nicku
Sprawdzanie, czy gracz istnieje
6.2 Wysyłanie wiadomości
Wstawianie tekstu wiadomości
Wysyłanie wiadomości
Obsługa opóźnień między wiadomościami
6.3 Ograniczenia
Konfigurowalne opóźnienie między wiadomościami
Możliwość ograniczenia liczby wiadomości na sesję
8. Obsługa błędów
Modyfikacja powinna poprawnie obsługiwać:
Gracz nie znaleziony
Ban czatu
Błąd interfejsu
Utrata połączenia
Krytyczne błędy klienta
W przypadku błędu:
Logować przyczynę
Przechodzić do następnego gracza
Lub wysyłać status do części webowej
9. Zmiana kont
9.1 Warunki zmiany konta
Osiągnięto limit wiadomości
Otrzymano polecenie switch_account
Błąd/blokada
9.2 Proces zmiany
Modyfikacja powinna:
Wylogować się z aktualnego konta
Powrócić na ekran logowania
Wybrać następne konto (na podstawie danych z części webowej lub konfiguracji)
Wykonać logowanie
Powtórzyć inicjalizację (pomijanie okien, grafika)
10. Logowanie i statusy
Modyfikacja powinna prowadzić logi:
Udane wiadomości
Błędy
Zmiany kont
Status bieżącego zadania
Logi powinny być:
W lokalnym pliku
Lub przesyłane do części webowej
11. Konfiguracja
Modyfikacja powinna mieć plik konfiguracyjny:
Opóźnienia
Limity
Ustawienia graficzne
Parametry połączenia
Format: JSON / YAML
12. Wymagania dotyczące stabilności
Praca w długich sesjach (kilka godzin)
Praca w wielu wątkach (klientów gry)
Brak wycieków pamięci
Poprawna praca po awariach klienta
13. Bezpieczeństwo
Brak przechowywania haseł w otwartej postaci
14. Wynik
Wynikiem jest modyfikacja kliencka, która:
Automatycznie uruchamia grę
Automatycznie dociera do garażu
Automatycznie wysyła wiadomości prywatne
Automatycznie zmienia konta
Jest zarządzana z zewnątrz (część webowa)
15. Dodatkowo (po uzgodnieniu)
Tryb „bez interfejsu”
Automatyczne przywracanie po awarii