02.01.2011, 18:00
To com o samp 0.3c e estou usando um login box, aliais, ja tentei varios, mais todos reniciam o serve quando mando fazer o login ou registrar, sera porque? Se quiser posso colocar o login aqui.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
new nome[MAX_PLAYER_NAME], arquivo[256], string[128];
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), LOCAL_JOGADORES, nome);
if(!response) Kick(playerid);
if(!strlen(inputtext)) return logando(playerid);
dini_Create(arquivo);
dini_IntSet(arquivo, "Senha", udb_hash(inputtext));
dini_IntSet(arquivo, "Dinheiro", Jogador[playerid][pDinheiro] = 100);
dini_IntSet(arquivo, "Skin", Jogador[playerid][pSkin] = 0);
dini_IntSet(arquivo, "Score", Jogador[playerid][pScore] = 0);
format(string, sizeof(string), "Voce foi registrado com sucesso. Usuario: %s. Senha: %s", nome, inputtext);
Jogador[playerid][pSenha] = dini_Int(arquivo, "Senha");
SendClientMessage(playerid, AVISO_COLOR, string);
logado[playerid] = 1;
}
if(dialogid == 2)
{
new nome[MAX_PLAYER_NAME], arquivo[256];
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), LOCAL_JOGADORES, nome);
if(!response) return Kick(playerid);
if(!strlen(inputtext)) return registrando(playerid);
new senha;
senha = dini_Int(arquivo, "Senha");
if(udb_hash(inputtext) != senha)
{
SendClientMessage(playerid, ERRO_COLOR, "[Erro] Vocк errou a senha. Tente novamente! Se voce errar 3 vezes sera kikado.");
senha23[playerid]+= 1;
new string1[128];
format(string1, sizeof string1, "%s \n Tentativa: %i/3 \n Faзa o login:",nome,senha23[playerid]);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string1,"Logar", "Sair");
if(senha23[playerid] == 3)
{
SendClientMessage(playerid, ERRO_COLOR,"[Erro] Voce foi kikado por errar a senha 3 vezes.");
Kick(playerid);
}
}
if(udb_hash(inputtext) == senha)
{
logado[playerid] = 1;
Jogador[playerid][pDinheiro] = dini_Int(arquivo, "Dinheiro");
GivePlayerMoney(playerid, Jogador[playerid][pDinheiro]);
Jogador[playerid][pScore] = dini_Int(arquivo, "Score");
Jogador[playerid][pSkin] = dini_Int(arquivo, "Skin");
SetPlayerSkin(playerid, Jogador[playerid][pSkin]);
Jogador[playerid][pSenha] = dini_Int(arquivo, "Senha");
SendClientMessage(playerid, AVISO_COLOR, "[Aviso] Logado com sucesso!");
}
}
return 1;
}
if(dialogid == 1 && response) // Se for dialog ID 1 e escolher o primeiro botгo.
lol
Vocк tem que usar o response, que й equivalente ao primeiro botгo do dialog. Exemplo: pawn Код:
|
if(dialogid == 1 && response)
{
////////////////////////////////////////////////////////////////////////////////
public logando(playerid)
{
new nome[MAX_PLAYER_NAME], arquivo[256],string1[128];
GetPlayerName(playerid,nome, sizeof(nome));
format(arquivo, sizeof(arquivo), LOCAL_JOGADORES, nome);
format(string1, sizeof string1, "%s \n Faзa o login:",nome);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string1,"Logar", "Sair");
return 1;
}
////////////////////////////////////////////////////////////////////////////////
public registrando(playerid)
{
new nome[MAX_PLAYER_NAME], arquivo[256],string1[128];
GetPlayerName(playerid,nome, sizeof(nome));
format(arquivo, sizeof(arquivo), LOCAL_JOGADORES, nome);
format(string1, sizeof string1, "%s \n Registre-se:",nome);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro",string1,"Registar","Sair");
return 1;
}
////////////////////////////////////////////////////////////////////////////////