02.04.2016, 11:46
Sei q n pediu, mas eu recomendo usar esta forma mais otimizada e foi removido coisas desnecessбrias e removi o erro da condicional da senha.
Denada
Denada
PHP код:
#include a_samp
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, MAX_PLAYER_NAME);
format(arquivo, 40, "contas/%s.ini", nome);
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
return Kick(playerid);
else
{
if(strlen(inputtext) < 3 || strlen(inputtext) > 20)
return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Registro", "Vocк digitou sua muito curta ou comprida!\nTente uma entre 3 e 20 caracteres!", "Confirma", "Cancelar");
else
{
DOF2_CreateFile(arquivo);
DOF2_SetString(arquivo, "senha", inputtext);
DOF2_SetInt(arquivo, "morreu", Player[playerid][morreu]);
DOF2_SetInt(arquivo, "matou", Player[playerid][matou]);
DOF2_SetInt(arquivo, "dinheiro", Player[playerid][dinheiro]);
DOF2_SetInt(arquivo, "level", Player[playerid][level]);
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Cadastro realizado com sucesso! Por favor, faзa login", "Confirma", "Cancela");
}
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
return Kick(playerid);
else
{
if(strcmp((DOF2_GetString(arquivo, "senha"), inputtext, true) == 0) // se a senha estiver correta
{
Player[playerid][morreu] = DOF2_GetInt(arquivo, "morreu");
Player[playerid][matou] = DOF2_GetInt(arquivo, "matou");
Player[playerid][dinheiro] = DOF2_GetInt(arquivo, "dinheiro");
Player[playerid][level] = DOF2_GetInt(arquivo, "level");
GivePlayerMoney(playerid, Player[playerid][dinheiro]);
SetPlayerScore(playerid, Player[playerid][level]);
}
else //se a senha estiver errada
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes vocк serб kickado!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
return SendClientMessage(playerid, 0xFF0000FF, "Vocк foi kickado por errar 5 vezes a sua senha!"),
Kick(playerid);
}
}
}
return 1;
}