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.
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.
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:
- Dziewięć poziomów zoomu. Wzorzec jest próbowany od 0,8 do 1,2 swojej wielkości. Dzięki temu kamień zostaje rozpoznany także wtedy, gdy stoi dalej albo inaczej przybliżyłeś kamerę. To właśnie funkcja auto-zoom.
- Obraz krawędzi jako zapas. Jeśli najlepsza wartość zostaje tuż pod progiem, bot dodatkowo liczy obraz krawędzi i szuka jeszcze raz w nim. Tam liczą się tylko kontury, nie powierzchnie. To ratuje trafienia, przy których zmienił się kolor tła.
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?
Dlaczego muszę sam zapisywać kamienie?
Co oznacza próg wykrywania?
Dlaczego bot klika najpierw najbliższy kamień?
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 →