Pe scurt: BeaTzVision face în buclă același lucru: fotografiază fereastra jocului, transformă imaginea astfel încât detecția să rămână stabilă, caută în ea Metinele pe care le-ai capturat, alege ținta cea mai apropiată și apoi simulează mouse-ul și tastatura. Procesul jocului nu este atins niciodată.
1. Captura ferestrei
Botul nu fotografiază tot ecranul, ci doar zona ferestrei de joc. Este mai rapid și ține Discord, browserul sau un al doilea client în afara detecției.
Zonele care deranjează pot fi ascunse suplimentar cu măști. Botul le înnegrește în imaginea capturată înainte să înceapă căutarea. Tipic sunt chat-ul, minimap-ul sau o bară de stare în care apare ocazional ceva ce seamănă cu un Metin.
2. Pregătirea imaginii
Apoi imaginea color devine una în tonuri de gri. Sună a pierdere de informație, dar este exact ce trebuie: forma și contrastul decid o potrivire, nu culoarea.
Pe imaginea gri rulează CLAHE, o egalizare de contrast care împarte imaginea în dale de 8×8 și luminează sau întunecă fiecare dală separat. Diferența față de o luminare globală e mare: o piatră la umbra unui copac și aceeași piatră în soare puternic ajung să arate destul de asemănător încât un singur șablon să le găsească pe amândouă.
Majoritatea problemelor de detecție pe serverele private vin din luminozitate: alte valori gamma, alte efecte, altă oră în joc. Egalizarea de contrast absoarbe o parte. Restul ține de felul în care capturezi.
3. Găsirea pietrelor
Acum urmează căutarea propriu-zisă, template matching. Imaginea ta capturată este plimbată peste imaginea live, iar pentru fiecare poziție OpenCV calculează cât de bine se potrivesc cele două. Rezultatul e o valoare între 0 și 1. Peste pragul tău, piatra e considerată găsită.
Două lucruri fac asta mai robust decât pare:
- Nouă niveluri de zoom. Șablonul e încercat de la 0,8 la 1,2 din mărimea lui. Astfel, o piatră e recunoscută și când stă mai departe sau ai zoomat altfel camera. Aceasta e funcția auto-zoom.
- O imagine de contururi ca rezervă. Dacă cea mai bună valoare rămâne puțin sub prag, botul calculează suplimentar o imagine de contururi și caută din nou în ea. Acolo contează doar conturul, nu suprafețele. Asta salvează potriviri în care s-a schimbat culoarea fundalului.
Pentru lucrurile care se recunosc mai sigur după culoare, cum sunt barele de viață sau punctele jucătorilor de pe minimap, botul lucrează în schimb în spațiul de culoare HSV. Acolo nuanța, saturația și luminozitatea sunt separate, și se poate spune „nuanța aceasta, oricât de luminoasă”.
4. Alegerea țintei
De obicei botul găsește mai multe pietre deodată. Toate potrivirile sunt sortate după distanța față de centrul ecranului, iar centrul este caracterul tău. Piatra cea mai apropiată e prima, pentru că drumul cel mai scurt aduce cele mai multe pietre pe oră.
În jurul caracterului există o zonă de excludere de aproximativ 80 de pixeli. Potrivirile din interiorul ei sunt aruncate. Fără ea, botul ar da din când în când clic pe propriul cal, pe propriul nume sau pe un efect de pe caracter.
5. Clic și taste
La final, coordonatele din imagine devin input. Mouse-ul se duce la poziție, așteaptă scurt și apoi dă clic. Tastele sunt ținute apăsate aproximativ 70–140 de milisecunde, iar eliberarea durează încă 40–80. Timpii aceștia diferă ușor la fiecare clic.
Input-ul merge pe calea normală de input a Windows, opțional printr-un driver la nivelul unui mouse real. În ambele cazuri e un eveniment de input obișnuit, ca al oricărui alt program.
De ce contează pe serverele private
Fiecare server privat are propriile modele de Metin, propria interfață și adesea propriile efecte. Exact de aceea capturezi pietrele singur în loc să folosești o listă gata făcută și de aceea capturile sunt păstrate pe server. Schimbi serverul, botul schimbă șabloanele cu tine. Dacă al tău e în lista de servere, vezi acolo.
Al doilea punct e construcția: niciun acces la procesul jocului, niciun hook, niciun fișier modificat. Ce înseamnă asta tehnic explică Pixelbot vs. citirea memoriei. Cum configurezi detecția în practică arată ghidul de farmbot, iar dacă nu se detectează nimic, ajută depanarea.
Întrebări frecvente
BeaTzVision citește memoria jocului?
De ce trebuie să capturez singur pietrele?
Ce înseamnă pragul de detecție?
De ce dă botul clic întâi pe piatra cea mai apropiată?
Vrei să încerci singur?
Intră pe Discord-ul BeaTzTools și primește acces la BeaTzVision și BeaTzSignal, ghiduri de configurare și suport.
Încearcă gratuit →