Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
- |-----------------------------------------------|
- | Sistema de Registro com liberação via e-mail |
- | ***** Desenvolvido by: [C.D.M]Woozie ***** |
- |-----------------------------------------------|
- |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
- */
- #include <a_samp>
- #define MAILER_URL "urlmailer.comule.com/PagUrl.php"
- #include <mailer>
- #include <DOF2>
- //---------------------------
- #define EMAIL 3
- #define CODIGO 4
- #define REGISTRO 5
- #define LOGIN 6
- #define RECUPERACAO 7
- //---------------------------
- new Erro[MAX_PLAYERS];
- new ErroCode[MAX_PLAYERS];
- #pragma tabsize 4
- #define MAX_EMAIL 10000
- #define STR 50
- new Swears[MAX_EMAIL][STR];
- new num_email = 0;
- new CodigoS[10][2] = {"0","1","2","3","4","5","6","7","8","9"};
- public OnFilterScriptInit()
- {
- new string[STR], File:file;
- if((file = fopen("EmailsCadastrado.ini",io_read)))
- {
- while(fread(file,string))
- {
- for(new i = 0, j = strlen(string); i < j; i++) if(string[i] == '\n' || string[i] == '\r') string[i] = '\0';
- Swears[num_email] = string;
- num_email++;
- }
- fclose(file);
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Erro[playerid] = 0;
- ErroCode[playerid] = 0;
- new string[1500];
- new arquivo[40], Nome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Nome, 32);
- format(arquivo, 40, "Registrados/%s.ini", Nome);
- if(DOF2_FileExists(arquivo))
- {
- format(string, sizeof(string), "{00FF7F}Nome: {FFFFFF}%s\n{00FF7F}Status do Nome: {FFFFFF}Já registrado.\n\n{FFFFFF}Informe sua senha corretamente para logar.", Nome);
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Logar", "Cancelar");
- }
- else
- {
- format(string, sizeof(string),"{FFFFFF}Bem vindo ao Server {6495ED}%s{FFFFFF}\nInforme um e-mail valido para receber um código\nde libeção pra poder registra no server.", Nome);
- ShowPlayerDialog(playerid, EMAIL, DIALOG_STYLE_INPUT,"Registro", string, "Enviar", "");
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256],string[256],idx;
- cmd = strtok(cmdtext, idx);
- if(strcmp(cmd, "/trocaremail", true) == 0)
- {
- new Senha[100];
- Senha = strtok(cmdtext, idx);
- if(!strcmp(Senha,DOF2_GetString(Contas(playerid),"Senha"),false))
- {
- }
- else
- {
- SendClientMessage(playerid, -1, "Senha incorreta!!");
- return 1;
- }
- new length = strlen(cmdtext);
- while ((idx < length) && (cmdtext[idx] <= ' '))
- {
- idx++;
- }
- new offset = idx;
- new menssagem[156];
- while ((idx < length) && ((idx - offset) < (sizeof(menssagem) - 1)))
- {
- menssagem[idx - offset] = cmdtext[idx];
- idx++;
- }
- menssagem[idx - offset] = EOS;
- if(!strlen(menssagem))
- {
- SendClientMessage(playerid, -1, "Uso correto: /trocaremail (senha) (novo e-mail)");
- return 1;
- }
- new arquivo[40], name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, 32);
- format(arquivo, 40, "Registrados/%s.ini", name);
- DOF2_SetString(arquivo,"Email", menssagem);
- DOF2_SaveFile();
- format(string, sizeof(string), "E-mail trocado com sucesso! Novo e-mail da sua conta: %s", menssagem);
- SendClientMessageToAll(-1, string);
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[1500], arquivo[40], Nome[MAX_PLAYER_NAME], endereco[100];
- GetPlayerName(playerid, Nome, 32);
- format(arquivo, 40, "Registrados/%s.ini", Nome);
- format(endereco, 40, "Emails/%s.ini", Nome);
- if(dialogid == EMAIL)
- {
- if(strlen(inputtext) < 5)
- {
- format(string, sizeof(string),"{FFFFFF}Bem vindo ao Server {6495ED}%s{FFFFFF}\nInforme um e-mail valido para receber um código\nde libeção pra poder registra no server.\n{FF0000}E-mail Pequeno demais pra ser valido!!", Nome);
- ShowPlayerDialog(playerid, EMAIL, DIALOG_STYLE_INPUT,"Registro", string, "Enviar", "");
- return 1;
- }
- for(new s = 0; s < num_email; s++)
- {
- if(strcmp(inputtext,Swears[s],false) != -1)
- {
- format(string, sizeof(string),"{FFFFFF}Bem vindo ao Server {6495ED}%s{FFFFFF}\nInforme um e-mail valido para receber um código\nde libeção pra poder registra no server.\n{FF0000}E-mail já cadastrado!! Informe outro.", Nome);
- ShowPlayerDialog(playerid, EMAIL, DIALOG_STYLE_INPUT,"Registro", string, "Enviar", "");
- }
- else
- {
- new Mensagem[300], Codigostrg[5], aleatorio1 = random(sizeof(CodigoS)), aleatorio2 = random(sizeof(CodigoS)), aleatorio3 = random(sizeof(CodigoS)), aleatorio4 = random(sizeof(CodigoS));
- format(Codigostrg, sizeof(Codigostrg), "%s%s%s%s", CodigoS[aleatorio1],CodigoS[aleatorio2],CodigoS[aleatorio3],CodigoS[aleatorio4]);
- DOF2_CreateFile(endereco);
- DOF2_SetString(endereco, "E-mail", inputtext);
- DOF2_SetString(endereco, "Codigo", Codigostrg);
- DOF2_SaveFile();
- format(Mensagem, sizeof(Mensagem),"Código: %s\n\nUse esse código para liberar o registro em nosso Servidor." ,Codigostrg);
- SendMail(DOF2_GetString(Exmail(playerid),"E-mail"), "[email protected]", "Server Sa-mp", "Liberção de Registro", Mensagem);
- ShowPlayerDialog(playerid, CODIGO, DIALOG_STYLE_INPUT, "Registro","{FFFFFF}O codigo de liberção pra se registrar foi enviado para\no e-mail informado, após recebe-lo informe-o abaixo.", "Confirmar", "");
- return 1;
- }
- }
- }
- if(dialogid == CODIGO)
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid, CODIGO, DIALOG_STYLE_INPUT, "Registro","O codigo de liberção pra se registrar foi enviado para\no e-mail informado, após recebe-lo informe-o abaixo.\n{FF0000}Campo em branco!!", "Confirmar", "");
- return 1;
- }
- new CordaCode[196];
- format(CordaCode, sizeof(CordaCode), "%s", inputtext);
- if(!strcmp(CordaCode,DOF2_GetString(Exmail(playerid),"Codigo"),false))
- {
- format(string, sizeof(string), "{00FF7F}Nome: {FFFFFF}%s\n{00FF7F}Status do Nome: {FFFFFF}Não registrado.\n\n{FFFFFF}Informe uma senha para registrar.", Nome);
- ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", string, "Registrar", "Cancelar");
- }
- else
- {
- ErroCode[playerid]++;
- ShowPlayerDialog(playerid, CODIGO, DIALOG_STYLE_INPUT, "Registro","{FFFFFF}O codigo de liberção pra se registrar foi enviado para\no e-mail informado, após recebe-lo informe-o abaixo.\n{FF0000}Codigo incoreto!!", "Confirmar", "");
- }
- if(ErroCode[playerid] == 3)
- {
- ErroCode[playerid] = 0;
- format(endereco, 40, "Emails/%s.ini", Nome);
- new Codigostrg[5], aleatorio1 = random(sizeof(CodigoS)), aleatorio2 = random(sizeof(CodigoS)), aleatorio3 = random(sizeof(CodigoS)), aleatorio4 = random(sizeof(CodigoS));
- format(Codigostrg, sizeof(Codigostrg), "%s%s%s%s", CodigoS[aleatorio1],CodigoS[aleatorio2],CodigoS[aleatorio3],CodigoS[aleatorio4]);
- DOF2_SetString(endereco, "Codigo", Codigostrg);
- DOF2_SaveFile();
- new Mensagem[300];
- format(Mensagem, sizeof(Mensagem),"Novo Código: %s\n\nUse esse código para liberar o registro em nosso Servidor." ,Codigostrg);
- SendMail(DOF2_GetString(Exmail(playerid),"E-mail"), "[email protected]", "Server Sa-mp", "Liberção de Registro", Mensagem);
- ShowPlayerDialog(playerid, CODIGO, DIALOG_STYLE_INPUT, "Registro","{FF0000}Você digitou o Código errado 3 vezes!!\n{FFFFFF}Um novo codigo de liberção pra se registrar foi enviado para\no e-mail informado, após recebe-lo informe-o abaixo.", "Confirmar", "");
- return 1;
- }
- }
- if(dialogid == REGISTRO)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "[info] Você foi kickado por não se registrar.");
- Kick(playerid);
- return 1;
- }
- else
- {
- new CordaSenha[196];
- format(CordaSenha, sizeof(CordaSenha), "%s", inputtext);
- format(string, 256, "%s\r\n" ,DOF2_GetString(Exmail(playerid),"E-mail"));
- ArmazenarEmails(string);
- DOF2_CreateFile(arquivo);
- DOF2_SetString(arquivo, "Senha", CordaSenha);
- DOF2_SetString(arquivo, "E-mail", DOF2_GetString(Exmail(playerid),"E-mail"));
- DOF2_RemoveFile(endereco);
- DOF2_SaveFile();
- format(string, sizeof(string), "{00FF7F}Nome: {FFFFFF}%s\n{00FF7F}Status do Nome: {FFFFFF}Registrado.\n\n{FFFFFF}Informe sua senha corretamente para logar.", Nome);
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Logar", "Cancelar");
- }
- }
- if(dialogid == LOGIN)
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "[info] Você foi kickado por cancelar o login.");
- Kick(playerid);
- }
- else
- {
- new CordaSenha[196];
- format(CordaSenha, sizeof(CordaSenha), "%s", inputtext);
- if(!strcmp(CordaSenha,DOF2_GetString(Contas(playerid),"Senha"),false))
- {
- //
- }
- else
- {
- format(string, sizeof(string), "{00FF7F}Nome: {FFFFFF}%s\n{00FF7F}Status do Nome: {FFFFFF}Já registrado.\n{FF0000}Senha incorreta!\n{FFFFFF}Informe sua senha corretamente para logar.", Nome);
- ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Logar", "Cancelar");
- Erro[playerid]++;
- }
- }
- if(Erro[playerid] == 3)
- {
- new DialogKrayvhus[1500];
- format(string, sizeof(string), "[AVISO] Você errou a senha 3 vezes !!\nAperte em 'Enviar' para Receber um E-mail com a senha da sua conta.");
- strcat(DialogKrayvhus,string);
- ShowPlayerDialog(playerid, RECUPERACAO, DIALOG_STYLE_MSGBOX, "Recuperação de Senha", string, "Enviar", "");
- return 1;
- }
- }
- if(dialogid == RECUPERACAO)
- {
- new Mensagem[300];
- GetPlayerName(playerid, Nome, 32);
- format(Mensagem, sizeof(Mensagem),"Olá %s, esse e-mail foi enviado pra você através do Servidor Sa-mp solicitando a Recuperação de Senha.\n\nSua senha: %s\n\nCaso não tenha feito essa Solicitação, verifique se alguém não está tentando acessar sua conta." ,Nome, DOF2_GetString(Contas(playerid),"Senha"));
- SendMail(DOF2_GetString(Contas(playerid),"E-mail"), "[email protected]", "Servidor Sa-mp", "Recuperação de Senha", Mensagem);
- SendClientMessage(playerid, -1, "[info] Um e-mail com a senha de sua conta foi enviado para o endereço de e-mail cadastrado na mesma.");
- SendClientMessage(playerid, -1, "[info] Se você não encontrar o e-mail, verifique se ele não foi parar na lixeira.");
- SendClientMessage(playerid, -1, "[info] Caso contrario, Contacte o Dono do servidor.");
- Kick(playerid);
- return 1;
- }
- return 1;
- }
- stock Contas(playerid)
- {
- new arquivo[40], name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, 32);
- format(arquivo, 40, "Registrados/%s.ini", name);
- return arquivo;
- }
- stock Exmail(playerid)
- {
- new endereco[40], Nome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Nome, 32);
- format(endereco, 40, "Emails/%s.ini", Nome);
- return endereco;
- }
- stock ArmazenarEmails(const string[])
- {
- new File:HF = fopen("EmailsCadastrado.ini",io_append);
- fwrite(HF, string);
- fclose(HF);
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement