Jump to content
  • 0

pomoc dokonaly anticheat na rychlost


KillBill61

Dotaz

Zjistil jsem ze anticheat na penize, zbrane atd je hrozne jednoduchy zatimco udelat perfektne citlivy anticheat na speedhack je komplikovane

 

if(GetPlayerState(i) == PLAYER_STATE_DRIVER) //jako ridic
{
  new Float:X, Float:Y, Float:Z;
  GetVehicleVelocity(GetPlayerVehicleID(i),X,Y,Z);
  if(X > 1.4 || Y > 1.4 || Z > 1.4 || X < -1.4 || Y < -1.4 || Z < -3)//maximalni rychlost ktera jde docilit (Z < -3 kdyz padate z MCH)
  {
SendClientMessageToAll(0xFF0000AA, "[CHEAT] speed ve vehiklu!");
SetVehicleVelocity(GetPlayerVehicleID(i),0,0,0);
}
}

 

nojo jenomze hacker se stejne muze trosku zrychlit - jak to mam udelat aby to bylo citlivy na hacky ale ne na nejrychlejsi nebo nejlepsi vehikl s akceleraci?

 

Predem dekuji za napady :d - udelat antitele, antispeed a antiairbrake jsou asi nejtezsi :/

Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0

Jo stejny problem resim i ja. airbrk lze nalezt celkem jiste ovsem u speedhacku jsem jeste nenasel system podle ktereho to najit. kazdopadne vim ze nelze prekrocit rychlost 256 km/h a to i volnym padem.

 

Hlavne delas chybu v tom ze velocity je jakoby vektor, ktery je rozlozen to tri slozek. tzn ze pokud hrac pojede "uhlopricne" tak nezjistis ze ma sh :)

Dalsim problemem je nitro, spousta hracu si mysli ze zvysuje rychlost, coz je omyl nitro pouze zvysi zrychleni ovsem na maximalni rychlost vozidla vliv nema.

 

Zkousel jsem i metodu stanoveni maximalni rychlosti vozidla na rovine, ovsem se nesmi zapomenout kdyz vozidlo jede z kopce.

 

Dle meho nazoru odhaleni na SH nikdy nebude na 100% Pokud ja vi mtak s0beit ma speedhack na klavese, ktera je detekovatelna pawnem (pri defaultnim nastaveni) ceho by se dalo zneuzit, ale porat to neni 100%tni

 

Vysleek je nasledujici: Pokud cheater nemysli a porad drzi speedhack lze hosnadno odhalit, pokud ovsem neni cheater totalni guma tezko ho system odhali. Tak dalsi faktor ktery dela problem je nekvalitni spojeni at uz od strany serveru nebo hrace.

 

Ja jsem to vyresil tak, ze system jen vyhodnoti potencionalniho speedhackera a toho nahlasi adminum, kteri si ho proveri.

 

Jeste abych se vrail k antiairbrku tak u vozidla je to jednoduche, vecolity pri airbrku ti vrati hodnoty 0-1 takze si staci s timeru kontrolovat jakou ujel vzdalenost a porovnat to s rychlosti. u airbrku s postavickou jeto komplikovanejsi.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

ten antispeed co mam nahore funguje ale docela ....... jak se to da - kdyz drzite ctrl (cheat) vic jak pul sekundy tak to objevi ale kdyz na to klikate tak musite rychle kliknout 2x za sebou a on to neodhali ale je to poradne videt ale docili tak polovicni maximalni rychlosti a pri vyssi rychlosti uz to odhaluje lip ale stejne mi to stve a taky na cheatech je ze kliknete alt a auto vyskoci nahoru (pocatecni rychlost zustava jen vyskoci jeste navic) - skvele na preskakovani zabradli apod. - vubec nevim jak to odhalit! :(

Link to comment
Share on other sites

  • 0

Ten speedhack se da v pohode detekovat pomoci te funkce GetVehicleVelocity, i kdyz hrac jede "uhlopricne" (coz tu nekdo vyvracel), protoze je samozrejme jednoduche si pomoci pythagorovy vety vypocitat delku prepony dvou na sebe kolmych vektoru a tim pak ziskas delku slozeneho vektoru, coz je hodnota rychlosti hrace/vozidla. Pak uz nezbyva nic jineho, nez nejakym zpusobem zjistit maximalni rychlost pro kazdy typ vozidla (a k ziskane hodnote pripocist nejakou toleranci). Zaroven je treba taky pocitat s tim, ze nektere cheaty ti pridaji pouze zrychleni, ale maximalni rychlost nijak neprekroci, takze to chce nejak sesbirat i data pro zrychleni vozidel. Stejne to pouzivam i ja a funguje to bezproblemove.

Link to comment
Share on other sites

  • 0

Ten speedhack se da v pohode detekovat pomoci te funkce GetVehicleVelocity, i kdyz hrac jede "uhlopricne" (coz tu nekdo vyvracel), protoze je samozrejme jednoduche si pomoci pythagorovy vety vypocitat delku prepony dvou na sebe kolmych vektoru a tim pak ziskas delku slozeneho vektoru, coz je hodnota rychlosti hrace/vozidla. Pak uz nezbyva nic jineho, nez nejakym zpusobem zjistit maximalni rychlost pro kazdy typ vozidla (a k ziskane hodnote pripocist nejakou toleranci). Zaroven je treba taky pocitat s tim, ze nektere cheaty ti pridaji pouze zrychleni, ale maximalni rychlost nijak neprekroci, takze to chce nejak sesbirat i data pro zrychleni vozidel. Stejne to pouzivam i ja a funguje to bezproblemove.

me jde hlavne o to zrychleni - topspeed udela kdokoliv - jaky je ale maximalni zrychleni nejrychlejsiho vozidla? a jak ho detekuju?

Link to comment
Share on other sites

  • 0

To zalezi na momentalni rychlosti. Pokud si vypocitas velikost toho slozeneho vektoru z hodnot v GetPlayerVelocity, tak napr. u Infernusu je do rychlosti 0,75 maximalni zrychleni za sekundu 0,6, nad rychlost 0,75 uz lze zrychlit maximalne o 0,275 za sekundu.

Link to comment
Share on other sites

  • 0

Ja teda mnel zato ze se tu snazime vyresit ty "ultra hackery", kteri umeji ten ALT pouzivat opatrne a je tezke je odhalit.

Myslim ze stanovit si maximalni rychlosti vozidel neni zadny problem, problem bych mozna videl tom kdyz vozidlo jede z kopce, coz jde vyresit, ovsem porad to neresi problem s tim kdyz cheater ten speedhack umi citlive ovladat.

PS: s tou uhloprickou to byl komentar k jeho ukazovanemu kodu.

Link to comment
Share on other sites

  • 0

Hladam uz dlho neaky poriadny kod na anti speed .. lenze sa mi to zatial nepodarilo mozno si to treba spravit po svojom ja neviem

a mozno treba obcas vyuzit neake malickosti

My nechceme uz hotovy antispeed my tady resime na jakem principu ho zalozit ,aby fungoval co nejlepe.

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

My nechceme uz hotovy antispeed my tady resime na jakem principu ho zalozit ,aby fungoval co nejlepe.

presne ale vypada to ze se speedhackem budu mit obrovske problemy - hodilo by se mi ty kody protoze jak je velocity rozdeleno do 3 floatu tak je to komplikovana az moc! :d

Link to comment
Share on other sites

  • 0

Tak nesmis davat hraci ban, ale kick, aby se predeslo neopravnenemu trestu.

 

A pro vypocet slozeneho vektoru je lepsi misto kodu, ktery zde napsal ATomas, pouzit toto:

 

floatsqroot(x*x + y*y + z*z);

 

Jelikoz operace nasobeni se provadi znatelne rychleji nez umocnovani.

Link to comment
Share on other sites

  • 0

Tak nesmis davat hraci ban, ale kick, aby se predeslo neopravnenemu trestu.

 

A pro vypocet slozeneho vektoru je lepsi misto kodu, ktery zde napsal ATomas, pouzit toto:

 

 

 

Jelikoz operace nasobeni se provadi znatelne rychleji nez umocnovani.

Vidis, mne ani nenapadlo porovnavat ktera varianta je rychlejsi :)

Link to comment
Share on other sites

  • 0

Nejlepší způsob, který existuje, je ten co zmínil niCe... Já ho používám už půl roku. Má své mouchy například (zatím o jiném nevím) u Infernusu, kde se velocity zvedá i potom. Ale není to 100% způsob. Spolehlivější je informovat adminy. A kontrolovat to v OnPlayerUpdate. Sekundový časovač je k ničemu. Příklad: Přijdu na server k někomu. Zmáčku v autě velmi krátce (defaultní) klávesu R (funkce sobeitu, prudké zrychlení a naražení do překážky). Vem si že přede mnou bude hráč, kterého ten náraz odhodí. Dostane větší zrychlení než by měl. => Dostane kick.

 

Dostane ho neoprávněně a už může být naštvaný. Takže: OnPlayerUpdate a kontrola zrychlení (jen jestli nepřekročil maximálku - ono to stačí i na L. ALT) a při větším zrychlení okamžitý kick (zabrání se tím poškození auta jiného hráče). Ovšem je to na úkor zátěže.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...