Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #define DIALOG_LOGIN 1
- #define DIALOG_REGISTRO 2
- #define MYSQL_USER "root"
- #define MYSQL_HOST "127.0.0.1"
- #define MYSQL_DB ""
- #define MYSQL_SENHA ""
- new mysql,
- ErrouASenha[MAX_PLAYERS]
- ;
- enum Player {
- Senha,
- Admin,
- bool:Logado
- }
- new PlayerInfo[MAX_PLAYERS][Player];
- // Tabela a ser criada: contas
- // Valores: Nome,Senha,Admin
- //------------------------------------------------------------------------------
- public OnGameModeInit() {
- mysql = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_DB,MYSQL_SENHA);
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnPlayerConnect(playerid) {
- if(PlayerInfo[playerid][Logado] == false) {
- new lol[69];
- format(lol, sizeof(lol),"SELECT * FROM contas WHERE Nome = '%s'",nome(playerid));
- mysql_query(mysql, lol);
- mysql_store_result();
- if(mysql_num_rows() != 0) {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Conectando","Essa conta já é registrada.\n\nDigite a senha para entrar","Entrar","Sair");
- }
- else {
- ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_PASSWORD,"Registrando","Essa conta ainda não é registrada.\n\nDigite uma senha para se registrar","Registrar","Sair");
- }
- mysql_free_result();
- }
- else {
- PlayerInfo[playerid][Logado] = true;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason) {
- if(PlayerInfo[playerid][Logado] == true) {
- SalvarConta(playerid);
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- if(dialogid == DIALOG_REGISTRO) {
- if(!response) {
- SendClientMessage(playerid,-1,"Você foi kickado por cancelar o registro.");
- Kick(playerid);
- }
- else {
- new str[256];
- format(str, sizeof(str),"INSERT INTO contas (Nome,Senha,Admin) VALUES ('%s',sha1('%s'),'0')",nome(playerid),inputtext,PlayerInfo[playerid][Admin]);
- mysql_query(mysql, str);
- mysql_store_result();
- PlayerInfo[playerid][Logado] = true;
- }
- }
- if(dialogid == DIALOG_LOGIN) {
- if(response) {
- new str[256];
- format(str, sizeof(str),"SELECT * FROM contas WHERE Nome = '%s' AND Senha = sha1('%s')",nome(playerid),inputtext);
- mysql_query(mysql, str);
- mysql_store_result();
- if(mysql_num_rows() == 0) {
- ErrouASenha[playerid] ++;
- if(ErrouASenha[playerid] == 5) {
- SendClientMessage(playerid,-1,"você foi kickado por errar a senha 5 vezes.");
- Kick(playerid);
- return 0;
- }
- return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Conectando","Ops, Senha Incorreta!\n\nDigite a senha certa para entrar:\n\n","Entrar","Sair");
- }
- else if(mysql_num_rows() > 0) {
- CarregarConta(playerid);
- PlayerInfo[playerid][Logado] = true;
- }
- mysql_free_result();
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- SalvarConta(playerid) {
- new arquivo[256];
- format(arquivo,sizeof(arquivo),"UPDATE contas SET Admin = %d HERE Nome = '%s'",
- PlayerInfo[playerid][Admin],
- nome(playerid));
- mysql_query(mysql, arquivo);
- return 1;
- }
- CarregarConta(playerid) {
- new arquivo[256],savingstring[256];
- format(arquivo,sizeof(arquivo),"SELECT * FROM contas WHERE Nome = '%s'",nome(playerid));
- mysql_query(mysql, arquivo);
- mysql_store_result();
- while(mysql_fetch_row_format(arquivo,"|")) {
- mysql_fetch_field_row(savingstring, "Nome"); nome(playerid);
- mysql_fetch_field_row(savingstring, "Admin"); PlayerInfo[playerid][Admin] = strval(savingstring);
- }
- mysql_free_result();
- return 1;
- }
- nome(playerid) {
- new Name[MAX_PLAYERS];
- GetPlayerName(playerid,Name,sizeof(Name));
- return Name;
- }
- //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment