DOF2 Login nгo funcionando! -
Rodox_Mortein - 31.12.2014
Eu juntei o criador de organizaзхes do Rhayziin
http://forum.sa-mp.com/showthread.ph...rganiza%E7%E3o
Com o que eu aprendi do Tutorial do EditPawn
https://sampforum.blast.hk/showthread.php?tid=350855
Montando Organizaзхes e salvando para um servidor de TDM com Registro e Login... Sу que esta dando um problema na hora de colocar a senha... ela parece nгo estar sendo salva... eu registro e na hora de logar nгo funciona... dai eu chequei o Scriptfiles e no Arquivo da conta a senha esta como Senha= 0...
pawn Код:
enum Informacoes //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
{
Senha,
Matou,
Morreu,
Dinheiro,
Organizacao,
Cargo
}
new Player[MAX_PLAYERS][Informacoes]; //Criamos a varнavel que amarzenarб os Dados do player
new Erro[MAX_PLAYERS];// erro no Log In!
#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
Player[playerid][Senha] = strval(inputtext);
SalvarContas(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
}
}
if(dialogid == DIALOG_LOGAR)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == Player[playerid][Senha])
{
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
Player[playerid][Organizacao] = DOF2_GetInt(Contas(playerid), "Organizacao");
Player[playerid][Cargo] = DOF2_GetInt(Contas(playerid), "Cargo");
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
Kick(playerid);
return 1;
}
}
}
}
pawn Код:
stock Contas(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, 32);
format(arquivo, 40, "Contas/%s", name);
return arquivo;
}
stock SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(Contas(playerid), "Organizacao", Player[playerid][Organizacao]); //Setamos o valor de "Player[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(Contas(playerid), "Cargo", Player[playerid][Cargo]); //Setamos o valor de "Player[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
DOF2_SaveFile();
}
return 1;
}
A parte que esta com problemas deve estar por ai... jб revirei isso tudo e nгo consegui enxergar o meu erro
Re: DOF2 Login nгo funcionando! -
Rodox_Mortein - 31.12.2014
Faltou eu postar alguma coisa pra vcs me ajudarem??
Re: DOF2 Login nгo funcionando! -
Skun Fly - 31.12.2014
Com dof2 eu aconselho usar as funзoes DOF2_CreateFile(file, inputtext) e DOF2_CheckLogin(file, inputtext)
Re: DOF2 Login nгo funcionando! -
Gii - 31.12.2014
pawn Код:
enum Informacoes //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
{
Senha[24],
Matou,
Morreu,
Dinheiro,
Organizacao,
Cargo
};
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
if ( dialogid == DIALOG_REGISTRO ) {
if( !strval(inputtext) )
return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
if ( !response )
return Kick(playerid);
else {
format(Player[playerid][Senha], 24, inputtext);
SalvarContas(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
}
}
if ( dialogid == DIALOG_LOGAR ) {
if ( !strval(inputtext) )
return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if ( !response )
return Kick(playerid);
else {
new dir[24];
format(dir, 24, Contas(playerid));
format(Player[playerid][Senha],24, DOF2_GetString(dir, "Senha"));
if ( !strcmp(inputtext, Player[playerid][Senha]) ) {
Player[playerid][Matou] = DOF2_GetInt(dir, "Matou");
Player[playerid][Morreu] = DOF2_GetInt(dir, "Morreu");
Player[playerid][Dinheiro] = DOF2_GetInt(dir, "Dinheiro");
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
Player[playerid][Organizacao] = DOF2_GetInt(dir, "Organizacao");
Player[playerid][Cargo] = DOF2_GetInt(dir, "Cargo");
}
else {
Erro[playerid]++;
if ( Erro[playerid] == 5 ) {
SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
Kick(playerid);
return 1;
}
else {
return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
}
}
}
}
return 1;
}
stock SalvarContas(playerid) {
new dir[24];
format(dir, 24, Contas(playerid));
if ( !DOF2_FileExists(dir ) )
DOF2_CreateFile(dir);
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetString(dir, "Senha", Player[playerid][Senha]);
DOF2_SetInt(dir, "Matou", Player[playerid][Matou]);
DOF2_SetInt(dir, "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(dir, "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(dir, "Organizacao", Player[playerid][Organizacao]); //Setamos o valor de "Player[playerid][Organizacao]" no "arquivo", com a TAG "Organizaзгo"
DOF2_SetInt(dir, "Cargo", Player[playerid][Cargo]); //Setamos o valor de "Player[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
DOF2_SaveFile();
return 1;
}
Lembrando que:
A funзгo strval, converte uma string para um inteiro.
A funзгo strlen devolve o tamanho de uma string.
E a funзгo strcmp compara duas strings.
https://sampwiki.blast.hk/wiki/Strval
https://sampwiki.blast.hk/wiki/Strlen
https://sampwiki.blast.hk/wiki/Strcmp