// -------------------------------------------------------------------------- //// File: antiraksamp.pwn// Desc: A sscript célja a RakSAMP botok kirugása// Author: Anthony// Lic: GNU Public License (http://www.gnu.org)// -------------------------------------------------------------------------- ////SA:MP függvénykönyvtár beágyazása#include <a_samp>//Forward a timerünknekforward BotCheck(playerid);//Változó a timer id-neknew timer;// -------------------------------------------------------------------------- //public OnFilterScriptInit(){//Timer elindítása, azonosítójának eltárolása a \'timer\' változóban timer = SetTimer(\"BotCheck\", 1000, true);//Tájékozatjuk a szerver tulajt, hogy a script betöltõdött, elindultprintf(\"-------------------------------------\");printf(\"| Anti-RakSAMP by Anthony - Loaded! |\"); printf(\"-------------------------------------\");return 1;}// -------------------------------------------------------------------------- //public OnFilterScriptExit(){//Timer megsemmisítéseKillTimer(timer);//Tájékoztatjuk a szerver tulajt, hogy a script leálltprintf(\"---------------------------------------\");printf(\"| Anti-RakSAMP by Anthony - Unloaded! |\"); printf(\"---------------------------------------\");return 1;}// -------------------------------------------------------------------------- //public OnPlayerConnect(playerid){//Csatlakozáskor 0-ra állítjuk a PVar-tSetPVarInt(playerid, \"Spawned\", 0);return 1;}// -------------------------------------------------------------------------- //public OnPlayerDisconnect(playerid){//Lecsatlakozáskor töröljük a PVar-tDeletePVar(playerid, \"Spawned\");return 1;}// -------------------------------------------------------------------------- //public OnPlayerSpawn(playerid){//Beállítjuk a PVar-tSetPVarInt(playerid, \"Spawned\", 1);return 1;}// -------------------------------------------------------------------------- ////Timerünk fõ részepublic BotCheck(){new pname[MAX_PLAYER_NAME];//For ciklussal végigmegyünk minden lehetséges játékos ID-nfor(new i=0; i < MAX_PLAYERS; i++){ //Ellenõrizzük, hogy van-e ilyen játékosif(IsPlayerConnected(i)){ //Lekérjük a játékos nevét GetPlayerName(i, pname, MAX_PLAYER_NAME); //A STATE csak akkor nem PLAYER_STATE_NONE, ha már lespawnolt a játékos, //tehát ellenõrizzük, hogy tényleg spawnolt-e if(GetPlayerState(i) != PLAYER_STATE_NONE && GetPVarInt(i, \"Spawned\") == 0) { //Ha ide jutottunk, akkor már 100% hogy bottal van dolgunk, mert //nem hívódott meg rá az OnPlayerSpawn callback, ezért hát kickeljük Kick(i); //Tájékoztatjuk a tulajt, hogy a játékos egy bot volt printf(\"%s egy BOT... volt.(State)\", pname); //A ciklust a következõ játékos id-re \"ugrasztjuk\" continue; } //A STATE csak akkor nem PLAYER_STATE_NONE, ha már lespawnolt a játékos, //ellenõrizzük a CameraMode-t if(GetPlayerState(i) != PLAYER_STATE_NONE && GetPlayerCameraMode(i) > 100) { //Ha ide jutottunk, 99,9% a valószínûsége, hogy bottal van dolgunk //ezért hát kickeljük Kick(i); //Tájékoztatjuk a tulajt, hogy a játékos egy bot volt printf(\"%s egy BOT... volt.(CameraMode)\", pname); //A ciklust a következõ játékos id-re \"ugrasztjuk\" continue; } //Létrehozunk 3 float változót new Float:x, Float:y, Float:z; //Lekérjük a kamera pozíciót GetPlayerCameraPos(i, x, y, z); //A STATE csak akkor nem PLAYER_STATE_NONE, ha már lespawnolt a játékos, //ellenõrizzük a kamera pozíciót if(GetPlayerState(i) != PLAYER_STATE_NONE && x == 0.0 && y == 0.0 && z == 0.0) { //Ha ide jutottunk, 100% a valószínûsége, hogy bottal van dolgunk, //mert egy játékosnak sosem lesz 0,0,0 a kamera pozícója (kivéve // ha mi magunk helyeztük oda), ezért hát kickeljük Kick(i); //Tájékoztatjuk a tulajt, hogy a játékos egy bot volt printf(\"%s egy BOT... volt.(CameraPos)\", pname); //A ciklust a következõ játékos id-re \"ugrasztjuk\" continue; } //Lekérjük a kamera vektorokat GetPlayerCameraFrontVector(i, x, y, z); if(GetPlayerState(i) != PLAYER_STATE_NONE && (x > 1000.0 || y > 1000.0 || z > 1000.0)) { //Ha ide jutottunk, 100% a valószínûsége, hogy bottal van dolgunk, //mert egy játékosnak sosem kapunk 1000-nél nagyobb FrontVector //értéket, ezért hát kickeljük Kick(i); //Tájékoztatjuk a tulajt, hogy a játékos egy bot volt printf(\"%s egy BOT... volt.(CameraFrontVector)\", pname); //A ciklust a következõ játékos id-re \"ugrasztjuk\" continue; }}}}// -------------------------------------------------------------------------- //
#define TILTOTT_SERIAL \"DA0E5085558CCACC88ECCA40C4CEC49A9408EEE8\"native gpci(playerid, const serial[ ], maxlen); public OnPlayerConnect(playerid){newgpciserial[128];gpci(playerid, gpciserial, sizeof(gpciserial));if(!strcmp(gpciserial, TILTOTT_SERIAL)){SetSpawnInfo(playerid, 0, 1, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0);SpawnPlayer(playerid);GameTextForPlayer(playerid, \"Jajj de kedves vagy, amiert botokat kuldesz fel! :3\", 1000, 3);BanEx(playerid, \"BOT HASZNÁLAT\");}return true;}
Szerintem ez egyszerûbb: #define TILTOTT_SERIAL \"DA0E5085558CCACC88ECCA40C4CEC49A9408EEE8\"native gpci(playerid, const serial[ ], maxlen); public OnPlayerConnect(playerid){newgpciserial[128];gpci(playerid, gpciserial, sizeof(gpciserial));if(!strcmp(gpciserial, TILTOTT_SERIAL)){SetSpawnInfo(playerid, 0, 1, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0, 0);SpawnPlayer(playerid);GameTextForPlayer(playerid, \"Jajj de kedves vagy, amiert botokat kuldesz fel! :3\", 1000, 3);BanEx(playerid, \"BOT HASZNÁLAT\");}return true;} Magyarázat: mivel a bot, nem a hagyományos GTASA.exe-t használja, ezért a serialja más (tehát ha crackelt, ha eredeti, más a serialja).
Egyébként Anthony verziója véleményem szerint nagyobb szervereken meglehetõsen nagy laggot okozhat a rengeteg pozíció lekéréssel, végigfutva az összes playeren minden másodpercben... [/quote]Lényegében azok csak példák. Külön-külön is mûködnek(kivéve a camera pos, ahhoz el kell telnie kb. 3 mp-nek, mert elsõre nem 0.00 az Y értéke, hanem valami lehetetlen karakter).Am az én szerveremen pl. OnPlayerUpdate-nél van egy rakat pozíció lekérdezés, távolság lekérdezés, megtett táv lekérdezése, szal ennél sokkal durvább és semmi lagg
[16:34:36] ----------------------------------[16:34:36] Running LVDM ~MoneyGrub[16:34:36] Coded By[16:34:36] Jax[16:34:36] ----------------------------------[16:34:36] Number of vehicle models: 48[16:34:54] Incoming connection: 127.0.0.1:62547[16:34:54] [join] Bot1 has joined the server (0:127.0.0.1)[16:34:54] GPCI: 88085CD058C59C9CDD8E9DE50C0CCF9EE49A8C4D[16:34:57] [part] Bot1 has left the server (0:1)[16:35:00] Incoming connection: 127.0.0.1:61194[16:35:00] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:00] GPCI: FF9FE5CE0C5CC940D5FA0CE9A98FCE4489C95DD8[16:35:03] [part] Bot1 has left the server (0:1)[16:35:06] Incoming connection: 127.0.0.1:61195[16:35:06] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:06] GPCI: FCCA55EDD995994C8D4454D0EFFE8CC804DFCDD9[16:35:08] [part] Bot1 has left the server (0:1)[16:35:10] Incoming connection: 127.0.0.1:61196[16:35:10] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:10] GPCI: AEE9CC04D04848E4845E9DCEAC4E5EF94D4C8099[16:35:13] [part] Bot1 has left the server (0:1)[16:35:21] Incoming connection: 127.0.0.1:61197[16:35:21] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:21] GPCI: AD9E4E9E5584E4C4E99C8DD9988E4C488CDAAC4[16:35:25] [part] Bot1 has left the server (0:1)[16:35:26] Incoming connection: 127.0.0.1:61198[16:35:26] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:26] GPCI: C4CCE9D9094F5A4C8CA45949DF994EAFEFCCEC94[16:35:30] [part] Bot1 has left the server (0:1)[16:35:32] Incoming connection: 127.0.0.1:61199[16:35:32] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:32] GPCI: ECA9DE994D485A0FD4FDF899C8EC48AC9AC44D5D[16:35:35] [part] Bot1 has left the server (0:1)[16:35:37] Incoming connection: 127.0.0.1:61200[16:35:37] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:37] GPCI: A899EE5FECEE8A5F95C40CCC9458F0CEE50449CD[16:35:40] [part] Bot1 has left the server (0:1)[16:35:42] Incoming connection: 127.0.0.1:61201[16:35:42] [join] Bot1 has joined the server (0:127.0.0.1)[16:35:42] GPCI: D9A9C9CA04A94AEFA85E9FC08D5DA90EFEDFDE8D[16:35:45] [part] Bot1 has left the server (0:1)