Szasztok!
Múlthéten aa haverom adott egy ihletet a RakSAMP-os botokkal kapcsolatban. Az õ ötlete az volt, hogy mivan ha a szerverre felküldött botnak nem 0.3e a GetPlayerVersion visszatérése, hanem valami más. Én ekkor elkezdtem gondolkodni ezen, ls eszembe jutott a gpci, ami lekéri a kliens id-jét a játékosnak.
Össze dobtam ezt a kódot, majd felküldtem pár botot a szerverre. A verzió 0.3e volt, a kliens ID-je viszont teljesen egyedi. Aztán felmentem lnis, de nekem különbözött az övéktõl.
public OnPlayerConnect(playerid)
{
new str[200];
GetPlayerVersion(playerid,str,sizeof(str));
printf(\"Version: %s\",str);
gpci(playerid,str,sizeof(str));
printf(\"Client ID: %s\",str);
return 1;
}
Végül az anti raksamp kód:
#define DISALLOWED_ADDRESS \"DA0E5085558CCACC88ECCA40C4CEC49A9408EEE8\"
native gpci(playerid,const serial[],maxlen);
public OnPlayerConnect(playerid)
{
new str[100];
gpci(playerid,str,sizeof(str));
if(!strcmp(str,DISALLOWED_ADDRESS,true))BanEx(playerid,\"RakSAMP\");
return 1;
}