Fals pozitive: de ce anticheat-ul tău îți acuză jucătorii cinstiți
Fast travel citit ca teleportare, o diligență ca speedhack: fals pozitivele clasice de pe RedM și cum le elimini fără să oprești detecția.
Un anticheat aproape niciodată nu moare pentru că nu detectează nimic. Moare în ziua în care staff-ul tău nu mai deschide canalul de alerte. Din ziua aceea detecția rulează în continuare, alertele se adună în continuare și nimeni nu le mai citește, pentru că ultimele șase au fost jucători cinstiți. După asta, un trișor adevărat trece prin zgomot și nimeni nu observă. Fals pozitivele unui anticheat RedM sunt exact ce îl duce acolo.
Ce face serverul tău zilnic și arată exact ca trișatul
Niciunul dintre aceste cazuri nu este teoretic. Sunt primele cinci cauze ale alertelor absurde pe un server de roleplay RedM, în ordinea în care apar:
Fast travel. Scriptul tău mută un jucător din Valentine în Saint Denis într-un singur cadru. Pentru un detector care împarte o distanță la un timp, aceasta este o teleportare perfectă, de fapt mai bine executată decât una de mod menu.
Diligențe și trenuri. Un jucător așezat într-un vagon se mișcă cu viteza vagonului. În funcție de cum este atașat,
GetEntitySpeedpoate returna aproape zero în timp ce coordonatele lui avansează pe hartă. Un cal în galop singur ajunge deja în intervalul pe care l-ai fi ales drept plafon pentru un om pe jos: pragul naiv este greșit înainte ca trenul din Annesburg să plece.Căderea de pe cal. Jucătorul este aruncat, personajul face ragdoll, iar pentru câteva cadre trece prin decor: coliziunea nu este încă încărcată, coordonatele sunt sub sol. Un detector de noclip care întreabă „este sub geometrie?” îl acuză la fiecare descălecare.
Framework-ul tău care repune pe cineva pe picioare. Framework-ul tău setează un flag de invincibilitate în starea de doborâre și la ridicare, exact cum ar face un mod menu. La fel la spawn, în cutscene-uri, în zone sigure. Godmode-ul cel mai des detectat pe un server de roleplay este al tău.
Propriile tale unelte de admin. Un moderator în noclip, un ped spawnat pentru un eveniment RP, o teleportare la un jucător: aceeași capacitate, aceeași urmă, același semnal. Un anticheat care nu știe de unde vine un apel îți acuză mai întâi propria echipă.
Ce au în comun aceste cinci: detectorul citește o stare și deduce o intenție. Vede „invincibil” și scrie „god mode”. Vede o distanță și scrie „teleportare”. Dar acea stare este produsă la fel de bine de un trișor și de serverul tău care își face treaba. Până nu ai cauza, nu ai nimic.
În practică, un plafon de viteză utilizabil nu este un singur număr: depinde de purtătorul recunoscut de server (pe jos, călare, în vagon, pe șine) și este ridicat cu în fereastra care urmează unei mutări scriptate. Valorile exacte rămân în interior: un trișor care le cunoaște se reglează chiar sub ele.
Nepublicat/Pragurile de detecție nu sunt publicate niciodată: o valoare cunoscută este o valoare sub care se reglează un cheat.
Cât costă de fapt un fals pozitiv
De obicei se numără în timp de staff pierdut. Aceasta este partea ieftină. Costul real este în altă parte: un jucător pedepsit din greșeală spune povestea, și are dreptate să o spună. Comunitatea ta află că anticheat-ul greșește și, de la următorul ban încolo (cel bun, cel susținut de dovezi), va trebui să aperi unealta înainte să poți apăra decizia. Un anticheat care a mințit o dată nu mai dovedește nimic după aceea.
- săptămâna 1
- marea majoritate a alertelor au fost fals pozitive
- cauze
- mutare scriptată + montură/vagon
- factor agravant
- același eveniment numărat de două ori
- sancțiuni automate
- niciuna: livrat în mod observare
Două cauze și aproape toate alertele din panou. Niciunul dintre acei jucători nu trișase și niciunul nu a fost pedepsit, pentru că nimic nu era legat de o sancțiune. Este singurul motiv pentru care episodul poate fi povestit: a costat timp de citire și nimic altceva.
Disciplina care le elimină
- 1
Măsoară înainte să acuzi. Rata de fals pozitive se numără pe familie de detecție și raportat la trafic (evenimente la o mie de bătăi de inimă de prezență), niciodată ca număr brut de alerte pe ecran. O familie care explodează se vede imediat; un total global nu spune nimic.
- 2
Coroborează, adică cere efectul, nu starea. „Are flag-ul de invincibilitate” nu dovedește nimic. „L-am împușcat, impacturile sunt confirmate pe server, iar el nu a pierdut niciun punct de viață” dovedește ceva. Dovada trebuie să privească o consecință observabilă, nu valoarea unei variabile.
- 3
Învață scripturile proprii ale serverului. Lista evenimentelor legitime de pe serverul tău nu se poate ghici: se deduce din resursele tale. Un anticheat care descoperă la boot ce evenimente declanșează propriul tău cod încetează să-ți acuze fast travel-ul din prima zi.
- 4
Livrează în mod observare. Nicio sancțiune automată până când rata de fals pozitive pe familie nu este cunoscută. Primele zile sunt pentru măsurat, nu pentru pedepsit.
- 5
Repară cauza, nu opri niciodată detecția. Aici cele două meserii se despart.
Ultimul punct merită o oprire, pentru că aici cedează toată lumea. O familie de detecție face zgomot? O oprești. Liniștea revine, echipa respiră ușurată, iar ușa este acum deschisă definitiv: nimeni nu mai supraveghează acea capacitate, inclusiv atunci când un trișor o folosește. Răspunsul corect este chirurgical: permite acest eveniment anume pentru că vine din scriptul tău de diligență, ridică acest plafon pentru un jucător atașat unui vagon, ignoră această invincibilitate pentru că este setată în timpul unei ridicări. În rest, detecția rămâne activă peste tot.
Cu o rezervă, și contează: a permite un eveniment înseamnă a da o capacitate care poate fi declanșată din nou. Un trișor care află numele unui eveniment exceptat îl poate apela și el. De aceea o excepție rămâne aici un clic uman: mașina propune corecția, nu o aplică niciodată singură.
Mecanismul rulează o dată pe noapte: recitește alertele închise ca greșite, le urmărește până la cauză și pregătește cea mai îngustă corecție posibilă, de exemplu o fereastră de grație de după mutare. Două pârghii, două reguli. Ridicarea unui plafon se aplică singură, dar doar în limite stricte: minimum douăzeci de eșantioane, de la cel puțin trei jucători distincți, cincisprezece procente de marjă peste p99 observat, niciodată peste trei ori valoarea de serie, cinci modificări pe zi, iar ea expiră după treizeci de zile. Autorizarea unui nume de eveniment nu este niciodată automată, oricare ar fi dovezile: acel nume ajunge la fiecare client, deci este o capacitate pe care un cheat o poate re-declanșa după plac. Acolo, un om dă clic, sau nu o face nimeni.
Nepublicat/Pragurile de detecție nu sunt publicate niciodată: o valoare cunoscută este o valoare sub care se reglează un cheat.
Întrebarea de pus înainte să cumperi
Nu „câte cheaturi detectați”. Toată lumea răspunde la asta cu o listă. Întreabă în schimb: cum vă măsurați fals pozitivele și ce se întâmplă când o detecție greșește pe serverul meu? Dacă răspunsul este „dezactivăm modulul”, acela este un întrerupător, nu un anticheat. Dacă răspunsul este „urmărim până la cauză, propunem corecția, o aprobi tu”, în spatele produsului se află cineva.
Panoul demo arată cum arată o alertă când a fost investigată, nu strigată, iar prețurile sunt publice. Anticheat-ul nostru RedM este construit în jurul acestei reguli mai întâi și al numărului de detecții pe urmă. Pentru motivul pentru care observarea stării produce structural acest zgomot, citește cum funcționează un anticheat RedM.