Jak działa katalog skryptów automatyzacji dla Genshin Impact
Każdy, kto grał w Genshin Impact, zna tę rutynę: zbierz 168 osobliwości do awansu postaci, oczyść punkty z rudą, ukończ codzienne lochy. Proces zamienia się w drugą pracę. Społeczność rozwiązuje ten problem po swojemu. Projekt BetterGI wykorzystuje widzenie komputerowe i emulację wejść, aby zautomatyzować grind, a repozytorium 4 służy jako coś w rodzaju centralnego menedżera pakietów.
Stałem się ciekawy, jak deweloperzy zorganizowali repozytorium skryptów użytkowników. Gdy setki osób przesyłają trasy farmienia, rotacje walki i niestandardowe makra JS, projekt może łatwo zamienić się w chaos. Tutaj autorzy zbudowali ścisły system moderacji i struktury poprzez regularne Pull Reqesty.
Co znajduje się w repozytorium
Repozytorium zasila witrynę internetową 5. Użytkownicy uruchamiają klienta BetterGI, wybierają potrzebny scenariusz z katalogu, a aplikacja pobiera dane bezpośrednio z Git. Bez złożonej bazy danych po stronie serwera — GitHub pełni rolę jedynego źródła prawdy.
Katalog podzielony jest na cztery główne obszary:
- 6 — skrypty rotacji walki. Opisują timing umiejętności postaci, pauzy i warunki ukończenia lochów.
- 7 — trasy nawigacyjne. To pliki JSON z koordynatami ruchu postaci — od teleportów do punktów zbierania zasobów.
- 8 — złożone scenariusze automatyzacji w JavaScript z rozpoznawaniem wzorców i niestandardowym interfejsem.
- 9 — logika dla trybu kart "Przywołanie Siódemki".
Architektura skryptów nawigacyjnych
Największą częścią katalogu są trasy zbierania zasobów (10). Aby tysiące plików pozostały czytelne, społeczność wprowadziła ścisły standard nazewnictwa:
0Przykład z repozytorium: 11 (Kryształy, Liyue, Cloud Retainer, 6 sztuk). Numery tras nie są dowolne. Trasy są sortowane albo według kolejności teleportów, aby skrócić czas ładowania, albo według gęstości zasobów, aby najpierw farmić najbogatsze miejsca.
Konflikty są rozwiązywane w ciekawy sposób. Załóżmy, że dwóch autorów stworzyło trasy zbierania dla tego samego kwiatu, ale dla różnych zestawów postaci:
1Jeśli gracz ma postać, która zbiera zasoby zdalnie, pobiera jeden preset. Jeśli zbieranie odbywa się standardową dwuręczną bronią do rozbijania rud — inny. Struktura katalogu izoluje te warianty za pomocą folderów z przyrostkiem 12.
Złożone scenariusze JavaScript
Proste ruchy nie pokrywają wszystkich zadań. W przypadku złożonych czynności, takich jak automatyczne farmienie linii ley lub przebiegi na materiały awansu, używane są skrypty JS. Typowa struktura folderów w 13:
2Wewnątrz 14 deweloperzy łączą dopasowywanie obrazów szablonów (Template Matching przez OpenCV) i symulację kliknięć. Jeśli na ekranie pojawi się wymagana ikona z folderu 15, uruchamiany jest odpowiedni branch logiki.
W celu konfiguracji parametrów autorzy skryptów mogą dołączać niestandardowe nakładki HTML. Zasady repozytorium zawierają jasne wymagania: ciężkie pakiety SPA bez kodu źródłowego są zabronione, więc silnik webowy nakładki nie zużywa dodatkowej pamięci RAM podczas gry.
3Współtwórcy i wsparcie
Projekt jest utrzymywany przez aktywną chińską społeczność. Większość zmian pochodzi z PR-ów na GitHubie, gdzie autorzy przestrzegają ścisłych zasad komentowania i formatowania.
Kto znajdzie ten projekt przydatny
Jeśli piszesz boty do gier lub tworzysz automatyzację opartą na widzeniu komputerowym, 16 to świetny przykład organizacji współdzielonej bazy skryptów:
- Jak wykorzystać GitHub jako rejestr pakietów bez pisania backendu.
- Jak przechowywać zasoby rozpoznawania obrazów obok kodu wykonywalnego.
- Jak zbudować schemat nazewnictwa plików, który eliminuje duplikację i zamieszanie między dziesiątkami autorów.
Kod źródłowy jest otwarty, a dokumentacja dotycząca formatów scenariuszy dostępna jest na stronie projektu. Nawet jeśli nie masz nic wspólnego z Genshin Impact, architektoniczne rozwiązania dotyczące organizacji plików i standardów wkładu mogą zostać zapożyczone do własnych narzędzi.
Powiązane projekty