Advertisement
Maki187

Untitled

Apr 16th, 2012
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 41.52 KB | None | 0 0
  1. /* =======================[PROCITAJ ME | PROCITAJ INSTALIRANJE.TXT]=============================
  2. --------------[24.12.2011]--------------
  3. Credits:
  4. Maki187 (Marko_Dimitrijevic) - Izrada AntiCheat-a
  5. Gamestar - Antiswear | Gagi(Mr.Gagi) - Pomoc oko foreach, Anti Health Hack (po uzoru na Anti Health Hack uradjen je Anti Armour Hack), velika pomoc oko provere animacije
  6. Balkan Rising RolePlay - Testiranje AntiCheat-a | www.balkan-rising.info
  7. PRE SVEGA ZAMOLIO BI KORISNIKA OVE SKRIPTE, DA NEBRISE CREDITSE I PORUKU PRI LOGIN-U, OVO MI JE UJENDO I PRVA FS :)
  8. NA MESTIMA GDE PISE //PROMENI ME PO POTREBI, TREBA DA  PRILAGODITE ANTICHEAT SVOM SERVERU
  9. OBAVEZNO PROCITAJTE INSTALACIJA.TXT
  10. ===================[v0.1]==[24.12.2011]===================
  11. Uradjen AntiCheat protiv: Speed Hack, Previsok Ping, Jet Pack, Zabranjena Oruzija
  12. ===================[v0.2]==[24.12.2011 && 25.12.2011]=====
  13. Uradjen AntiCheat protiv: Drive By, Anti Swear(Psovke), Anti BH, RCON Zastita, Anti AirBreake (beta test)
  14. Skripta optimizirana, uklonjen tajmer za svakog igraca, sve provere stavljene pod 1 tajmer!!
  15. Od sada mozete da ukljucite/iskljucite odredjene provere u AntiCheat-u  pomocu komande /anticheat
  16. ===================[v0.3]==[26.12.2011 && 29.12.2011-19:15]====
  17. Omoguce izbegavanje admina na serveru, odnosno kucajuci /adminduty (ili zeljenu komandu) anticheat ce ignorisati admina ako napravi prekrsaj.
  18. Od sada postoji kick log, odnosno kad igrac bude kikovan zbog neceg, razlog, datum i vreme ce se upisati u log.
  19. Uradjen BETA AntiCheat protiv: Nesiguran Novac (Money Hack)
  20. Poboljsani ili popravljeni AntiCheat-ovi: Anti Airbrake[poboljsan], Anti BH (Bunny Hop)[popravljen i poboljsan]
  21. Optimizirana Skripta! | Srecna Nova Godina, 2012!!! :)
  22. ===================[v0.4]==[31.12.2011 && 2.1.2012]======
  23. UNAPREDJENO I FIXANO: Anti Money Cheat, AirBrake, fixano par malih bagova oko log fajlova (nije pri svakom kicku upisivano ime igraca)
  24. NOVO: Uradjen Anti Health Hack, za ovo zasluge idu Gagiju ([BD]Gagi |Mr.Gagi), po uzoru na njegov Anti Health uradjen je i Anti Armour Hack
  25. Kikovanom igracu se izbaci dijalog sa porukom da je kikovan/banovan, imenom, razlogom, ip adresom i dodatnoj poruci...
  26. ===================[v0.5]==[4.1.2012 && 8.1.2012]========
  27. Skripta je dodatno optimizirana. | Od sad se i reset novca odvija preko AC-a(Anti Money Cheat) | Ispravljene sitne greske u skripti
  28. Novo: Anti Teleport[INT] - teleportovanje u int, Anti Fly Hack - ukoliko igrac koristi fly hack, dobija kick, ovu proveru nema cak ni JB
  29. Od sada stockove nedodajete u mod, vec postoji include fajl! | Imena oruzija pri kicku se vise neupisuju rucno, vec ih sad skripta upisuje...
  30. ===================[v0.6]==[13.2.2012]========
  31. Skripta dodatno optimizirana. | Fixan Anti Money Cheat, Fixan Anti Teleport[INT],Fixan i Unapredjen Anti Health Hack, Fixan i Unapredjen Anti Armour Hack
  32. Posto su Anti Teleport, Health i Armour hack fixani, vise igraci nece dobijati kick bez razloga + je mnogo poboljsano ocitavanje health/armour hack-a
  33. Anti Air Brake nije radio uopste u prethodnim verzijama, sad je donekle Fixan Anti Air Brake, moja preporuka vam je da ga iskljucite... :(
  34. */
  35. #define FILTERSCRIPT
  36.  
  37. #include <a_samp>
  38. #include <float>
  39. #include <zcmd>
  40. #include <foreach>
  41. #include <AC_Balkan_Security>
  42.  
  43. #define ZUTA 0xDABB3EAA
  44. #define BELA 0xFFFFFFAA
  45. #define CRVENA 0xFF0000FF
  46. #define MAX_LEN 32
  47. #define MAX_ENTRY 120
  48. #define forum "www.balkan-rising.info"//ovde upisi adresu svog foruma
  49. #error PROCITAJ INSTALIRANJE.TXT
  50.  
  51.  
  52. static reci[MAX_ENTRY][MAX_LEN];
  53.  
  54. new ime[MAX_PLAYER_NAME]; // igracevo ime
  55. new Zastita[MAX_PLAYERS]; // stvara zastitu igracu, kako nebi dobio kick bez razloga
  56. new Skakuce[MAX_PLAYERS]; // koiko puta je uradio "bh"
  57. new Pokusaji[MAX_PLAYERS];// koliko je igrac puta pokusao da upadne u rcon
  58. new Novac1[MAX_PLAYERS]; // novac koj igrac poseduje, ako ima vise novca od onog koj je ovde zapisan, kick
  59. new OpomenaNovca[MAX_PLAYERS]; // skupi 5 opomena, dobija kick
  60. new FlyOpomena[MAX_PLAYERS];// stavljeno da bi skratilo skriptu kad dodje na 1, kick
  61. new Spawnovan[MAX_PLAYERS]; // pomaze pri zastiti igraca
  62. new VP = 1; // menja se ingame preko komande /anticheat - previsok ping
  63. new PJP = 1; // menja se ingame preko komande /anticheat - protiv jetpack
  64. new PB = 1; // menja se ingame preko komande /anticheat - provera brzine
  65. new ZO = 1; // menja se ingame preko komande /anticheat - zabranjena oruzija
  66. new RCONZ = 1; // menja se ingame preko komande /anticheat - rcon zastita
  67. new ZR = 1; // menja se ingame preko komande /anticheat - zabranjene reci
  68. new DBP = 1; // menja se ingame preko komande /anticheat - DB provera
  69. new BHP = 1; // menja se ingame preko komande /anticheat - BH provera
  70. new MPing = 700; //promeni po potrebi
  71. new Float:MBrzina = 235.0; //promeni po potrebi
  72. new PAB = 1; // menja se ingame preko komande /anticheat - protiv airbrake
  73. new NN = 1; // menja se ingame preko komande /anticheat - nesiguran novac
  74. new NH = 1; // menja se ingame preko komande /anticheat - nesigurni helti
  75. new NA = 1; // menja se ingame preko komande /anticheat - nesigurni armor
  76. new NT = 1; // menja se ingame preko komande /anticheat - nesiguran teleport
  77. new FP = 1; // menja se ingame preko komande /anticheat - fly provera
  78. new y, m, d;
  79. new h,mi,s;
  80. new ipadresa[400]; // za igracev IP
  81. new string2[400];
  82.  
  83. forward AntiCheat();
  84. forward split(const strsrc[], strdest[][], delimiter);
  85. forward log(string[]);
  86. forward kick(playerid);
  87. forward nanula(playerid);
  88.  
  89. public OnFilterScriptInit()
  90. {
  91.     SetTimer("AntiCheat", 1000, 1); // OVO NESMETE DA POVECAVATE/SMANJUJETE, JER NECE RADITI VECI DEO AC-A(anti health, armour, money, teleport[int])
  92.     UcitajAC();
  93.     if(fexist("AC-BS/reci.txt"))
  94.     {
  95.         new File:myFile,
  96.             line[MAX_LEN],
  97.             index=0;
  98.  
  99.         myFile=fopen("AC-BS/reci.txt",filemode:io_read);
  100.  
  101.         while(fread(myFile,line,sizeof line) && (index != MAX_ENTRY))
  102.         {
  103.             if(strlen(line)>MAX_LEN) continue;
  104.             StripNewLine(line);
  105.             strmid(reci[index],line,0,strlen(line),sizeof line);
  106.             index++;
  107.         }
  108.     }
  109.     print("\n--------------------------------------");
  110.     print(" AntiCheat by: Maki187 (Marko_Dimitrijevic)");
  111.     print(" AntiCheat v0.6");
  112.     print(" Balkan Rising - www.balkan-rising.info");
  113.     print(" -------------[REKLAMA]------------");
  114.     print(" Bestbalkandj.com - www.bestbalkandj.com");
  115.     print(" Serbian Warez - www.serbian-warez.in.rs");
  116.     print("--------------------------------------\n");
  117.     return 1;
  118. }
  119. public OnPlayerConnect(playerid)
  120. {
  121.     ACCREDITS
  122.     Zastita[playerid] = 1;
  123.     OpomenaNovca[playerid] = 0;
  124.     SetPVarInt(playerid, "SiguranTeleport", 1);
  125.     return 1;
  126. }
  127. public split(const strsrc[], strdest[][], delimiter)
  128. {
  129.     new i, li;
  130.     new aNum;
  131.     new len;
  132.     while(i <= strlen(strsrc)){
  133.         if(strsrc[i]==delimiter || i==strlen(strsrc)){
  134.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  135.             strdest[aNum][len] = 0;
  136.             li = i+1;
  137.             aNum++;
  138.         }
  139.         i++;
  140.     }
  141.     return 1;
  142. }
  143. stock GetPlayerSpeed(playerid,bool:kmh) // by misco
  144. {
  145.     new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
  146.     if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
  147.     rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
  148.     return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
  149. }
  150. //-------------------[DRIVE BY PROVERA]------------------
  151. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  152. {
  153. new string[128];
  154. GetPlayerIp(playerid, ipadresa, sizeof(ipadresa));
  155. if(DBP == 1)
  156. {
  157. if(GetPVarInt(playerid, "Izbegavanje") == 0)
  158. {
  159. if((newkeys & KEY_FIRE && newkeys & KEY_LOOK_RIGHT) || (newkeys & KEY_FIRE && newkeys & KEY_LOOK_LEFT))
  160.     {
  161.         if(IsPlayerInAnyVehicle(playerid))
  162.         {
  163.           if(GetPlayerWeapon(playerid) >= 1)
  164.             {
  165.                 GetPlayerName(playerid, ime, sizeof(ime));
  166.                 format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog ubistva iz vozila (DB-Drive By)", ime);
  167.                 SendClientMessageToAll(CRVENA, string);
  168.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Drive By\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  169.                 ShowPlayerDialog(playerid, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", " ");
  170.                 getdate(y,m,d);
  171.                 gettime(h,mi,s);
  172.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog DriveBy",d,m,y,h,mi,s,ime);
  173.                 log(string);
  174.                 SetTimerEx("kick",10, false, "i", playerid);
  175.             }
  176.         }
  177.     }
  178.     }
  179.     }
  180. if(BHP == 1)
  181. {
  182. if(GetPVarInt(playerid, "Izbegavanje") == 0)
  183. {
  184. if((newkeys & KEY_UP && newkeys & KEY_JUMP) || (newkeys & KEY_UP && newkeys & KEY_SPRINT && newkeys & KEY_JUMP))
  185.     {
  186.             if(!IsPlayerInAnyVehicle(playerid))
  187.             {
  188.                     Skakuce[playerid] ++;
  189.                     if(Skakuce[playerid] == 30)
  190.                     {
  191.                         SendClientMessage(playerid,ZUTA, "[AC-Balkan Security]: Prva opomena za BH, posle 4 opomene sledi kick!");
  192.                     }
  193.                     else if(Skakuce[playerid] == 45)
  194.                     {
  195.                         SendClientMessage(playerid,ZUTA, "[AC-Balkan Security]: Druga opomena za BH, posle 4 opomene sledi kick!");
  196.                     }
  197.                     else if(Skakuce[playerid] == 65)
  198.                     {
  199.                         SendClientMessage(playerid,ZUTA, "[AC-Balkan Security]: Treca opomena za BH, posle 4 opomene sledi kick!");
  200.                     }
  201.                     else if(Skakuce[playerid] == 80)
  202.                     {
  203.                         SendClientMessage(playerid,ZUTA, "[AC-Balkan Security]: Cetvrta opomena za BH, posle 4 opomene sledi kick!");
  204.                         SetTimerEx("nanula",180000, false, "i", playerid);
  205.                     }
  206.                     else if(Skakuce[playerid] == 100)
  207.                     {
  208.                         GetPlayerName(playerid, ime, sizeof(ime));
  209.                         GetPlayerIp(playerid, ipadresa, sizeof(ipadresa));
  210.                         format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog 4/4 BH (Bunny Hop)opomene.", ime);
  211.                         SendClientMessageToAll(CRVENA, string);
  212.                         SendClientMessage(playerid,ZUTA, "[AC-Balkan Security]: Kikovan si zbog 4/4 BH (Bunny Hop)opomene.");
  213.                         format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} 4/4 BH Opomene\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  214.                         ShowPlayerDialog(playerid, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "Ok");
  215.                         getdate(y,m,d);
  216.                         gettime(h,mi,s);
  217.                         format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Bunny Hop",d,m,y,h,mi,s,ime);
  218.                         log(string);
  219.                         SetTimerEx("kick",10, false, "i", playerid);
  220.                     }
  221.             }
  222.     }
  223. }
  224. }
  225. return 1;
  226. }
  227. public OnPlayerDeath(playerid, killerid, reason)
  228. {
  229. new string[128];
  230. if(DBP == 1)
  231. {
  232. if(GetPVarInt(playerid, "Izbegavanje") == 0)
  233. {
  234. if(IsPlayerInAnyVehicle(killerid))
  235.     {
  236.     if(GetVehicleModel(GetPlayerVehicleID(killerid)) != 425 || GetVehicleModel(GetPlayerVehicleID(killerid)) != 520 || GetVehicleModel(GetPlayerVehicleID(killerid)) != 432)
  237.     {
  238.         GetPlayerName(playerid, ime, sizeof(ime));
  239.         GetPlayerIp(playerid, ipadresa, sizeof(ipadresa));
  240.         format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog ubistva iz vozila (DB-Drive By)", ime);
  241.         SendClientMessageToAll(CRVENA, string);
  242.         format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Drive By\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  243.         ShowPlayerDialog(playerid, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "Ok");
  244.         getdate(y,m,d);
  245.         gettime(h,mi,s);
  246.         format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog DriveBy",d,m,y,h,mi,s,ime);
  247.         log(string);
  248.         SetTimerEx("kick",10, false, "i", playerid);
  249.     }
  250.     }
  251. }
  252. }
  253. return 1;
  254. }
  255. //------------------------------[RCON ZASTITA]-------------------
  256. public OnRconLoginAttempt(ip[], password[], success)
  257. {
  258.     if(RCONZ == 1)
  259.     {
  260.     if(!success)
  261.     {
  262.         new p2[16];
  263.         new string[176];
  264.         foreach(Player, i)
  265.         {
  266.         if(GetPVarInt(i, "Izbegavanje") == 0)
  267.         {
  268.             GetPlayerIp(i, p2, sizeof(p2));
  269.             if(!strcmp(ip, p2, true))
  270.             {
  271.                 GetPlayerName(i, ime, sizeof(ime));
  272.                 if(Pokusaji[i] != 3)
  273.                 {
  274.                         Pokusaji[i] ++;
  275.                         SendClientMessage(i,CRVENA, "[AC-Balkan Security]: Pogresio si sifru, imas pravo na 3 pokusaja, ako pogresis sva 3 puta, dobijas ban!");
  276.                 }
  277.                     else
  278.                     {
  279.                         GetPlayerName(i, ime, sizeof(ime));
  280.                         GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  281.                         format(string, sizeof(string), "[AC-Balkan Security]: %s je banovan zbog pokusaja upada u RCON", ime);
  282.                         SendClientMessageToAll(CRVENA, string);
  283.                         format(string2, sizeof(string2),"{CD0000}Banovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} 3/3 RCON Opomene\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom banovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  284.                         ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  285.                         getdate(y,m,d);
  286.                         gettime(h,mi,s);
  287.                         format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je banovao %s zbog pokusaja upada u RCON",d,m,y,h,mi,s,ime);
  288.                         log(string);
  289.                         Ban(i);
  290.                     }
  291.                 }
  292.             }
  293.         }
  294.         }
  295.     }
  296.     return 1;
  297. }
  298. public OnPlayerSpawn(playerid)
  299. {
  300.     Spawnovan[playerid] = 1;
  301.     Skakuce[playerid] = 0;
  302.     Novac1[playerid] = GetPlayerMoney(playerid);
  303.     OpomenaNovca[playerid] = 0;
  304.     SetPVarInt(playerid, "SiguranTeleport", 1);
  305.     SetPVarInt(playerid, "SiguranInt", GetPlayerInterior(playerid));
  306.     SetPVarInt(playerid, "SiguranVW", GetPlayerVirtualWorld(playerid));
  307.     ACCREDITS
  308.     return 1;
  309. }
  310.  
  311. stock SetPlayerSpawn(playerid)
  312. {
  313.     Skakuce[playerid] = 0;
  314.     OpomenaNovca[playerid] = 0;
  315.     Novac1[playerid] = GetPlayerMoney(playerid);
  316.     SetPVarInt(playerid, "SiguranTeleport", 1);
  317.     SetPVarInt(playerid, "SiguranInt", GetPlayerInterior(playerid));
  318.     SetPVarInt(playerid, "SiguranVW", GetPlayerVirtualWorld(playerid));
  319.     return 1;
  320. }
  321. public OnPlayerText(playerid,text[])
  322. {
  323.     if(ZR == 1)
  324.     {
  325.         if(GetPVarInt(playerid, "Izbegavanje") == 0)
  326.         {
  327.             for(new i=0; i<MAX_ENTRY; i++)
  328.             {
  329.                 if(!reci[i][0]) continue;
  330.                 Cenzura(text,reci[i]);
  331.             }
  332.         }
  333.     }
  334.     return 1;
  335. }
  336. stock Letelica(carid)// ovde se nalaze sve letelice(vozila) koja ce se ignorisati prilikom ocitavanja speed hack-a
  337. {
  338.     new v = GetVehicleModel(carid);
  339.     if(v == 593 || v == 592 || v == 577 || v == 553 || v == 520 || v == 519 || v == 511|| v == 460 || v == 563 || v == 548 || v == 497 || v == 488 || v == 487 || v == 469 || v == 447 || v == 417)
  340.     {
  341.         return 1;
  342.     }
  343.     return 0;
  344. }
  345. stock StripNewLine(str[])
  346. {
  347.     new l = strlen(str);
  348.     while (l-- && str[l] <= ' ') str[l] = '\0';
  349. }
  350.  
  351. stock Cenzura(string[],word[],destch='*')
  352. {
  353.     new start_index=(-1),
  354.         end_index=(-1);
  355.  
  356.     start_index=strfind(string,word,true);
  357.     if(start_index==(-1)) return false;
  358.     end_index=(start_index+strlen(word));
  359.  
  360.     for( ; start_index<end_index; start_index++)
  361.         string[start_index]=destch;
  362.  
  363.     return true;
  364. }
  365. public kick(playerid)
  366. {
  367.     ResetPlayerWeapons(playerid);
  368.     Kick(playerid);
  369.     return 1;
  370. }
  371.  
  372. public nanula(playerid)
  373. {
  374.     if(Skakuce[playerid] >= 65 && Skakuce[playerid] < 76)
  375.     {
  376.         Skakuce[playerid] = 0;
  377.     }
  378.     return 1;
  379. }
  380. public log(string[])
  381. {
  382.     new entry[200];
  383.     format(entry, sizeof(entry), "%s\r\n",string);
  384.     new File:hFile;
  385.     hFile = fopen("AC-BS/log.log", io_append);
  386.     fwrite(hFile, entry);
  387.     fclose(hFile);
  388. }
  389. stock SnimiAC()
  390. {
  391.     new string[228];
  392.     format(string, sizeof(string), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",VP,PJP,PB,ZO,RCONZ,ZR,DBP,BHP,PAB,NN,NH,NA,NT,FP);
  393.     new File: file2 = fopen("AC-BS/anticheat.ini", io_write);
  394.     fwrite(file2, string);
  395.     fclose(file2);
  396.     return 1;
  397. }
  398. stock UcitajAC()
  399. {
  400.     new arrCoords[14][64];
  401.     new strFromFile2[128];
  402.     new File: file = fopen("AC-BS/anticheat.ini", io_read);
  403.     if (file)
  404.     {
  405.         fread(file, strFromFile2);
  406.         split(strFromFile2, arrCoords, ',');
  407.         VP = strval(arrCoords[0]);
  408.         PJP = strval(arrCoords[1]);
  409.         PB = strval(arrCoords[2]);
  410.         ZO = strval(arrCoords[3]);
  411.         RCONZ = strval(arrCoords[4]);
  412.         ZR = strval(arrCoords[5]);
  413.         DBP = strval(arrCoords[6]);
  414.         BHP = strval(arrCoords[7]);
  415.         PAB = strval(arrCoords[8]);
  416.         NN = strval(arrCoords[9]);
  417.         NH = strval(arrCoords[10]);
  418.         NA = strval(arrCoords[11]);
  419.         NT = strval(arrCoords[12]);
  420.         FP = strval(arrCoords[13]);
  421.         fclose(file);
  422.     }
  423.     else
  424.     {
  425.         fopen("AC/anticheat.ini", io_write);
  426.         print("Doslo je do greske!");
  427.         SnimiAC();
  428.         fclose(file);
  429.     }
  430.     return 1;
  431. }
  432. //=====================[PROVERA BRZINE]=====================
  433. public AntiCheat()
  434. {
  435.     new string[428];
  436.     foreach(Player, i)
  437.     {
  438.     if(Spawnovan[i] == 1)
  439.     {
  440.     if(Zastita[i] != 0)
  441.     {
  442.         Zastita[i]++;
  443.         Novac1[i] = GetPlayerMoney(i);
  444.         SetPVarInt(i, "SiguranVW", GetPlayerVirtualWorld(i));
  445.         SetPVarInt(i, "SiguranInt", GetPlayerInterior(i));
  446.         SetPVarInt(i, "SiguranTeleport", 0);
  447.         new Float:Helti; new Float:Armor;
  448.         GetPlayerHealth(i,Helti);
  449.         SetPVarFloat(i,"SigurniHelti",Helti+2);
  450.         GetPlayerArmour(i, Armor);
  451.         SetPVarFloat(i,"SigurniArmor",Armor+2);
  452.         if(Zastita[i] == 3)
  453.         {
  454.             Zastita[i] = 0;
  455.         }
  456.     }
  457.     }
  458.     if(PB == 1)
  459.     {
  460.         if(GetPVarInt(i, "Izbegavanje") == 0)
  461.         {
  462.             if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
  463.             {
  464.                 new Float:X, Float:Y, Float:Z, Float:km;
  465.                 GetVehicleVelocity(GetPlayerVehicleID(i), X, Y, Z);
  466.                 km = floatmul(floatsqroot(floatadd(floatadd(floatpower(X, 2), floatpower(Y, 2)),  floatpower(Z, 2))), 135.0); // PROMENI ME PO POTREBI - SPEED2 (135.0)
  467.                 new Brzina2 = floatround(floatdiv(km, 0.75), floatround_floor);
  468.                 if(Brzina2 > MBrzina)
  469.                 {
  470.                     new vozilo = GetPlayerVehicleID(i);
  471.                     GetPlayerName(i, ime, sizeof(ime));
  472.                     GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  473.                     if(!Letelica(vozilo))
  474.                     {
  475.                         format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Speed Hack-a (%d km/h).", ime, Brzina2);
  476.                         SendClientMessageToAll(CRVENA, string);
  477.                         format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Speed Hack [%d km/h]\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,Brzina2,ipadresa,forum);
  478.                         ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  479.                         getdate(y,m,d);
  480.                         gettime(h,mi,s);
  481.                         format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Speed Hack-a",d,m,y,h,mi,s,ime);
  482.                         log(string);
  483.                         SetTimerEx("kick",10, false, "i", i);
  484.                     }
  485.                 }
  486.             }
  487.         }
  488.     }
  489. //=====================[PROVERA PINGA]=====================
  490.     if(GetPVarInt(i, "Izbegavanje") == 0)
  491.     {
  492.         if(VP == 0)
  493.         {
  494.             new ping = GetPlayerPing(i);
  495.             if(ping > MPing)
  496.             {
  497.                 if(Zastita[i] == 0)
  498.                 {
  499.                     GetPlayerName(i, ime, sizeof(ime));
  500.                     GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  501.                     format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog previsokog pinga : [%d/%d]", ime,ping,MPing);
  502.                     SendClientMessageToAll(CRVENA, string);
  503.                     format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Previsok Ping [%d/%d]\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ping,MPing,ipadresa,forum);
  504.                     ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  505.                     getdate(y,m,d);
  506.                     gettime(h,mi,s);
  507.                     format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog previsokog ping-a [%d/%d]",d,m,y,h,mi,s,ime,ping,MPing);
  508.                     log(string);
  509.                     SetTimerEx("kick",10, false, "i", i);
  510.                 }
  511.             }
  512.         }
  513.     }
  514. //=====================[PROVERA ZABRANJENOG ORUZIJA]=====================
  515.     new oruzije; new municija;
  516.     if(ZO == 1)
  517.     {
  518.         if(GetPVarInt(i, "Izbegavanje") == 0)
  519.         {
  520.             for (new c = 0; c < 13; c++)
  521.             {
  522.                 GetPlayerWeaponData(i, c, oruzije, municija);
  523.                 if (oruzije != 0 && municija != 0)
  524.                 {
  525.                     new o = GetPlayerWeapon(i);
  526.                     GetPlayerName(i, ime, sizeof(ime));
  527.                     GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  528.                     if(o == 1||o == 8||o == 9||o == 16||o == 17||o == 18||o == 39||o == 40||o == 35||o == 36||o == 37||o == 38) // PROMENI PO POTREBI
  529.                     {
  530.                         new oru = GetPlayerWeapon(i);
  531.                         new imeoruzija[24];
  532.                         GetWeaponName(oru,imeoruzija, sizeof(imeoruzija));
  533.                         format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog poseda: %s",ime,imeoruzija);
  534.                         SendClientMessageToAll(CRVENA, string);
  535.                         format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} %s\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,imeoruzija,ipadresa,forum);
  536.                         ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  537.                         getdate(y,m,d);
  538.                         gettime(h,mi,s);
  539.                         format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog poseda zabranjenog ourzija: %s",d,m,y,h,mi,s,ime,imeoruzija);
  540.                         log(string);
  541.                         ResetPlayerWeapons(i);
  542.                         SetTimerEx("kick",10, false, "i", i);
  543.                     }
  544.                 }
  545.             }
  546.         }
  547.     }
  548. //=====================[PROVERA ZA JETPACK]=====================
  549.     if(PJP == 1)
  550.     {
  551.         if(GetPVarInt(i, "Izbegavanje") == 0)
  552.         {
  553.             new jp = GetPlayerSpecialAction(i);
  554.             if (jp == SPECIAL_ACTION_USEJETPACK)
  555.             {
  556.                 GetPlayerName(i, ime, sizeof(ime));
  557.                 GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  558.                 format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog koriscenja JetPack-a", ime);
  559.                 SendClientMessageToAll(CRVENA, string);
  560.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} JetPack\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  561.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  562.                 getdate(y,m,d);
  563.                 gettime(h,mi,s);
  564.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog poseda JetPack-a",d,m,y,h,mi,s,ime);
  565.                 log(string);
  566.                 SetTimerEx("kick",10, false, "i", i);
  567.             }
  568.         }
  569.     }
  570. //=====================[AIR BRAKE PROVERA]=====================
  571.     if(PAB == 1)
  572.     {
  573.         if(GetPVarInt(i, "Izbegavanje") == 0)
  574.         {
  575.             new Float:helti3;
  576.             GetPlayerHealth(i, helti3);
  577.             new acbrzina = GetPlayerSpeed(i, true);
  578.             new Float:AirPozicijaZ; new Float:AirPozicijaY; new Float:AirPozicijaX;
  579.             GetPlayerPos(i, AirPozicijaX, AirPozicijaY, AirPozicijaZ);
  580.             new surfing = (GetPlayerSurfingVehicleID (i) != INVALID_VEHICLE_ID || GetPlayerSurfingObjectID (i) != INVALID_OBJECT_ID);
  581.             if(!IsPlayerInAnyVehicle(i) && acbrzina >= 15 && !surfing && helti3 > 2 && AirPozicijaZ > 180 && GetPlayerInterior(i) != 0 && !IsPlayerInRangeOfPoint(i, 50, 1550.4221,-1356.6211,296.1449)
  582.             && !IsPlayerInRangeOfPoint(i, 50, 1554.6090,-1310.8165,237.4023) && !IsPlayerInRangeOfPoint(i, 50, 1568.3086,-1245.5428,280.9511) && !IsPlayerInRangeOfPoint(i, 100, -2378.7898,-1620.4417,494.9576))
  583.             {
  584.             new ankategorija[320]; new anime[320];
  585.             GetAnimationName(GetPlayerAnimationIndex(i),ankategorija,320,anime,320);
  586.             GetPlayerName(i, ime, sizeof(ime));
  587.             GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  588.             SendClientMessage(i,BELA,"RADI");
  589.             if(strcmp(anime,"RUN_PLAYER", false ) == 0 && strcmp(ankategorija,"PED", false ) == 0)
  590.             {
  591.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} AirBrake\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  592.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  593.                 getdate(y,m,d);
  594.                 gettime(h,mi,s);
  595.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog AirBrake-a",d,m,y,h,mi,s,ime);
  596.                 log(string);
  597.                 SetTimerEx("kick",10, false, "i", i);
  598.             }
  599.             if(strcmp(anime,"WALK_PLAYER", false ) == 0 && strcmp(ankategorija,"PED", false ) == 0)
  600.             {
  601.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} AirBrake\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  602.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  603.                 getdate(y,m,d);
  604.                 gettime(h,mi,s);
  605.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog AirBrake-a",d,m,y,h,mi,s,ime);
  606.                 log(string);
  607.                 SetTimerEx("kick",10, false, "i", i);
  608.             }
  609.             }
  610.         }
  611.     }
  612. //=====================[PROVERA NESIGURNOG NOVCA]=====================
  613.     if(NN == 1)
  614.     {
  615.         if(GetPVarInt(i, "Izbegavanje") == 0)
  616.         {
  617.             new novac = GetPlayerMoney(i);
  618.             if(GetPVarInt(i, "SiguranNovac") == 0 && novac > Novac1[i] && Zastita[i] == 0)
  619.             {
  620.                 GetPlayerName(i, ime, sizeof(ime));
  621.                 SendClientMessage(i,ZUTA, "[AC-Balkan Security]: Novac ti je stavljen na realnu vrednost zbog Money Hack-a");
  622.                 ResetPlayerMoney (i);
  623.                 AC_BS_GivePlayerMoney (i, Novac1[i]);
  624.                 getdate(y,m,d);
  625.                 gettime(h,mi,s);
  626.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je stavio novac na realnu vrednost %s -u zbog Money Hack-a",d,m,y,h,mi,s,ime);
  627.                 log(string);
  628.                 OpomenaNovca[i]++;
  629.                 if(OpomenaNovca[i] == 3)
  630.                 {
  631.                     ResetPlayerMoney (i);
  632.                     AC_BS_GivePlayerMoney (i, Novac1[i]);
  633.                     GetPlayerName(i, ime, sizeof(ime));
  634.                     GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  635.                     format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} 3/3 Money Hack Opomena\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  636.                     ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  637.                     getdate(y,m,d);
  638.                     gettime(h,mi,s);
  639.                     format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog previse Money Hack opomena",d,m,y,h,mi,s,ime);
  640.                     log(string);
  641.                     SetTimerEx("kick",10, false, "i", i);
  642.                 }
  643.             }
  644.             if(GetPVarInt(i, "SiguranNovac") == 1)
  645.             {
  646.                 Zastita[i] = 1;
  647.                 Novac1[i] = GetPlayerMoney(i);
  648.                 SetPVarInt(i, "SiguranNovac", 0);
  649.             }
  650.         }
  651.     }
  652. //=====================[PROVERA HELTA]=====================
  653.     if(NH == 1)
  654.     {
  655.         if(GetPVarInt(i, "Izbegavanje") == 0)
  656.         {
  657.             new Float:Helti;
  658.             GetPlayerHealth(i,Helti);
  659.             if(Helti < GetPVarFloat(i, "SigurniHelti"))
  660.             {
  661.                 SetPVarFloat(i,"SigurniHelti",Helti+2);
  662.             }
  663.             if(GetPVarFloat(i, "ZastitaHelta") == 1)
  664.             {
  665.                 Zastita[i] = 1;
  666.                 SetPVarFloat(i,"ZastitaHelta",0);
  667.             }
  668.             if(Helti > GetPVarFloat(i, "SigurniHelti") && Zastita[i] == 0)
  669.             {
  670.                 GetPlayerName(i, ime, sizeof(ime));
  671.                 GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  672.                 format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Health Hack-a.", ime);
  673.                 SendClientMessageToAll(CRVENA, string);
  674.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Health Hack\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  675.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  676.                 getdate(y,m,d);
  677.                 gettime(h,mi,s);
  678.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Health Hack-a",d,m,y,h,mi,s,ime);
  679.                 log(string);
  680.                 SetTimerEx("kick",10, false, "i", i);
  681.             }
  682.         }
  683.     }
  684. //=====================[PROVERA ARMORA]================
  685.     if(NA == 1)
  686.     {
  687.         if(GetPVarInt(i, "Izbegavanje") == 0)
  688.         {
  689.             new Float:Armor;
  690.             GetPlayerArmour(i, Armor);
  691.             if(Armor < GetPVarFloat(i, "SigurniArmor"))
  692.             {
  693.                 SetPVarFloat(i,"SigurniArmor",Armor+2);
  694.             }
  695.             if(GetPVarFloat(i, "ZastitaArmora") == 1)
  696.             {
  697.                 Zastita[i] = 1;
  698.                 SetPVarFloat(i,"ZastitaArmora",0);
  699.             }
  700.             if(Armor > GetPVarFloat(i, "SigurniArmor") && Zastita[i] == 0)
  701.             {
  702.                 GetPlayerName(i, ime, sizeof(ime));
  703.                 GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  704.                 format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Armour Hack-a.", ime);
  705.                 SendClientMessageToAll(CRVENA, string);
  706.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Armour Hack\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  707.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  708.                 getdate(y,m,d);
  709.                 gettime(h,mi,s);
  710.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Armour Hack-a",d,m,y,h,mi,s,ime);
  711.                 log(string);
  712.                 SetTimerEx("kick",10, false, "i", i);
  713.             }
  714.         }
  715.     }
  716. //====================[PROVERA ZA TELEPORTOVANJE U INT]======================
  717.     if(NT == 1)
  718.     {
  719.         if(GetPVarInt(i, "Izbegavanje") == 0)
  720.         {
  721.             if(GetPVarInt(i, "SiguranTeleport") == 1)
  722.             {
  723.                 Zastita[i] = 1;
  724.                 SetPVarInt(i, "SiguranVW", GetPlayerVirtualWorld(i));
  725.                 SetPVarInt(i, "SiguranInt", GetPlayerInterior(i));
  726.                 SetPVarInt(i, "SiguranTeleport", 0);
  727.             }
  728.             if(GetPVarFloat(i, "ZastitaTeleporta") == 1)
  729.             {
  730.                 Zastita[i] = 1;
  731.                 SetPVarFloat(i,"ZastitaTeleporta",0);
  732.             }
  733.             if(Zastita[i] == 0 && GetPVarInt(i, "SiguranTeleport") == 0 && GetPVarInt(i, "SiguranInt") != GetPlayerInterior(i) || Zastita[i] == 0 && GetPVarInt(i, "SiguranTeleport") == 0 && GetPVarInt(i, "SiguranVW") != GetPlayerVirtualWorld(i))
  734.             {
  735.                 GetPlayerName(i, ime, sizeof(ime));
  736.                 GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  737.                 if(GetPlayerInterior(i) >= 1)
  738.                 {
  739.                     format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Teleportovanja[EXT >INT].", ime);
  740.                     SendClientMessageToAll(CRVENA, string);
  741.                     format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Teleport[EXT >INT]\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  742.                     ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  743.                     getdate(y,m,d);
  744.                     gettime(h,mi,s);
  745.                     format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Teleportovanja[EXT >INT]",d,m,y,h,mi,s,ime);
  746.                     log(string);
  747.                     SetTimerEx("kick",10, false, "i", i);
  748.                 }
  749.                 if(GetPlayerInterior(i) == 0)
  750.                 {
  751.                     format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Teleportovanja[INT > EXT].", ime);
  752.                     SendClientMessageToAll(CRVENA, string);
  753.                     format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Teleport[INT > EXT]\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  754.                     ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  755.                     getdate(y,m,d);
  756.                     gettime(h,mi,s);
  757.                     format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog Teleportovanja[INT > EXT]",d,m,y,h,mi,s,ime);
  758.                     log(string);
  759.                     SetTimerEx("kick",10, false, "i", i);
  760.                 }
  761.             }
  762.         }
  763.     }
  764. //=====================[FLY PROVERA]=====================
  765.     if(FP == 1)
  766.     {
  767.         if(GetPVarInt(i, "Izbegavanje") == 0)
  768.         {
  769.             new Float:FlyPozicijaZ; new Float:FlyPozicijaY; new Float:FlyPozicijaX;
  770.             new ankategorija[320]; new anime[320]; new Float:helti2;
  771.             GetAnimationName(GetPlayerAnimationIndex(i),ankategorija,320,anime,320);
  772.             GetPlayerPos(i, FlyPozicijaX, FlyPozicijaY, FlyPozicijaZ);
  773.             GetPlayerName(i, ime, sizeof(ime)); GetPlayerHealth(i,helti2);
  774.             GetPlayerIp(i, ipadresa, sizeof(ipadresa));
  775.             if(strcmp(anime,"SWIM_CRAWL", false ) == 0 && strcmp(ankategorija,"SWIM", false ) == 0)
  776.             {
  777.                 if(!IsPlayerInAnyVehicle(i) && FlyPozicijaZ > 55 && helti2 > 2 && Zastita[i] == 0)
  778.                 {
  779.                     FlyOpomena[i] = 1;
  780.                 }
  781.             }
  782.             if(strcmp(anime,"SWIM_BREAST", false ) == 0 && strcmp(ankategorija,"SWIM", false ) == 0)
  783.             {
  784.                 if(!IsPlayerInAnyVehicle(i) && FlyPozicijaZ > 50 && helti2 > 2 && Zastita[i] == 0)
  785.                 {
  786.                     FlyOpomena[i] = 1;
  787.                 }
  788.             }
  789.             if(strcmp(anime,"SWIM_TREAD", false ) == 0 && strcmp(ankategorija,"SWIM", false ) == 0)
  790.             {
  791.                 if(!IsPlayerInAnyVehicle(i) && FlyPozicijaZ > 50 && helti2 > 2 && Zastita[i] == 0)
  792.                 {
  793.                     FlyOpomena[i] = 1;
  794.                 }
  795.             }
  796.             if(FlyOpomena[i]== 1)
  797.             {
  798.                 format(string, sizeof(string), "[AC-Balkan Security]: %s je kikovan zbog Fly Hack-a", ime);
  799.                 SendClientMessageToAll(CRVENA, string);
  800.                 format(string2, sizeof(string2),"{CD0000}Kikovan si!\n{FFF8DC}Ime:{CD0000} %s\n{FFF8DC}Razlog:{CD0000} Fly Hack\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}Ukoliko mislis da je doslo do greske, odnosno da si greskom kikovan,\n pritisni F8 i prijavi gresku na forum ovog servera.\n Adresa: %s",ime,ipadresa,forum);
  801.                 ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
  802.                 getdate(y,m,d);
  803.                 gettime(h,mi,s);
  804.                 format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] je kikovao %s zbog AirBrake-a",d,m,y,h,mi,s,ime);
  805.                 log(string);
  806.                 FlyOpomena[i] = 0;
  807.                 SetTimerEx("kick",5, false, "i", i);
  808.             }
  809.         }
  810. }
  811. //------[kraj foreach]
  812. }
  813. //------[kraj tajmera]
  814.     return 1;
  815. }
  816.  
  817. //------------------[ANTICHEAT KOMANDE]---------------------
  818. CMD:anticheat(playerid, params[])
  819. {
  820.     if(!IsPlayerAdmin(playerid))
  821.     {
  822.         SendClientMessage(playerid, BELA, "Nisi ovlascen da koristis ovu komandu!");
  823.         return 1;
  824.     }
  825.     new string[600];
  826.     new komande[] = "1. Ukljuci/Iskljuci: Proveru Ping-a\n2. Ukljuci/Iskljuci: Anti JetPack-a\n3. Ukljuci/Iskljuci: Proveru Brzine\n4. Ukljuci/Iskljuci: Proveru Zabranjenih Oruzija\n5. Ukljuci/Iskljuci: RCON Zastitu\n6. Ukljuci/Iskljuci: Zabranjene Reci\n7. Ukljuci/Iskljuci: Anti Drive By\n8. Ukljuci/Iskljuci: Anti Bunny Hop\n8. Ukljuci/Iskljuci: Anti AirBrake\n9. Ukljuci/Iskljuci: Nesiguran Novac";
  827.     new komande2[] = "\n10. Ukljuci/Iskljuci: Nesigurni Helti\n11. Ukljuci/Iskljuci: Nesiguran Armor\n12. Ukljuci/Iskljuci: Nesiguran Teleport[INT]\n13. Ukljuci/Iskljuci: Fly Proveru (Anti Fly Hack)";
  828.     format(string, sizeof(string),"%s %s",komande,komande2);
  829.     ShowPlayerDialog(playerid, 19999, DIALOG_STYLE_LIST, "[Podesavanje AntiCheat-a]",string, "Ok", "Odustani");
  830.     return 1;
  831. }
  832. CMD:provera(playerid, params[])
  833. {
  834.     new ankategorija[320]; new anime[320]; new string[128];
  835.     GetAnimationName(GetPlayerAnimationIndex(playerid),ankategorija,320,anime,320);
  836.     format(string, sizeof(string),"Kategorija: %s Animacija: %s",ankategorija,anime);
  837.     SendClientMessage(playerid,BELA,string);
  838.     new acbrzina = GetPlayerSpeed(playerid, true);
  839.     format(string, sizeof(string),"Brzina: %d",acbrzina);
  840.     SendClientMessage(playerid,BELA,string);
  841.     return 1;
  842. }
  843. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  844. {
  845.         if(dialogid == 19999)
  846.         {
  847.             if(response)
  848.             {
  849.                 if(listitem == 0)
  850.                 {
  851.                 if(VP == 1)
  852.                     {
  853.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv previsokog ping-a");
  854.                         VP = 0;
  855.                     }
  856.                     else if(VP == 0)
  857.                     {
  858.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv previsokog ping-a");
  859.                         VP = 1;
  860.                     }
  861.                 }
  862.                 else if(listitem == 1) // jetpack
  863.                 {
  864.                     if(PJP == 1)
  865.                     {
  866.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv JetPak-a");
  867.                         PJP = 0;
  868.                     }
  869.                     else if(PJP == 0)
  870.                     {
  871.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv JetPak-a");
  872.                         PJP = 1;
  873.                     }
  874.                 }
  875.                 else if(listitem == 2)// brzina
  876.                 {
  877.                     if(PB == 1)
  878.                     {
  879.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv speed hack-a");
  880.                         PB = 0;
  881.                     }
  882.                     else if(PB == 0)
  883.                     {
  884.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv speed hack-a");
  885.                         PB = 1;
  886.                     }
  887.                 }
  888.                 else if(listitem == 3)// zabranjena oruzija
  889.                 {
  890.                     if(ZO == 1)
  891.                     {
  892.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Zabranjenih Oruzija");
  893.                         ZO = 0;
  894.                     }
  895.                     else if(ZO == 0)
  896.                     {
  897.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Zabranjenih Oruzija!");
  898.                         ZO = 1;
  899.                     }
  900.                 }
  901.                 else if(listitem == 4) // rcon zastita
  902.                 {
  903.                     if(RCONZ == 1)
  904.                     {
  905.                         RCONZ = 0;
  906.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru RCON Zastite!");
  907.                     }
  908.                     else if(RCONZ == 0)
  909.                     {
  910.                         RCONZ = 1;
  911.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru RCON Zastite");
  912.                     }
  913.                 }
  914.                 else if(listitem == 5) // zabranjene reci
  915.                 {
  916.                     if(ZR == 1)
  917.                     {
  918.                         ZR = 0;
  919.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Zabranjenih Reci!");
  920.                     }
  921.                     else if(ZR == 0)
  922.                     {
  923.                         ZR = 1;
  924.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Zabranjenih Reci");
  925.                     }
  926.                 }
  927.                 else if(listitem == 6)// drive by provera
  928.                 {
  929.                     if(DBP == 1)
  930.                     {
  931.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Drive By!");
  932.                         DBP = 0;
  933.                     }
  934.                     else if(DBP == 0)
  935.                     {
  936.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Drive By!");
  937.                         DBP = 1;
  938.                     }
  939.                 }
  940.                 else if(listitem == 7)// bunny hop provera
  941.                 {
  942.                     if(BHP == 1)
  943.                     {
  944.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Bunny Hop!");
  945.                         BHP = 0;
  946.                     }
  947.                     else if(BHP == 0)
  948.                     {
  949.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Bunny Hop!");
  950.                         BHP = 1;
  951.                     }
  952.                 }
  953.                 else if(listitem == 8)// air brake provera
  954.                 {
  955.                     if(PAB == 1)
  956.                     {
  957.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv AirBrake-a!");
  958.                         PAB = 0;
  959.                     }
  960.                     else if(PAB == 0)
  961.                     {
  962.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv AirBrake-a!");
  963.                         PAB = 1;
  964.                     }
  965.                 }
  966.                 else if(listitem == 9)// provera protiv cita za novac
  967.                 {
  968.                     if(NN == 1)
  969.                     {
  970.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Nesigurnog Novca(Money Hack)!");
  971.                         NN = 0;
  972.                     }
  973.                     else if(NN == 0)
  974.                     {
  975.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Nesigurnog Novca(Money Hack)!");
  976.                         NN = 1;
  977.                     }
  978.                 }
  979.                 else if(listitem == 10)// provera protiv cita za helte
  980.                 {
  981.                     if(NH == 1)
  982.                     {
  983.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Nesigurnih Helti (Health Hack)!");
  984.                         NH = 0;
  985.                     }
  986.                     else if(NH == 0)
  987.                     {
  988.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Nesigurnih Helti (Health Hack)!");
  989.                         NH = 1;
  990.                     }
  991.                 }
  992.                 else if(listitem == 11)// provera protiv cita za armor
  993.                 {
  994.                     if(NA == 1)
  995.                     {
  996.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Nesigurnog Armora(Armour Hack)!");
  997.                         NA = 0;
  998.                     }
  999.                     else if(NA == 0)
  1000.                     {
  1001.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Nesigurnog Armora(Armour Hack)!");
  1002.                         NA = 1;
  1003.                     }
  1004.                 }
  1005.                 else if(listitem == 12)// provera protiv teleportovanja[int]
  1006.                 {
  1007.                     if(NT == 1)
  1008.                     {
  1009.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Nesigurnog Teleporta[int](Teleport Cheat)!");
  1010.                         NT = 0;
  1011.                     }
  1012.                     else if(NT == 0)
  1013.                     {
  1014.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Teleporta[int](Teleport Cheat)!");
  1015.                         NT = 1;
  1016.                     }
  1017.                 }
  1018.                 else if(listitem == 13)// provera protiv fly hack-a
  1019.                 {
  1020.                     if(FP == 1)
  1021.                     {
  1022.                         SendClientMessage(playerid, BELA, "Iskljucio si proveru protiv Fly Hack-a!");
  1023.                         FP = 0;
  1024.                     }
  1025.                     else if(FP == 0)
  1026.                     {
  1027.                         SendClientMessage(playerid, BELA, "Ukljucio si proveru protiv Fly Hack-a!");
  1028.                         FP = 1;
  1029.                     }
  1030.                 }
  1031.             }
  1032.             SnimiAC();
  1033.         }
  1034.         return 1;
  1035. }
  1036. #error PO DRUGI PUT PROCITAJ INSTALIRANJE.TXT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement