Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <fcmd>
- #include <fini>
- #include <sscanf>
- #include <a_mysql>
- //=======================//
- // Sistemas de ficheiros //
- // By: WH_FusioN //
- //=======================//
- // 1 = FINI //
- // 2 = MYSQL //
- //=======================//
- new files = 1; //
- //=======================//
- //OBS: Para usar o sistema de ficheiros MySQL, você tem de ter o MySQL instalado como é obvio e criar a database sa-mp.
- //Não se esqueça de rever as definições de conexao a DB do MySQL, abaixo.
- //Se usar o sistema de ficheiros FINI, você tem de criar a pasta 'Contas' nos scriptfiles.
- new Logado[MAX_PLAYERS];
- new nome[MAX_PLAYER_NAME];
- new fnome[MAX_PLAYER_NAME];
- static fPlayer;
- #define mysql_host "127.0.0.1"
- #define mysql_user "root"
- #define mysql_password ""
- #define mysql_database "sa-mp"
- #define DIALOG_REGISTRO 1
- #define DIALOG_LOGIN 2
- main()
- {
- print("\n----------------------------------");
- print(" GM");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- if(files == 2)
- {
- mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password);
- mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(40),money INT(20), IP VARCHAR(15) )");
- }
- SetGameModeText("GM");
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Logado[playerid] = 0;
- if(files == 1)
- {
- new string[200];
- GetPlayerName(playerid, nome, 24);
- format(string, sizeof(string), "/Contas/%s.ini",nome);
- if(Fini_Exists(string))
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Login","{FFFFFF}O seu nick {FF0000}está{FFFFFF} registrado! Por-favor {0000FF}logue-se{FFFFFF} digitando sua password abaixo!","Logar","Sair");
- return 1;
- }
- if(!Fini_Exists(string))
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Registro","{FFFFFF}O seu nick {FF0000}não{FFFFFF} está registrado! Por-favor {0000FF}registre-se{FFFFFF} digitando uma password abaixo!","Registrar","Sair");
- return 1;
- }
- }
- if(files == 2)
- {
- new query[200];
- GetPlayerName(playerid, nome, 24);
- format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", nome);
- mysql_query(query);
- mysql_store_result();
- new rows = mysql_num_rows();
- if(!rows)
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Registro","{FFFFFF}O seu nick {FF0000}não{FFFFFF} está registrado! Por-favor {0000FF}registre-se{FFFFFF} digitando uma password abaixo!","Registrar","Sair");
- }
- if(rows == 1)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Login","{FFFFFF}O seu nick {FF0000}está{FFFFFF} registrado! Por-favor {0000FF}logue-se{FFFFFF} digitando sua password abaixo!","Logar","Sair");
- }
- mysql_free_result();
- return 1;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(files == 1)
- {
- new string[200];
- GetPlayerName(playerid, nome, 24);
- format(string, sizeof(string), "/Contas/%s.ini",nome);
- if(Fini_Exists(string))
- {
- Fini_OpenFile(string);
- new money = GetPlayerMoney(playerid);
- Fini_SetVal("Dinheiro", money);
- Fini_SaveFile(string);
- Fini_CloseFile();
- printf("[login] %s has logged out.",nome);
- }
- return 1;
- }
- if(files == 2)
- {
- new money = GetPlayerMoney(playerid);
- new query[200];
- GetPlayerName(playerid, nome, 24);
- format(query, sizeof(query), "UPDATE playerdata SET money=%d WHERE user='%s'", money, nome);
- mysql_query(query);
- printf("[login] %s has logged out.",nome);
- return 1;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerScore(playerid, GetPlayerMoney(playerid));
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(!Logado[playerid])
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não pode jogar antes do login/registro! Você foi kickado!");
- Kick(playerid);
- return 0;
- }
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_REGISTRO)
- {
- if(response)
- {
- if(files == 1)
- {
- if(!strlen(inputtext) || strlen(inputtext) > 24)
- {
- SendClientMessage(playerid, -1, "[ERRO] Você tem de digitar uma senha com 1-24 carateres!");
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Registro","{FFFFFF}O seu nick {FF0000}não{FFFFFF} está registrado! Por-favor {0000FF}registre-se{FFFFFF} digitando uma password abaixo!","Registrar","Sair");
- }
- else if(strlen(inputtext) > 0 && strlen(inputtext) < 24)
- {
- OnPlayerRegister(playerid, inputtext);
- }
- return 1;
- }
- if(files == 2)
- {
- if(!strlen(inputtext) || strlen(inputtext) > 24)
- {
- SendClientMessage(playerid, -1, "[ERRO] Você tem de digitar uma senha com 1-24 carateres!");
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "{FFFFFF}Registro","{FFFFFF}O seu nick {FF0000}não{FFFFFF} está registrado! Por-favor {0000FF}registre-se{FFFFFF} digitando uma password abaixo!","Registrar","Sair");
- }
- else if(strlen(inputtext) > 0 && strlen(inputtext) < 24)
- {
- new escpass[100];
- mysql_real_escape_string(inputtext, escpass);
- OnPlayerRegister(playerid, escpass);
- }
- return 1;
- }
- }
- if(!response)
- {
- SendClientMessage(playerid, -1, "* Você saiu do servidor antes de se registrar!");
- Kick(playerid);
- }
- }
- if(dialogid == DIALOG_LOGIN)
- {
- if(response)
- {
- if(files == 1)
- {
- new string[200];
- new tentativas[MAX_PLAYERS];
- GetPlayerName(playerid, nome, 24);
- format(string, sizeof(string), "/Contas/%s.ini",nome);
- printf("[login(debug)] %s carregou 'ok' no dialog LOGIN", nome);
- printf("[login(debug)] %s: verificando se o ficheiro existe", nome);
- //A função PARA aqui, as funçoes abaixo não são executadas porque??
- if(Fini_Exists(string))
- {
- Fini_OpenFile(string);
- printf("[login(debug)] %s: ficheiro aberto", nome);
- printf("[login(debug)] %s: verificando password", nome);
- if(strcmp(inputtext, Fini_GetStr("Password")))
- {
- OnPlayerLogin(playerid);
- printf("[login(debug)] %s escreveu a password certa e foi logado", nome);
- }
- else
- {
- tentativas[playerid] += 1;
- SendClientMessage(playerid, -1, "[ERRO] Password errada!");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Login","{FFFFFF}O seu nick {FF0000}está{FFFFFF} registrado! Por-favor {0000FF}logue-se{FFFFFF} digitando sua password abaixo!","Logar","Sair");
- printf("[login(debug)] %s escreveu a password errada", nome);
- if(tentativas[playerid] == 3)
- {
- SendClientMessage(playerid, -1, "[ERRO] Você errou a password 3 vezes e foi banido pelo IP! :D");
- Ban(playerid);
- }
- }
- Fini_SaveFile(string);
- Fini_CloseFile();
- return 1;
- }
- else
- {
- printf("[login(debug)] %s: erro na verificação do ficheiro", nome);
- }
- return 1;
- }
- if(files == 2)
- {
- new query[200], escapepass[100];
- GetPlayerName(playerid, nome, 24);
- mysql_real_escape_string(inputtext, escapepass);
- format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", nome, escapepass);
- mysql_query(query);
- mysql_store_result();
- new numrows = mysql_num_rows();
- if(!numrows)
- {
- SendClientMessage(playerid, -1, "[ERRO] Password errada!");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "{FFFFFF}Login","{FFFFFF}O seu nick {FF0000}está{FFFFFF} registrado! Por-favor {0000FF}logue-se{FFFFFF} digitando sua password abaixo!","Logar","Sair");
- }
- if(numrows == 1)
- {
- OnPlayerLogin(playerid);
- }
- mysql_free_result();
- return 1;
- }
- }
- if(!response)
- {
- SendClientMessage(playerid, -1, "* Você saiu do servidor antes de se logar!");
- Kick(playerid);
- }
- }
- return 1;
- }
- stock OnPlayerRegister(playerid, password[])
- {
- if(files == 1)
- {
- new string[200];
- GetPlayerName(playerid, nome, 24);
- format(string, sizeof(string), "/Contas/%s.ini",nome);
- if(!Fini_Exists(string))
- {
- Fini_Create(string);
- Fini_OpenFile(string);
- Fini_SetStr("Password", password);
- Fini_SaveFile(string);
- Fini_CloseFile();
- SendClientMessage(playerid, -1, "* O seu nick foi registrado e logado com sucesso!");
- format(string, sizeof(string), "* A sua password é: %s",password);
- SendClientMessage(playerid, -1, string);
- GivePlayerMoney(playerid, 100000);
- SetPlayerScore(playerid, GetPlayerMoney(playerid));
- printf("[register] %s has registered.",nome);
- Logado[playerid] = 1;
- }
- return 1;
- }
- if(files == 2)
- {
- new string[200];
- new query[200], IP[15];
- GetPlayerName(playerid, nome, 24);
- GetPlayerIp(playerid, IP, 15);
- format(query, sizeof(query), "INSERT INTO playerdata (user, password, money, IP) VALUES('%s', '%s', 0, '%s')", nome, password, IP);
- mysql_query(query);
- SendClientMessage(playerid, -1, "* O seu nick foi registrado e logado com sucesso!");
- format(string, sizeof(string), "* A sua password é: %s",password);
- GivePlayerMoney(playerid, 100000);
- SetPlayerScore(playerid, GetPlayerMoney(playerid));
- printf("[register] %s has registered.",nome);
- Logado[playerid] = 1;
- return 1;
- }
- return 1;
- }
- stock OnPlayerLogin(playerid)
- {
- if(files == 1)
- {
- new string[200];
- GetPlayerName(playerid, nome, 24);
- format(string, sizeof(string), "/Contas/%s.ini",nome);
- if(Fini_Exists(string))
- {
- Fini_OpenFile(string);
- GivePlayerMoney(playerid, Fini_GetValue("Dinheiro"));
- Fini_SaveFile(string);
- Fini_CloseFile();
- SetPlayerScore(playerid, GetPlayerMoney(playerid));
- SendClientMessage(playerid, -1, "O seu nick foi logado neste servidor!");
- printf("[login] %s has logged in.",nome);
- Logado[playerid] = 1;
- }
- return 1;
- }
- if(files == 2)
- {
- new query[300], savingstring[20];
- GetPlayerName(playerid, nome, 24);
- format(query, sizeof(query), "SELECT money, FROM playerdata WHERE user = '%s'", nome);
- mysql_query(query);
- mysql_store_result();
- while(mysql_fetch_row_format(query,"|"))
- {
- mysql_fetch_field_row(savingstring, "money"); GivePlayerMoney(playerid, strval(savingstring));
- }
- mysql_free_result();
- SetPlayerScore(playerid, GetPlayerMoney(playerid));
- SendClientMessage(playerid, -1, "O seu nick foi logado neste servidor!");
- printf("[login] %s has logged in.",nome);
- Logado[playerid] = 1;
- return 1;
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- fcmd(kick,playerid)
- {
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não está conetado!");
- new string[64];
- fPlayer = strval(iParams[1]);
- GetPlayerName(playerid,nome,sizeof(nome));
- GetPlayerName(strval(iParams[1]),fnome,sizeof(fnome));
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não é Admin RCON!");
- if(!IsPlayerConnected(fPlayer)) return SendClientMessage(playerid,0xFFFFFFAA,"[ERRO] Player não conetado!");
- format(string,64,"[ADM] O player %s foi kickado pelo admin %s",fnome,nome);
- SendClientMessageToAll(0xFFFFFFAA,string);
- Kick(strval(iParams[1]));
- return true;
- }
- fcmd(ban,playerid)
- {
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não está conetado!");
- new string[64];
- fPlayer = strval(iParams[1]);
- GetPlayerName(playerid,nome,sizeof(nome));
- GetPlayerName(strval(iParams[1]),fnome,sizeof(fnome));
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não é Admin RCON!");
- if(!IsPlayerConnected(fPlayer)) return SendClientMessage(playerid,0xFFFFFFAA,"[ERRO] Player não conetado!");
- format(string,64,"[ADM] O player %s foi banido pelo admin %s",fnome,nome);
- SendClientMessageToAll(0xFFFFFFAA,string);
- Ban(strval(iParams[1]));
- return true;
- }
- fcmd(ajudaadmin,playerid)
- {
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não está conetado!");
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não é Admin RCON!");
- SendClientMessage(playerid, 0xFFFFFFAA, "|__________| Ajuda Admin |__________|");
- SendClientMessage(playerid, 0xFFFFFFAA, "| /kick (ID) |");
- SendClientMessage(playerid, 0xFFFFFFAA, "| /ban (ID) |");
- return true;
- }
- fcmd(stats,playerid)
- {
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não está conetado!");
- new string[64];
- new money = GetPlayerMoney(playerid);
- new score = GetPlayerScore(playerid);
- SendClientMessage(playerid, 0xFFFFFFAA, "|__________| Stats |__________|");
- format(string,64,"Score: %d", score);
- SendClientMessage(playerid, 0xFFFFFFAA, string);
- format(string,64,"Grana: %d", money);
- SendClientMessage(playerid, 0xFFFFFFAA, string);
- return true;
- }
- fcmd(admins,playerid)
- {
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, 0xFFFFFFAA, "[ERRO] Você não está conetado!");
- new string[64];
- SendClientMessage(playerid, 0xFFFFFFAA, "|__________| Admins Online |__________|");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && Logado[i] && IsPlayerAdmin(i))
- {
- GetPlayerName(i, nome, sizeof(nome));
- format(string, 256, "Admin: %s", nome);
- SendClientMessage(playerid, 0xFFFFFFAA, string);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement