Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // glavni include include
- #include <a_samp> // a_samp funkcije
- #include <core> // antidmx
- #include <float> // antidmx
- // define max_players
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50
- // ostali include
- #include <socket> // socketi za launcher
- #include <strlib> // string include
- #include <sscanf2> // scanf za unos
- #define FILTERSCRIPT // define za PAWN.CMD da je filterskripta u pitanju
- #include <Pawn.CMD> // cmd funkcija
- // pragma
- #pragma tabsize 0
- #pragma dynamic 8135
- // ostali define
- #define str.clear(%0) %0[0] = '\0'
- // glavni socket
- new Socket:g_Socket;
- // forward
- forward ReceiveData(remote_clientid, data[]);
- forward LauncherConnKick(playerid);
- forward DelayKick(playerid);
- // enum promenljive
- enum pInfo
- {
- remoteID,
- MacAdress[18],
- bool:launcherKonekcija,
- bool:imaCleo,
- bool:imaSobeit
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public OnFilterScriptInit()
- {
- g_Socket = socket_create(TCP);
- if(is_socket_valid(g_Socket)) {
- socket_set_max_connections(g_Socket, MAX_PLAYERS);
- socket_listen(g_Socket, 2526);
- }
- print("Inicijalizacija socketa zavrsena...");
- return 1;
- }
- public OnFilterScriptExit()
- {
- if(is_socket_valid(g_Socket))
- socket_destroy(g_Socket);
- }
- public onSocketRemoteConnect(Socket:id, remote_client[], remote_clientid)
- {
- return 1;
- }
- public onSocketRemoteDisconnect(Socket:id, remote_clientid)
- {
- return 1;
- }
- public onSocketReceiveData(Socket:id, remote_clientid, data[], data_len)
- {
- printf("Klijent [%d] je poslao: %s", remote_clientid, data);
- ReceiveData(remote_clientid, data);
- return 1;
- }
- public ReceiveData(remote_clientid, data[])
- {
- new str_arr[10][500],id, sender, sendquery[128], temp[128];
- strexplode(str_arr, data, ":");
- if(!strcmp(str_arr[0], "client"))
- {
- if(!strcmp(str_arr[1],"connection"))
- {
- 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]);
- }
- if(!strcmp(str_arr[1],"macadress"))
- {
- printf("%s je zatrazio macadresu od %s: %s", str_arr[4], str_arr[2], str_arr[3]);
- id=GetPlayerIDFromName(str_arr[4]);
- new str[128];
- format(str, sizeof(str), "MacAdresa %s je %s.", str_arr[2], str_arr[3]);
- SendClientMessage(id, -1, str);
- }
- if(!strcmp(str_arr[1],"launcher"))
- {
- id=GetPlayerIDFromName(str_arr[2]);
- if(!strcmp(str_arr[3],"1"))
- {
- PlayerInfo[id][launcherKonekcija] = true;
- PlayerInfo[id][remoteID] = remote_clientid;
- strmid(PlayerInfo[id][MacAdress], str_arr[4], 0, strlen(str_arr[4]), 255);
- }
- else
- PlayerInfo[id][launcherKonekcija] = false;
- }
- if(!strcmp(str_arr[1],"cheatengine"))
- {
- id=GetPlayerIDFromName(str_arr[2]);
- KickWithReason(id,"Imate cheat engine!");
- }
- if(!strcmp(str_arr[1],"brigraca"))
- {
- id = GetPlayersOnServer();
- format(sendquery,sizeof(sendquery),"server:brigraca:%d", id);
- socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
- }
- if(!strcmp(str_arr[1],"info"))
- {
- id=GetPlayerIDFromName(str_arr[2]);
- if(IsPlayerConnected(id))
- {
- if(!strcmp(str_arr[3],"True")) PlayerInfo[id][imaCleo] = true;
- else if(!strcmp(str_arr[3],"False")) PlayerInfo[id][imaCleo] = false;
- if(!strcmp(str_arr[4],"True")) PlayerInfo[id][imaSobeit] = true;
- else if(!strcmp(str_arr[4],"False")) PlayerInfo[id][imaSobeit] = false;
- }
- }
- if(!strcmp(str_arr[1],"testdata"))
- {
- format(sendquery,sizeof(sendquery),"server:init:rglauncher:luNyzfB2pAbYJBdt:149.202.150.186:server06");
- printf("%s", sendquery);
- socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
- }
- if(!strcmp(str_arr[1],"registracija"))
- {
- /*
- * lista.Add(ImeVrednost.Text); //ime
- * lista.Add(LozinkaVrednost.Text); //lozinka
- * lista.Add(EmailVrednost.Text); //email
- * lista.Add(bunifuDropdown1.selectedValue); //godine
- * lista.Add(bunifuDropdown2.selectedValue); //drzave
- * lista.Add(bunifuDropdown3.selectedValue); //pol
- */
- // dodati funkciju za registraciju koja ce dalje da prosledi podatke u mysql databazu prema algoritmu
- printf("Primljeni podaci");
- 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]);
- printf("%s", temp);
- }
- if(!strcmp(str_arr[1],"kick"))
- {
- //kikovanje sa servera ako je igrac online, ako nije jbg
- }
- if(!strcmp(str_arr[1],"fine"))
- {
- //oduzimanje novca ako je igrac online, ako nije launcher je odradio posao
- }
- if(!strcmp(str_arr[1],"zatvor"))
- {
- //zatvaranje igraca ako je igrac online, ako nije launcher je odradio posao
- }
- if(!strcmp(str_arr[1],"ban"))
- {
- //banovanje igraca ako je online/offline
- }
- if(!strcmp(str_arr[1],"rank"))
- { // 2 3 4 5
- //sendquery = "client:rank:" + pozicija + ":" + rank + ":" + ime + ":" + ImeIgraca;
- format(sendquery,sizeof(sendquery),"server:skiniadmina", id);
- socket_sendto_remote_client(g_Socket, remote_clientid, sendquery);
- }
- if(!strcmp(str_arr[1],"gtafolder") || !strcmp(str_arr[1],"cleofolder") || !strcmp(str_arr[1],"modsafolder") || !strcmp(str_arr[1], "virtualfolder"))
- {
- new ispis[40];
- if(!strcmp(str_arr[1],"gtafolder")) format(ispis,sizeof(ispis), "{ff0000}GTA FOLDER");
- else if(!strcmp(str_arr[1],"cleofolder")) format(ispis,sizeof(ispis), "{ff0000}CLEO FOLDER");
- else if(!strcmp(str_arr[1],"modsafolder")) format(ispis,sizeof(ispis), "{ff0000}MOD_SA FOLDER");
- else if(!strcmp(str_arr[1],"virtualfolder")) format(ispis,sizeof(ispis), "{ff0000}VIRTUAL FOLDER GTA");
- id=GetPlayerIDFromName(str_arr[2]);
- sender=GetPlayerIDFromName(str_arr[4]);
- if(IsPlayerConnected(sender))
- {
- SendClientMessage(sender, -1, ispis);
- if(!strcmp(str_arr[3], "Ne postoji"))
- SendClientMessage(sender, -1, "Ne postoji.");
- else if(!strcmp(str_arr[3], "Prazan"))
- SendClientMessage(sender, -1, "Prazan.");
- else
- {
- new space_br = 0, dafuq[250];
- str.clear(dafuq);
- for(new i;i<strlen(str_arr[3]);i++)
- {
- if(str_arr[3][i] == '\n') continue;
- if(str_arr[3][i] == ' ') space_br++;
- if(space_br == 5)
- {
- SendClientMessage(id, -1, dafuq);
- str.clear(dafuq);
- space_br = 0;
- continue;
- }
- format(dafuq, sizeof(dafuq), "%s%c", dafuq, str_arr[3][i]);
- if(i==strlen(str_arr[3])-1)
- {
- SendClientMessage(id, -1, dafuq);
- break;
- }
- }
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new sendquery[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:launcher:%s", name);
- SendClientMessage(playerid, -1, "Proveravanje parametara...");
- socket_sendto_remote_client(g_Socket,PlayerInfo[playerid][remoteID], sendquery);
- SetTimerEx("LauncherConnKick", 3500, false, "i", playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- AntiDeAMX();
- socket_sendto_remote_client(g_Socket, PlayerInfo[playerid][remoteID],"server:resendinfo");
- return 1;
- }
- public LauncherConnKick(playerid)
- {
- if(!PlayerInfo[playerid][launcherKonekcija]) KickWithReason(playerid, "Nemate launcher");
- else SendClientMessage(playerid, -1, "Imate Launcher");
- return 1;
- }
- public DelayKick(playerid)
- {
- Kick(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- PlayerInfo[playerid][launcherKonekcija] = false;
- return 1;
- }
- public onSocketAnswer(Socket:id, data[])
- {
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
- {
- if(result == -1) return SendClientMessage(playerid, 0xFF0000FF, "Komanda ne postoji.");
- return 1;
- }
- // stocks
- stock KickWithReason(id, reason[])
- {
- new kick[200];
- format(kick, sizeof(kick), "{ff0000}Kikovani ste sa servera. Razlog: {ffffff}%s.",reason);
- SendClientMessage(id,-1,reason);
- SetTimerEx("DelayKick",1000, false, "i", id);
- return 1;
- }
- stock GetFirstAvalibleID()
- {
- new id=0;
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
- {
- if(IsPlayerConnected(i)) continue;
- id = i;
- break;
- }
- return id;
- }
- stock GetPlayerMacAdress(playerid,sender)
- {
- new sendquery[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(sender, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:macadress:%s", name);
- socket_sendto_remote_client(g_Socket,PlayerInfo[playerid][remoteID], sendquery);
- return 1;
- }
- stock GetPlayerIDFromName(playername[])
- {
- new playername2[MAX_PLAYER_NAME];
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
- {
- if(IsPlayerConnected(i))
- {
- GetPlayerName(i, playername2, sizeof(playername2));
- if(strcmp(playername2, playername, true, strlen(playername)) == 0)
- return i;
- }
- }
- return INVALID_PLAYER_ID;
- }
- stock GetPlayersOnServer()
- {
- new count;
- for(new x=0; x< MAX_PLAYERS; x++)
- {
- if(IsPlayerConnected(x))
- count++;
- }
- return count;
- }
- stock SendDataToclient(Socket:id, remote_clientid, data[])
- {
- printf("slanje >> %s", data);
- socket_sendto_remote_client(id,remote_clientid, data);
- return 1;
- }
- stock BanujIgraca(admin[], ime[], razlog[])
- {
- new sendquery[128],ip[16],godina,mesec,dan,sati,minute,sekunde, str[64];
- new id=GetPlayerIDFromName(ime);
- getdate(godina, mesec, dan), gettime(sati, minute, sekunde);
- GetPlayerIp(id, ip, sizeof(ip)); // ip
- format(str, sizeof(str),"%d/%d/%d %d-%d-%d",dan,mesec,godina,sati,minute,sekunde); // datum
- if(IsPlayerConnected(id))
- {
- // server:banclient:admin:ip:razlog:datum -> ime igraca uzimam iz launchera
- format(sendquery, sizeof(sendquery), "server:screenshot");
- socket_sendto_remote_client(g_Socket,PlayerInfo[id][remoteID], sendquery);
- format(sendquery, sizeof(sendquery), "server:banclient:%s:%s:%s:%s", admin,razlog,ip,str);
- SendDataToclient(g_Socket,PlayerInfo[id][remoteID], sendquery);
- KickWithReason(id, "Banovani ste!");
- //socket_sendto_remote_client(g_Socket,PlayerInfo[id][remoteID], sendquery);]
- }
- else
- {
- // igrac je offline; podaci se unose u mysql
- }
- return 1;
- }
- // komande
- cmd:listajcitere(playerid, params[])
- {
- SendClientMessage(playerid, 0xFF0000, "----- LISTA CITERA -----");
- new name[MAX_PLAYER_NAME], str[200], cleo[3], modsa[3];
- for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
- {
- GetPlayerName(i, name, sizeof(name));
- if(PlayerInfo[i][imaCleo]) strmid(cleo, "DA", 0, strlen("DA"), 255);
- else strmid(cleo, "NE", 0, strlen("NE"), 255);
- if(PlayerInfo[i][imaSobeit]) strmid(modsa, "DA", 0, strlen("DA"), 255);
- else strmid(modsa, "NE", 0, strlen("NE"), 255);
- format(str, sizeof(str), "Ime: %s > CLEO: {ff0000}%s{ffffff} s0beit: {ff0000}%s{ffffff}.", name, cleo, modsa);
- SendClientMessage(playerid, -1, str);
- }
- return 1;
- }
- cmd:listajgta(playerid, params[])
- {
- new sendquery[64],name[MAX_PLAYER_NAME],i;
- if(sscanf(params, "i", i)) return 1;
- if(!IsPlayerConnected(i)) return 1;
- GetPlayerName(playerid, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:listgtafolder:%s", name);
- socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
- return 1;
- }
- cmd:listajcleo(playerid, params[])
- {
- new sendquery[64],name[MAX_PLAYER_NAME],i;
- if(sscanf(params, "i", i)) return 1;
- if(!IsPlayerConnected(i)) return 1;
- GetPlayerName(playerid, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:listcleofolder:%s", name);
- socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
- return 1;
- }
- cmd:listajmodsa(playerid, params[])
- {
- new sendquery[64],name[MAX_PLAYER_NAME],i;
- if(sscanf(params, "i", i)) return 1;
- if(!IsPlayerConnected(i)) return 1;
- GetPlayerName(playerid, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:listmodsafolder:%s", name);
- socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
- return 1;
- }
- cmd:listajvirtual(playerid, params[])
- {
- new sendquery[64],name[MAX_PLAYER_NAME],i;
- if(sscanf(params, "i", i)) return 1;
- if(!IsPlayerConnected(i)) return 1;
- GetPlayerName(playerid, name, sizeof(name));
- format(sendquery, sizeof(sendquery), "server:listajvirtualfolder:%s", name);
- socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
- return 1;
- }
- cmd:banujigraca(playerid, params[])
- {
- new razlog[16],id,admin[MAX_PLAYER_NAME],igrac[MAX_PLAYER_NAME];
- if(sscanf(params, "us[16]", id, razlog)) return SendClientMessage(playerid, 0xFF0000FF, "Losi Parametri");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "Igrac nije online");
- GetPlayerName(playerid, admin, sizeof(admin)); // ime admina
- GetPlayerName(id, igrac, sizeof(igrac)); // ime admina
- BanujIgraca(admin, igrac, razlog);
- return 1;
- }
- cmd:screenshot(playerid, params[])
- {
- new sendquery[64],i;
- if(sscanf(params, "i", i)) return SendClientMessage(playerid, 0xFF0000FF, "Losi Parametri");
- if(!IsPlayerConnected(i)) return SendClientMessage(playerid, 0xFF0000FF, "Igrac nije online");
- format(sendquery, sizeof(sendquery), "server:screenshot");
- socket_sendto_remote_client(g_Socket,PlayerInfo[i][remoteID], sendquery);
- return 1;
- }
- // ostale funkcije
- AntiDeAMX()
- {
- new a[][] =
- {
- "Unarmed (Fist)",
- "Brass K"
- };
- #pragma unused a
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement