15/10/2024 18:55
(Esta mensagem foi modificada pela última vez a: 18/10/2024 02:33 por xbruno1000x.)
ola pessoa queria saber porq meu sistema de registro e login nao ta funcionando
quando o playerconecta aparece a dialog de registrar caso ele nao seja registrado ai se eu aperta na dialog sem nem precisar colocar senha ou nada so no fato de apertar ela some assim fazendo que eu nao consiga me registrar , a mesma coisa e na hora de logar a dialog aparece mas mesmo sem colocar senhar so no fato de apertar nela ela some fazendo assim o player nao poder logar para spawnar
estou quebrando a cabeca pois estou me esforcando no pawn para criar minha propia gm mas ta dificl nisso
quando o playerconecta aparece a dialog de registrar caso ele nao seja registrado ai se eu aperta na dialog sem nem precisar colocar senha ou nada so no fato de apertar ela some assim fazendo que eu nao consiga me registrar , a mesma coisa e na hora de logar a dialog aparece mas mesmo sem colocar senhar so no fato de apertar nela ela some fazendo assim o player nao poder logar para spawnar
estou quebrando a cabeca pois estou me esforcando no pawn para criar minha propia gm mas ta dificl nisso
Código:
#define DIALOG_REGISTER 1000
#define DIALOG_LOGIN 1001
new Logged[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME], file[200];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "\\users\\%s.ini", name);
if (!dini_Exists(file))
{
// Se não existe, mostra o diálogo de registro
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Por favor, insira uma senha para se registrar:", "Registrar", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Por favor, insira sua senha:", "Logar", "Cancelar");
}
Logged[playerid] = 0; // Inicializa como não logado
return 1;
}
forward OnPlayerDialogResponse(playerid, dialogid, response, input[]);
public OnPlayerDialogResponse(playerid, dialogid, response, input[])
{
if (response == 1)
{
new name[MAX_PLAYER_NAME], file[200];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "\\users\\%s.ini", name);
if (dialogid == DIALOG_REGISTER)
{
if (strlen(input) == 0)
{
SendClientMessage(playerid, vermelho, "Você precisa colocar uma senha para se registrar!");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Por favor, insira uma senha para se registrar:", "Registrar", "Cancelar");
return 1;
}
if (strlen(input) < 4)
{
SendClientMessage(playerid, vermelho, "A senha deve ter no mínimo 4 caracteres.");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Por favor, insira uma senha para se registrar:", "Registrar", "Cancelar");
return 1;
}
dini_Create(file);
dini_IntSet(file, "password", adler32_hash(input));
dini_IntSet(file, "cash", 0);
dini_IntSet(file, "score", 0);
SendClientMessage(playerid, amarelo, "Você foi registrado com sucesso!");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Por favor, insira sua senha:", "Logar", "Cancelar");
return 1;
}
else if (dialogid == DIALOG_LOGIN)
{
if (!dini_Exists(file))
{
SendClientMessage(playerid, vermelho, "O arquivo de usuário não foi encontrado. Por favor, registre-se.");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Por favor, insira uma senha para se registrar:", "Registrar", "Cancelar");
return 1;
}
if (adler32_hash(input) != dini_Int(file, "password"))
{
SendClientMessage(playerid, vermelho, "Senha incorreta! Tente novamente.");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Senha incorreta! Por favor, tente novamente:", "Logar", "Cancelar");
return 1;
}
Logged[playerid] = 1;
GivePlayerMoney(playerid, dini_Int(file, "cash"));
SetPlayerScore(playerid, dini_Int(file, "score"));
SendClientMessage(playerid, amarelo, "Você está logado com sucesso!");
return 1;
}
}
else if (response == 0)
{
SendClientMessage(playerid, vermelho, "Operação cancelada.");
return 1;
}
return 1;
}