25.11.2016, 20:54
(
Последний раз редактировалось Cleyson; 29.11.2016 в 21:18.
)
Quote:
Alguйm me ajuda, tipo eu fiz tudo sу quando o cara vai registrar no minimo й 4 caracteres sу que quando eu boto 3 ou 2 ou 1 ele reabre o registro e criar uma nova conta na database com o mesmo nome e nгo aparece o dialog de login.
|
PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid) // usaremos um switch para as dialogs
{
case DIALOG_REGISTRO:
{
if(!response) return Kick(playerid); // se clicar em cancelar na dialog registro ira kickar o jogador
if(strlen(inputtext) < 4 || strlen(inputtext) > 20) // se a senha tiver menos de 4 ou mais de 20 caracteres ira retornar a dialog
{
new Dialog[240]; // variavel da dialog registro
format(Dialog, sizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s", Nome(playerid), IP(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", Dialog, "Registrar", "Cancelar");
new Query[100]; // variavel com 100 celulas para inserir as informaзхes de registro na tabela
mysql_format(IDConexao, Query, sizeof(Query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')", Nome(playerid), inputtext); // formatamos a query para inserir na tabela do banco de dados
mysql_tquery(IDConexao, Query, "DadosRegistrados", "i", playerid); // fazemos a consulta e enviamos o resultado para a callback DadosRegistrados
// enviamos para a callback DadosRegistrados para fazer uma especia de DEBUG, e tambem para darmos uma ID para a conta no banco de dados
RegistrarDados(playerid); // chamamos a funзгo RegistrarDados para adicionar os valores nas variaveis do player
} else { // se nгo conter entre 4 e 20 caracteres ira retornar ao registro
SendClientMessage(playerid, -1, "ERRO:{FFFFFF} A senha deve conter de 4 a 20 caracteres!");
new Dialog[240]; // variavel da dialog registro
format(Dialog, sizeof(Dialog),"{F8F8FF}Bem Vindo(a) Ao Servidor {058AFF}%s{F8F8FF}\n\nVocк nгo tem uma Conta registrada\n\nDigite uma senha para Registrar\n\nStatus: {058AFF}N/A Registrado{F8F8FF}\n\nIP: {058AFF}%s", Nome(playerid), IP(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", Dialog, "Registrar", "Cancelar");
}
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid); // se clicar em cancelar na dialog login ira kickar o jogador
if(!strcmp(PlayerInfo[playerid][pSenha], inputtext, true, 20)) //comparamos a variavel coma senha do player com a senha digitada
{ // se a comparaзгo for correta vamos realizar a consulta para adicionar os valores contidos na tabela para as variaveis do player.
new Query[70];
mysql_format(IDConexao, Query, sizeof(Query), "SELECT * FROM `Contas` WHERE Nome='%s'", Nome(playerid));
mysql_tquery(IDConexao, Query, "CarregarContas", "d", playerid);
// Formatamos a Query realizamos a consulta e enviamos o resultado para a callback CarregarContas
} else {
// comparaзгo sem sucesso ::
SendClientMessage(playerid, -1, "ERRO:{FFFFFF} Senha incorreta !");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Digite sua senha:", "Digite sua senha abaixo para logar-se", "Logar", "Voltar");
}
}
}
return 1;
}
Tуpico concertado.