Technologia

Jak BeaTzVision działa od środka:
od zrzutu do kliknięcia

· 7 min czytania · BeaTzTools

Krótko: BeaTzVision w pętli robi wciąż to samo: fotografuje okno gry, przelicza obraz tak, żeby rozpoznawanie było stabilne, szuka w nim zapisanych przez ciebie Metinów, wybiera najbliższy cel i symuluje mysz oraz klawiaturę. Proces gry nigdy nie zostaje tknięty.

W tym artykule
  1. Przechwycenie okna
  2. Przygotowanie obrazu
  3. Znajdowanie kamieni
  4. Wybór celu
  5. Kliknięcia i klawisze
  6. Dlaczego to ważne na serwerach prywatnych

1. Przechwycenie okna

Bot nie fotografuje całego ekranu, tylko obszar twojego okna gry. Jest to szybsze i sprawia, że Discord, przeglądarka albo drugi klient nie trafiają do rozpoznawania.

Przeszkadzające obszary możesz dodatkowo ukryć maskami. Bot zamalowuje je w przechwyconym obrazie na czarno, zanim w ogóle zacznie szukać. Typowe przypadki to czat, minimapa albo pasek stanu, na którym czasem pojawia się coś podobnego do Metina.

2. Przygotowanie obrazu

Potem obraz kolorowy zamienia się w obraz w skali szarości. Brzmi jak utrata informacji, ale jest dokładnie tym, czego trzeba: o trafieniu decyduje kształt i kontrast, a nie kolor.

Na obrazie szarym działa CLAHE, wyrównanie kontrastu, które dzieli obraz na kafelki 8×8 i każdy kafelek rozjaśnia albo przyciemnia osobno. Różnica wobec globalnego rozjaśnienia jest duża: kamień w cieniu drzewa i ten sam kamień w pełnym słońcu wyglądają potem na tyle podobnie, że jeden wzorzec znajdzie oba.

Dlaczego to ważne

Większość problemów z wykrywaniem na serwerach prywatnych bierze się z jasności: inne wartości gamma, inne efekty, inna pora dnia w grze. Wyrównanie kontrastu wyłapuje część z tego. Reszta zależy od tego, jak zapiszesz wzorzec.

3. Znajdowanie kamieni

Teraz zaczyna się właściwe szukanie, dopasowywanie wzorców. Twój zapisany obraz przesuwa się po obrazie na żywo, a OpenCV dla każdej pozycji liczy, jak dobrze oba do siebie pasują. Wynikiem jest wartość od 0 do 1. Powyżej twojego progu kamień uznaje się za znaleziony.

Dwie rzeczy czynią to odporniejszym, niż brzmi:

Dla rzeczy rozpoznawanych pewniej po kolorze, jak paski życia czy punkty graczy na minimapie, bot pracuje zamiast tego w przestrzeni HSV. Tam odcień, nasycenie i jasność są rozdzielone, więc można powiedzieć „ten odcień, niezależnie od jasności”.

4. Wybór celu

Zwykle bot znajduje kilka kamieni naraz. Wszystkie trafienia są sortowane według odległości od środka ekranu, a środek to twoja postać. Najbliższy kamień idzie pierwszy, bo najkrótsza droga daje najwięcej kamieni na godzinę.

Wokół własnej postaci znajduje się strefa wykluczenia o promieniu około 80 pikseli. Trafienia w jej wnętrzu są odrzucane. Bez niej bot od czasu do czasu klikałby własnego konia, własną nazwę albo efekt na postaci.

5. Kliknięcia i klawisze

Na końcu współrzędne z obrazu stają się wejściem. Mysz jedzie na pozycję, chwilę czeka i dopiero klika. Klawisze są trzymane około 70–140 milisekund, a puszczenie trwa kolejne 40–80. Te czasy przy każdym kliknięciu są nieco inne.

Wejście idzie normalną drogą wejścia Windows, opcjonalnie przez sterownik na poziomie prawdziwej myszy. W obu przypadkach jest to zwyczajne zdarzenie wejściowe, takie samo jak z każdego innego programu.

Dlaczego to ważne na serwerach prywatnych

Każdy serwer prywatny ma własne modele Metinów, własny interfejs i często własne efekty. Właśnie dlatego zapisujesz kamienie sam, zamiast korzystać z gotowej listy, i dlatego zapisy trzymane są osobno dla każdego serwera. Zmieniasz serwer — bot zmienia wzorce razem z tobą. Czy twój jest na liście serwerów, sprawdzisz tam.

Druga sprawa to konstrukcja: żadnego dostępu do procesu gry, żadnego hooka, żadnego zmienionego pliku. Co to znaczy technicznie, opisuje Pixelbot a odczyt pamięci. Jak ustawić rozpoznawanie w praktyce, pokazuje poradnik farmbota, a gdy nic nie jest wykrywane, pomaga rozwiązywanie problemów.


Najczęstsze pytania

Czy BeaTzVision czyta pamięć gry?
Nie. Bot nigdy nie dotyka procesu gry. Przechwytuje tylko obraz okna gry, analizuje go za pomocą OpenCV i symuluje ruchy myszy oraz klawiatury. Nie ma uchwytu do gry, nie ma hooka i nie ma zmodyfikowanego pliku gry.
Dlaczego muszę sam zapisywać kamienie?
Bo każdy serwer prywatny wygląda inaczej: inne modele Metinów, inny interfejs, inne kolory. Bot szuka dokładnie tego obrazu, który zapisałeś. Dlatego zapisy trzymane są osobno dla każdego serwera.
Co oznacza próg wykrywania?
Dopasowywanie wzorców zwraca dla każdej pozycji w obrazie wartość od 0 do 1. Próg decyduje, kiedy trafienie się liczy. Za wysoki — kamienie są pomijane; za niski — bot znajduje kamienie tam, gdzie ich nie ma.
Dlaczego bot klika najpierw najbliższy kamień?
Wszystkie trafienia są sortowane według odległości od środka ekranu, a środek to twoja postać. Najkrótsza droga oszczędza czas chodzenia, a więc daje więcej kamieni na godzinę.

Chcesz spróbować sam?

Dołącz do Discorda BeaTzTools i uzyskaj dostęp do BeaTzVision i BeaTzSignal, przewodników konfiguracji oraz wsparcia.

Wypróbuj za darmo →