24.03.2015, 02:47
Eu fiz esse sistema de registro e quando eu fui testar, as senhas salvavam como 0 e qualquer um poderia entrar com qualquer senha nas contas. Tentei algumas maneiras de resolver mas nгo deu certo e apelei para o Fуrum .
Ele й muito simples e ainda estб incompleto, estou fazendo por partes e preciso resolver esse probleminha que apareceu.
Agradeзo desde jб.
______
pawn Код:
#include <a_samp>
#include <DOF2>
//Sistema de Login
#define DIALOG_LOGIN 0001
#define DIALOG_REGISTRO 0002
#define DIALOG_CHECK 0003
enum
Info
{
Senha,
Dinheiro
};
new pInfo[MAX_PLAYERS][Info];
new Erro[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(DOF2_FileExists(arquivo))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Bem Vindo Novamente.\n Digite Sua Senha Para Efetuar o Login.", "Login", "Sair");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Bem Vindo ao Brasil New Start.\n Digite uma Senha Para Efetuar o Registro.\n A Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(DOF2_FileExists(arquivo))
{
pInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 32);
format(arquivo, 40, "Contas/%s.ini", Nome);
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
Kick(playerid);
}
if(strlen(inputtext) <= 6)
{
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Sua Senha Deve Conter Mais de 6 Caracteres.", "Registrar", "Sair");
}
else
{
pInfo[playerid][Senha] = strval(inputtext);
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Senha", pInfo[playerid][Senha]);
DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][Dinheiro]);
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_CHECK, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "Para Prosseguir, Confirme sua Senha.", "Confirmar", "Cancelar");
}
}
if(dialogid == DIALOG_CHECK)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) != pInfo[playerid][Senha])
{
DOF2_RemoveFile(arquivo);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Sistema de Registro", "A Senhas Digitadas Nгo Correspondem.\n Digite Novamente.", "Registrar", "Sair");
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por Nгo Efetuar o Registro.");
Kick(playerid);
}
if(response)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) == pInfo[playerid][Senha])
{
pInfo[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
SpawnPlayer(playerid);
}
}
if(response)
{
pInfo[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
if(strval(inputtext) != pInfo[playerid][Senha])
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sistema de Login", "Senha Incorreta. Digite sua Senha Corretamente ou Serб Desconectado", "Login", "Sair");
Erro[playerid]++;
if(Erro[playerid] == 3)
{
SendClientMessage(playerid, COR_VERMELHO, "Vocк Foi Desconectado Pelo Servidor por\n Errar Sua Senha 3 Vezes.");
Kick(playerid);
}
}
}
}
return 1;
}
Agradeзo desde jб.
______