Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp // By SA:MP Team
- #include zcmd // By Zeex
- #include sscanf2 // By Y_Less
- #include bini // By Ips Bruno
- native WP_Hash(buffer[], len, const str[]);
- #define DIALOG_REGISTRO 1000
- #define DIALOG_LOGIN 1001
- enum pInfo
- {
- pNome[MAX_PLAYER_NAME],
- pSenha[20],
- pDinheiro,
- pScore,
- pIP[20],
- pAdmin,
- bool:pLogado
- }
- new User[MAX_PLAYERS][pInfo];
- public OnGameModeInit()
- {
- return 1;
- }
- public OnGameModeExit()
- {
- INI_Exit();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- for(new i; pInfo:i < pInfo; i++)
- {
- User[playerid][pInfo:i] = 0;
- }
- if(fexist(PastaContas(playerid)))
- {
- INI_Open(PastaContas(playerid));
- INI_ReadString(PastaContas(playerid), "Senha");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(User[playerid][pLogado] == true)
- {
- INI_WriteInt(PastaContas(playerid), "Dinheiro", User[playerid][pDinheiro]);
- INI_WriteInt(PastaContas(playerid), "Admin", User[playerid][pAdmin]);
- INI_WriteInt(PastaContas(playerid), "Score", User[playerid][pScore]);
- INI_Save();
- }
- for(new i; pInfo:i < pInfo; i++)
- {
- User[playerid][pInfo:i] = 0;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_REGISTRO)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid, -1, "Senha inválida!");
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
- return 1;
- }
- if(strlen(inputtext) < 3 || strlen(inputtext) > 20)
- {
- SendClientMessage(playerid, -1, "Tamanho de senha inválido. Utilize entre 3 - 20");
- ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE REGISTRO", "REGISTRAR","SAIR");
- return 1;
- }
- new
- HASHPASS[129]
- ;
- WP_Hash(HASHPASS, sizeof(HASHPASS), inputtext);
- INI_Create(PastaContas(playerid));
- INI_WriteString(PastaContas(playerid), "Nome", GetName(playerid));
- INI_WriteString(PastaContas(playerid), "Senha", HASHPASS);
- INI_WriteString(PastaContas(playerid), "IP", GetIP(playerid));
- INI_WriteInt(PastaContas(playerid), "Dinheiro", User[playerid][pDinheiro]=0);
- INI_WriteInt(PastaContas(playerid), "Score", User[playerid][pScore]=0);
- INI_WriteInt(PastaContas(playerid), "Admin", User[playerid][pAdmin]=0);
- User[playerid][pLogado] = true;
- SendClientMessage(playerid, -1, "Você se registrou com sucesso no servidor.");
- }
- else
- {
- Kick(playerid);
- }
- }
- /*
- Definimos a resposta do diálogo DIALOG_LOGIN.
- */
- else if(dialogid == DIALOG_LOGIN)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid, -1, "Você errou a senha!");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
- return 1;
- }
- new
- HASHPASS[129]
- ;
- WP_Hash(HASHPASS, sizeof(HASHPASS), inputtext);
- if(strcmp(HASHPASS, INI_ReadString(PastaContas(playerid), "Senha"), false) == 0)
- {
- User[playerid][pDinheiro] = INI_ReadInt(PastaContas(playerid), "Dinheiro");
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, User[playerid][pDinheiro]);
- User[playerid][pAdmin] = INI_ReadInt(PastaContas(playerid), "Admin");
- User[playerid][pScore] = INI_ReadInt(PastaContas(playerid), "Score");
- SetPlayerScore(playerid, User[playerid][pScore]);
- User[playerid][pLogado] = true;
- SendClientMessage(playerid, -1, "Você logou com sucesso!");
- }
- else
- {
- SendClientMessage(playerid, -1, "Você errou a senha!");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "TITULO DA DIALOG", "TEXTO DA DIALOG DE LOGIN", "LOGAR","SAIR");
- }
- }
- else
- {
- Kick(playerid);
- }
- }
- return 1;
- }
- CMD:setdinheiro(playerid, params[])
- {
- new ID, Quantia, String[128];
- if(sscanf(params, "ui", ID, Quantia)) return SendClientMessage(playerid, -1, "/setdinheiro [id] [quantia]");
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, User[playerid][pDinheiro] = Quantia);
- format(String, sizeof(String), "Você setou %i de dinheiro para o player %s", Quantia, GetName(playerid));
- SendClientMessage(playerid, -1, String);
- return 1;
- }
- CMD:mym(playerid, params[])
- {
- new String[128];
- format(String, sizeof(String), "Você setou %i de dinheiro para o player %s", User[playerid][pDinheiro]);
- SendClientMessage(playerid, -1, String);
- return 1;
- }
- CMD:setscore(playerid, params[])
- {
- new ID, Score, String[128];
- if(sscanf(params, "ui", ID, Score)) return SendClientMessage(playerid, -1, "/setscore [id] [score]");
- SetPlayerScore(playerid, User[playerid][pScore] = Score);
- format(String, sizeof(String), "Você setou %i de score para o player %s", Score, GetName(playerid));
- SendClientMessage(playerid, -1, String);
- return 1;
- }
- CMD:setadmin(playerid, params[])
- {
- new ID, Level, String[128];
- if(sscanf(params, "ui", ID, Level)) return SendClientMessage(playerid, -1, "/setadmin [id] [level]");
- User[playerid][pAdmin] = Level;
- format(String, sizeof(String), "Você setou level admin %i para o player %s", Level, GetName(playerid));
- SendClientMessage(playerid, -1, String);
- return 1;
- }
- stock GetName(playerid)
- {
- new Nome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Nome, sizeof(Nome));
- return Nome;
- }
- stock GetIP(playerid)
- {
- new IP[30];
- GetPlayerIp(playerid, IP, sizeof(IP));
- return IP;
- }
- stock PastaContas(playerid)
- {
- new Contas[24];
- format(Contas, sizeof(Contas), "Contas/%s.ini", GetName(playerid));
- return Contas;
- }
Advertisement
Add Comment
Please, Sign In to add comment