Advertisement
Guest User

Untitled

a guest
Feb 18th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.56 KB | None | 0 0
  1. // glavni include include
  2. #include <a_samp> // a_samp funkcije
  3. #include <core> // antidmx
  4. #include <float> // antidmx
  5. // define max_players
  6. #undef  MAX_PLAYERS
  7. #define MAX_PLAYERS         50
  8. // ostali include
  9. #include <socket> // socketi za launcher
  10. #include <strlib> // string include
  11. #include <sscanf2> // scanf za unos
  12. #define FILTERSCRIPT // define za PAWN.CMD da je filterskripta u pitanju
  13. #include <Pawn.CMD> // cmd funkcija
  14. // pragma
  15. #pragma tabsize             0
  16. #pragma dynamic             8135
  17. // ostali define
  18. #define str.clear(%0)       %0[0] = '\0'
  19. // glavni socket
  20. new Socket:g_Socket;
  21. // forward
  22. forward ReceiveData(remote_clientid, data[]);
  23. forward LauncherConnKick(playerid);
  24. forward DelayKick(playerid);
  25. // enum promenljive
  26. enum pInfo
  27. {
  28.     remoteID,
  29.     MacAdress[18],
  30.     bool:launcherKonekcija,
  31.     bool:imaCleo,
  32.     bool:imaSobeit
  33. };
  34. new PlayerInfo[MAX_PLAYERS][pInfo];
  35. public OnFilterScriptInit()
  36. {
  37.     g_Socket = socket_create(TCP);
  38.     if(is_socket_valid(g_Socket)) {
  39.         socket_set_max_connections(g_Socket, MAX_PLAYERS);
  40.         socket_listen(g_Socket, 2526);
  41.     }
  42.     print("Inicijalizacija socketa zavrsena...");
  43.     return 1;
  44. }
  45. public OnFilterScriptExit()
  46. {
  47.     if(is_socket_valid(g_Socket))
  48.         socket_destroy(g_Socket);
  49. }
  50. public onSocketRemoteConnect(Socket:id, remote_client[], remote_clientid)
  51. {
  52.     return 1;
  53. }
  54. public onSocketRemoteDisconnect(Socket:id, remote_clientid)
  55. {
  56.     return 1;
  57. }
  58. public onSocketReceiveData(Socket:id, remote_clientid, data[], data_len)
  59. {
  60.     printf("Klijent [%d] je poslao: %s", remote_clientid, data);
  61.     ReceiveData(remote_clientid, data);
  62.     return 1;
  63. }
  64. public ReceiveData(remote_clientid, data[])
  65. {
  66.     new str_arr[10][500],id, sender, sendquery[128], temp[128];
  67.     strexplode(str_arr, data, ":");
  68.     if(!strcmp(str_arr[0], "client"))
  69.     {
  70.         if(!strcmp(str_arr[1],"connection"))
  71.         {
  72.             printf("%s se logovao na launcher sa mac adresom %s. Cleo: %s, Sobeit: %s", str_arr[2], str_arr[3],str_arr[4],str_arr[5]);
  73.         }
  74.         if(!strcmp(str_arr[1],"macadress"))
  75.         {
  76.             printf("%s je zatrazio macadresu od %s: %s", str_arr[4], str_arr[2], str_arr[3]);
  77.             id=GetPlayerIDFromName(str_arr[4]);
  78.             new str[128];
  79.             format(str, sizeof(str), "MacAdresa %s je %s.", str_arr[2], str_arr[3]);
  80.             SendClientMessage(id, -1, str);
  81.         }
  82.         if(!strcmp(str_arr[1],"launcher"))
  83.         {
  84.             id=GetPlayerIDFromName(str_arr[2]);
  85.             if(!strcmp(str_arr[3],"1"))
  86.             {
  87.                 PlayerInfo[id][launcherKonekcija] = true;
  88.                 PlayerInfo[id][remoteID] = remote_clientid;
  89.                 strmid(PlayerInfo[id][MacAdress], str_arr[4], 0, strlen(str_arr[4]), 255);
  90.             }
  91.             else
  92.                PlayerInfo[id][launcherKonekcija] = false;
  93.         }
  94.         if(!strcmp(str_arr[1],"cheatengine"))
  95.         {
  96.             id=GetPlayerIDFromName(str_arr[2]);
  97.             KickWithReason(id,"Imate cheat engine!");
  98.         }
  99.         if(!strcmp(str_arr[1],"brigraca"))
  100.         {
  101.             id = GetPlayersOnServer();
  102.             format(sendquery,sizeof(sendquery),"server:brigraca:%d", id);
  103.             socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
  104.         }
  105.         if(!strcmp(str_arr[1],"info"))
  106.         {
  107.             id=GetPlayerIDFromName(str_arr[2]);
  108.             if(IsPlayerConnected(id))
  109.             {
  110.                 if(!strcmp(str_arr[3],"True")) PlayerInfo[id][imaCleo] = true;
  111.                 else if(!strcmp(str_arr[3],"False")) PlayerInfo[id][imaCleo] = false;
  112.                 if(!strcmp(str_arr[4],"True")) PlayerInfo[id][imaSobeit] = true;
  113.                 else if(!strcmp(str_arr[4],"False")) PlayerInfo[id][imaSobeit] = false;
  114.             }
  115.         }
  116.         if(!strcmp(str_arr[1],"testdata"))
  117.         {
  118.             format(sendquery,sizeof(sendquery),"server:init:rglauncher:luNyzfB2pAbYJBdt:149.202.150.186:server06");
  119.             printf("%s", sendquery);
  120.             socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
  121.         }
  122.         if(!strcmp(str_arr[1],"registracija"))
  123.         {
  124.                 /*
  125.                  *  lista.Add(ImeVrednost.Text); //ime
  126.                  *  lista.Add(LozinkaVrednost.Text); //lozinka
  127.                  *  lista.Add(EmailVrednost.Text); //email
  128.                  *  lista.Add(bunifuDropdown1.selectedValue); //godine
  129.                  *  lista.Add(bunifuDropdown2.selectedValue); //drzave
  130.                  *  lista.Add(bunifuDropdown3.selectedValue); //pol
  131.                  */
  132.                  // dodati funkciju za registraciju koja ce dalje da prosledi podatke u mysql databazu prema algoritmu
  133.             printf("Primljeni podaci");
  134.             format(temp, sizeof(temp), "Ime: %s Lozinka: %s Email: %s Godine: %s Drzava: %s Pol: %s",str_arr[2],str_arr[3],str_arr[4],str_arr[5],str_arr[6],str_arr[7]);
  135.             printf("%s", temp);
  136.         }
  137.         if(!strcmp(str_arr[1],"kick"))
  138.         {
  139.             //kikovanje sa servera ako je igrac online, ako nije jbg
  140.         }
  141.         if(!strcmp(str_arr[1],"fine"))
  142.         {
  143.             //oduzimanje novca ako je igrac online, ako nije launcher je odradio posao
  144.         }
  145.         if(!strcmp(str_arr[1],"zatvor"))
  146.         {
  147.             //zatvaranje igraca ako je igrac online, ako nije launcher je odradio posao
  148.         }
  149.         if(!strcmp(str_arr[1],"ban"))
  150.         {
  151.             //banovanje igraca ako je online/offline
  152.         }
  153.         if(!strcmp(str_arr[1],"rank"))
  154.         {   //                                2               3           4             5
  155.             //sendquery = "client:rank:" + pozicija + ":" + rank + ":" + ime + ":" + ImeIgraca;
  156.             format(sendquery,sizeof(sendquery),"server:skiniadmina", id);
  157.             socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
  158.         }
  159.         if(!strcmp(str_arr[1],"gtafolder") || !strcmp(str_arr[1],"cleofolder") || !strcmp(str_arr[1],"modsafolder") || !strcmp(str_arr[1], "virtualfolder"))
  160.         {
  161.             new ispis[40];
  162.             if(!strcmp(str_arr[1],"gtafolder")) format(ispis,sizeof(ispis), "{ff0000}GTA FOLDER");
  163.             else if(!strcmp(str_arr[1],"cleofolder")) format(ispis,sizeof(ispis), "{ff0000}CLEO FOLDER");
  164.             else if(!strcmp(str_arr[1],"modsafolder")) format(ispis,sizeof(ispis), "{ff0000}MOD_SA FOLDER");
  165.             else if(!strcmp(str_arr[1],"virtualfolder")) format(ispis,sizeof(ispis), "{ff0000}VIRTUAL FOLDER GTA");
  166.             id=GetPlayerIDFromName(str_arr[2]);
  167.             sender=GetPlayerIDFromName(str_arr[4]);
  168.             if(IsPlayerConnected(sender))
  169.             {
  170.                 SendClientMessage(sender, -1, ispis);
  171.                 if(!strcmp(str_arr[3], "Ne postoji"))
  172.                     SendClientMessage(sender, -1, "Ne postoji.");
  173.                 else if(!strcmp(str_arr[3], "Prazan"))
  174.                     SendClientMessage(sender, -1, "Prazan.");
  175.                 else
  176.                 {
  177.                     new space_br = 0, dafuq[250];
  178.                     str.clear(dafuq);
  179.                     for(new i;i<strlen(str_arr[3]);i++)
  180.                     {
  181.                         if(str_arr[3][i] == '\n') continue;
  182.                         if(str_arr[3][i] == ' ') space_br++;
  183.                         if(space_br == 5)
  184.                         {
  185.                             SendClientMessage(id, -1, dafuq);
  186.                             str.clear(dafuq);
  187.                             space_br = 0;
  188.                             continue;
  189.                         }
  190.                         format(dafuq, sizeof(dafuq), "%s%c", dafuq, str_arr[3][i]);
  191.                         if(i==strlen(str_arr[3])-1)
  192.                         {
  193.                             SendClientMessage(id, -1, dafuq);
  194.                             break;
  195.                         }
  196.                     }
  197.                 }
  198.             }
  199.         }
  200.     }
  201.     return 1;
  202. }
  203. public OnPlayerConnect(playerid)
  204. {
  205.     new sendquery[64];
  206.     new name[MAX_PLAYER_NAME];
  207.     GetPlayerName(playerid, name, sizeof(name));
  208.     format(sendquery, sizeof(sendquery), "server:launcher:%s", name);
  209.     SendClientMessage(playerid, -1, "Proveravanje parametara...");
  210.     socket_sendto_remote_client(g_Socket,PlayerInfo[playerid][remoteID], sendquery);
  211.     SetTimerEx("LauncherConnKick", 3500, false, "i", playerid);
  212.     return 1;
  213. }
  214. public OnPlayerSpawn(playerid)
  215. {
  216.     AntiDeAMX();
  217.     socket_sendto_remote_client(g_Socket, PlayerInfo[playerid][remoteID],"server:resendinfo");
  218.     return 1;
  219. }
  220. public LauncherConnKick(playerid)
  221. {
  222.     if(!PlayerInfo[playerid][launcherKonekcija]) KickWithReason(playerid, "Nemate launcher");
  223.     else SendClientMessage(playerid, -1, "Imate Launcher");
  224.     return 1;
  225. }
  226. public DelayKick(playerid)
  227. {
  228.     Kick(playerid);
  229.     return 1;
  230. }
  231. public OnPlayerDisconnect(playerid, reason)
  232. {
  233.     PlayerInfo[playerid][launcherKonekcija] = false;
  234.     return 1;
  235. }
  236. public onSocketAnswer(Socket:id, data[])
  237. {
  238.     return 1;
  239. }
  240. public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
  241. {
  242.     if(result == -1) return SendClientMessage(playerid, 0xFF0000FF, "Komanda ne postoji.");
  243.     return 1;
  244. }
  245. // stocks
  246. stock KickWithReason(id, reason[])
  247. {
  248.     new kick[200];
  249.     format(kick, sizeof(kick), "{ff0000}Kikovani ste sa servera. Razlog: {ffffff}%s.",reason);
  250.     SendClientMessage(id,-1,reason);
  251.     SetTimerEx("DelayKick",1000, false, "i", id);
  252.     return 1;
  253. }
  254. stock GetFirstAvalibleID()
  255. {
  256.     new id=0;
  257.     for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  258.     {
  259.         if(IsPlayerConnected(i)) continue;
  260.         id = i;
  261.         break;
  262.     }
  263.     return id;
  264. }
  265. stock GetPlayerMacAdress(playerid,sender)
  266. {
  267.     new sendquery[64];
  268.     new name[MAX_PLAYER_NAME];
  269.     GetPlayerName(sender, name, sizeof(name));
  270.     format(sendquery, sizeof(sendquery), "server:macadress:%s", name);
  271.     socket_sendto_remote_client(g_Socket,PlayerInfo[playerid][remoteID], sendquery);
  272.     return 1;
  273. }
  274. stock GetPlayerIDFromName(playername[])
  275. {
  276.     new playername2[MAX_PLAYER_NAME];
  277.     for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  278.     {
  279.         if(IsPlayerConnected(i))
  280.         {
  281.             GetPlayerName(i, playername2, sizeof(playername2));
  282.             if(strcmp(playername2, playername, true, strlen(playername)) == 0)
  283.                 return i;
  284.         }
  285.     }
  286.     return INVALID_PLAYER_ID;
  287. }
  288. stock GetPlayersOnServer()
  289. {
  290.     new count;
  291.     for(new x=0; x< MAX_PLAYERS; x++)
  292.     {
  293.         if(IsPlayerConnected(x))
  294.             count++;
  295.     }
  296.     return count;
  297. }
  298. stock SendDataToclient(Socket:id, remote_clientid, data[])
  299. {
  300.     printf("slanje >> %s", data);
  301.     socket_sendto_remote_client(id,remote_clientid, data);
  302.     return 1;
  303. }
  304. stock BanujIgraca(admin[], ime[], razlog[])
  305. {
  306.     new sendquery[128],ip[16],godina,mesec,dan,sati,minute,sekunde, str[64];
  307.     new id=GetPlayerIDFromName(ime);
  308.     getdate(godina, mesec, dan), gettime(sati, minute, sekunde);
  309.     GetPlayerIp(id, ip, sizeof(ip)); // ip
  310.     format(str, sizeof(str),"%d/%d/%d %d-%d-%d",dan,mesec,godina,sati,minute,sekunde); // datum
  311.     if(IsPlayerConnected(id))
  312.     {
  313.         // server:banclient:admin:ip:razlog:datum -> ime igraca uzimam iz launchera
  314.         format(sendquery, sizeof(sendquery), "server:screenshot");
  315.         socket_sendto_remote_client(g_Socket,PlayerInfo[id][remoteID], sendquery);
  316.         format(sendquery, sizeof(sendquery), "server:banclient:%s:%s:%s:%s", admin,razlog,ip,str);
  317.         SendDataToclient(g_Socket,PlayerInfo[id][remoteID], sendquery);
  318.         KickWithReason(id, "Banovani ste!");
  319.         //socket_sendto_remote_client(g_Socket,PlayerInfo[id][remoteID], sendquery);]
  320.     }
  321.     else
  322.     {
  323.         // igrac je offline; podaci se unose u  mysql
  324.     }
  325.     return 1;
  326. }
  327. // komande
  328. cmd:listajcitere(playerid, params[])
  329. {
  330.     SendClientMessage(playerid,  0xFF0000, "----- LISTA CITERA -----");
  331.     new name[MAX_PLAYER_NAME], str[200], cleo[3], modsa[3];
  332.     for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
  333.     {
  334.         GetPlayerName(i, name, sizeof(name));
  335.         if(PlayerInfo[i][imaCleo]) strmid(cleo, "DA", 0, strlen("DA"), 255);
  336.         else strmid(cleo, "NE", 0, strlen("NE"), 255);
  337.         if(PlayerInfo[i][imaSobeit]) strmid(modsa, "DA", 0, strlen("DA"), 255);
  338.         else strmid(modsa, "NE", 0, strlen("NE"), 255);
  339.         format(str, sizeof(str), "Ime: %s > CLEO: {ff0000}%s{ffffff} s0beit: {ff0000}%s{ffffff}.", name, cleo, modsa);
  340.         SendClientMessage(playerid, -1, str);
  341.     }
  342.     return 1;
  343. }
  344. cmd:listajgta(playerid, params[])
  345. {
  346.     new sendquery[64],name[MAX_PLAYER_NAME],i;
  347.     if(sscanf(params, "i", i)) return 1;
  348.     if(!IsPlayerConnected(i)) return 1;
  349.     GetPlayerName(playerid, name, sizeof(name));
  350.     format(sendquery, sizeof(sendquery), "server:listgtafolder:%s", name);
  351.     socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
  352.     return 1;
  353. }
  354. cmd:listajcleo(playerid, params[])
  355. {
  356.     new sendquery[64],name[MAX_PLAYER_NAME],i;
  357.     if(sscanf(params, "i", i)) return 1;
  358.     if(!IsPlayerConnected(i)) return 1;
  359.     GetPlayerName(playerid, name, sizeof(name));
  360.     format(sendquery, sizeof(sendquery), "server:listcleofolder:%s", name);
  361.     socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
  362.     return 1;
  363. }
  364. cmd:listajmodsa(playerid, params[])
  365. {
  366.     new sendquery[64],name[MAX_PLAYER_NAME],i;
  367.     if(sscanf(params, "i", i)) return 1;
  368.     if(!IsPlayerConnected(i)) return 1;
  369.     GetPlayerName(playerid, name, sizeof(name));
  370.     format(sendquery, sizeof(sendquery), "server:listmodsafolder:%s", name);
  371.     socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
  372.     return 1;
  373. }
  374. cmd:listajvirtual(playerid, params[])
  375. {
  376.     new sendquery[64],name[MAX_PLAYER_NAME],i;
  377.     if(sscanf(params, "i", i)) return 1;
  378.     if(!IsPlayerConnected(i)) return 1;
  379.     GetPlayerName(playerid, name, sizeof(name));
  380.     format(sendquery, sizeof(sendquery), "server:listajvirtualfolder:%s", name);
  381.     socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
  382.     return 1;
  383. }
  384. cmd:banujigraca(playerid, params[])
  385. {
  386.     new razlog[16],id,admin[MAX_PLAYER_NAME],igrac[MAX_PLAYER_NAME];
  387.     if(sscanf(params, "us[16]", id, razlog)) return SendClientMessage(playerid, 0xFF0000FF, "Losi Parametri");
  388.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "Igrac nije online");
  389.     GetPlayerName(playerid, admin, sizeof(admin)); // ime admina
  390.     GetPlayerName(id, igrac, sizeof(igrac)); // ime admina
  391.     BanujIgraca(admin, igrac, razlog);
  392.     return 1;
  393. }
  394. cmd:screenshot(playerid, params[])
  395. {
  396.     new sendquery[64],i;
  397.     if(sscanf(params, "i", i)) return SendClientMessage(playerid, 0xFF0000FF, "Losi Parametri");
  398.     if(!IsPlayerConnected(i)) return SendClientMessage(playerid, 0xFF0000FF, "Igrac nije online");
  399.     format(sendquery, sizeof(sendquery), "server:screenshot");
  400.     socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
  401.     return 1;
  402. }
  403. // ostale funkcije
  404. AntiDeAMX()
  405. {
  406.     new a[][] =
  407.     {
  408.         "Unarmed (Fist)",
  409.         "Brass K"
  410.     };
  411.     #pragma unused a
  412. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement