Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: malipablo poslato Oktobar 28, 2019, 20:21:39 POSLE PODNE

Naslov: pokusavam da napravim ovo a nece
Poruka od: malipablo poslato Oktobar 28, 2019, 20:21:39 POSLE PODNE
Problem(error/warning): napravio sam anticit za pancire i nece da postavi nego kik sa servera jer ne ucita anticit a  treba da da pancir
Dio skripte: [pawn]public OnPlayerSpawn (  playerid  )
{
new potrebnavelicina=random(100); //uzimanje memorije potrebne velicine da moze da radi poruka
if(  IsPlayerConnected(  playerid  )   )
{
if(  UlogovanProvera[  playerid  ]  ==  true   )
{
new Float: anticheatarmor; //ukljucivanje anticita
new porukaodanticit[800+potrebnavelicina];
if(  GetPlayerArmour(  playerid, anticheatarmor   )  ==  0  &&  IsPlayerAdmin(  playerid  )  ==  0  )  //proveruje za anticit ako ima
{
Kick(   playerid   );
format(   porukaodanticit,   sizeof(porukaodanticit),   "HAKER SI kikovan si jer: koristite cit za armour citovanje."   );
}
else SetPlayerArmour(   playerid,  100   );
}
}
return ((true)); //dvostruka zastita za podatke
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ][ /code ]
Slika/video ingame problema(obavezno ako je ingame problem):

mislim da je kod dobar ali nesto zeza pawno ili samp mozda bi trebao da pokusam da ukucam callremotefunction to je jednom radilo na samp foorumu
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: Slade poslato Oktobar 28, 2019, 20:38:55 POSLE PODNE
Šta si ti tu druže zapravo napravio, jer ti kod prvenstveno nema nimalo smisla.

Prvo, za razliku od healtha koji se stavlja sam od sebe, armor ne. Gdje god stavljaš sa strane skripte igraču armor, postavi ga na 99.
I onda provjeravaj, ukoliko je Armor igrača 100, znači da je postavio sam sebi Armor.

Također, nije uopšte teško urediti čit i napraviti da igrač sam sebi postavi armor tipa 98, i samim time će bypassovati tvoj antičit, onda ćeš morati uraditi preko varijable što nije teško.

Također, ta poruka za antičit, čemu tolika veličina stringa.
Provjeravaj dužinu teksta ovdje: http://string-functions.com/length.aspx
Provjeravaj zajedno sa bojom, npr {FF0000}Banovan si., i onda ćeš znati koliko ti string otprilike mora biti veliki.

800 je previše.
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: malipablo poslato Oktobar 28, 2019, 20:40:59 POSLE PODNE
a da li bi mogao preko calllocalfunction da pozovem ili da povezem sa bazom podataka da moze da proveri ako mu je anticit ukljucen

ja sam to misleo ovako:
if( playerid - GetPlayerArmour(  playerid,  anticheatarmour  ) & 3  ) return Kick(  playerid  )
celo jutro u skoli sam razmisljao ali mislim da ovo oduzima dobro i ucitava anti cit iz biblioteke
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: Slade poslato Oktobar 28, 2019, 21:10:19 POSLE PODNE
sad sam ovo pisao, nabrzinu i bez testiranja, ako ima problema urediš i to je to.

[pawn]// definicija
new playerArmour[ MAX_PLAYERS ];

// funkcija
forward AntiCheatArmour(playerid, armour);
public AntiCheatArmour(playerid, armour)
{
    playerArmour[playerid] = armour;
   return SetPlayerArmour(playerid, armour);
}

// korištenje u skripti:
CMD:armour(playerid, params[])
{
   #pragma unused params
   AntiCheatArmour(playerid, 100.0);
   return true;
}

// korištenje u filterskripti
CMD:armour(playerid, params[])
{
   #pragma unused params
   CallRemoteFunction("AntiCheatArmour", "ii", playerid, armour);
   return true;
}

// resetiranje, dosta važno! OnPlayerConnect, OnPlayerDeath, OnPlayerSpawn
playerArmour[playerid] = 0;

// detekcija (u timer od 1 sek ili tako neš)
new Float:armour;
GetPlayerArmour(playerid, armour);
if(armour > playerArmour[playerid]) return SCM(playerid, -1, "Izbacen si zbog koristenja Armour Cheatova."), Kick(playerid);[/pawn]

U suštini, ono što jedino ne provjerava jeste pad armora (osim gore navedenog kada igrač umre i slično).
Sam server nikada neće staviti armor na 100 (kao health), a igrač može čitom, i zbog toga je lako napraviti detekciju, čim je igračev armor veći od najviše postavljenog, ima čit. Testiraj opet.
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: malipablo poslato Oktobar 28, 2019, 21:32:00 POSLE PODNE
a ja radim na strcmp komandiranju nece ovo cmd staro je
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: Slade poslato Oktobar 29, 2019, 00:17:31 PRE PODNE
Način koji koristiš je najstariji, koristi pawn.cmd ili zcmd
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: BitchLasagnazz poslato Oktobar 29, 2019, 00:38:41 PRE PODNE
[pawn]sizeof(porukaodanticit),   "HAKER SI kikovan si jer: koristite cit za armour citovanje."   );[/pawn]

:'(
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: malipablo poslato Oktobar 29, 2019, 15:48:56 POSLE PODNE
ali zcmd je star i pavcmd star mozda ycommand ali strcmp oduvek postoji on mi je najbolji aj mi prevedi na strcmp moze tako
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: Muma poslato Oktobar 29, 2019, 16:57:06 POSLE PODNE
new porukaodanticit[800+potrebnavelicina];

(http://giphygifs.s3.amazonaws.com/media/eoxomXXVL2S0E/giphy.gif)
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: malipablo poslato Oktobar 30, 2019, 19:44:13 POSLE PODNE
ee ljudi popravio sam potrebnavelicina je bila mala pa sam promenio da radi jako optimizovano
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: PauLJ poslato Oktobar 30, 2019, 20:53:58 POSLE PODNE
return ((true)); //dvostruka zastita za podatke
really
Naslov: Odg: pokusavam da napravim ovo a nece
Poruka od: Bašovski poslato Oktobar 30, 2019, 21:12:44 POSLE PODNE
Prvo nauci osnove pa trazi pomoc. Kakve gluposti necu procitati ovdje...