[AJUDA] sistema de registro
#1

galera, fiz esse sistema de registro do 0.. ta td ok nele sу que quando vai logar, vc pode errar a senha que loga normalmente, mas a conta salva td ok , o que pode ser?

pawn Код:
#include a_samp
#include SII
#include dudb

#pragma unused ret_memcpy
#define Contas "%s.ini"

new
    arquivo[35],
    nome[MAX_PLAYER_NAME],
    registro[49],
    login[73],
    senha[MAX_PLAYERS]
;

public OnPlayerConnect(playerid)
{
    if(!fexist(arquivo))
    {
        GetPlayerName(playerid,nome,sizeof(nome));
        format(registro,sizeof(registro),"Seja bem-vindo ao servidor %s",nome);
        ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"Registro",registro,"Ok","Sair");
    }
    else
    {
        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
    }
    return 1;
}

       
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        if(!response) return Kick(playerid);
        if(response)
        {
            format(arquivo,sizeof(arquivo),Contas,nome);
            GetPlayerName(playerid,nome,sizeof(nome));
            format(arquivo,sizeof(arquivo),Contas,nome);
            if(!INI_Exist(arquivo))
            {
                INI_Open(arquivo);
                INI_WriteInt("senha",udb_hash(inputtext));
                INI_Save();
                INI_Close();
            }
            else return ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
        }
        if(dialogid == 9998)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
                if(fexist(arquivo))
               {
                    format(arquivo,sizeof(arquivo),Contas,nome);
                    INI_Open(arquivo);
                    senha[playerid] = INI_ReadInt("senha");
                    INI_Close();
                    if(udb_hash(inputtext) != senha[playerid])
                    {
                        SendClientMessage(playerid,-1,"senha errada");
                        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
                        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
                    }
                    else return SendClientMessage(playerid,-1,"logado com sucesso.");
                }
            }
        }
    }
    return 1;
}
o que pode ser?
Reply
#2

Vк se funciona, defini os dialogs no topo, fica mais prбtico. Ele nгo tava getando o nome, pelo que eu vejo
pawn Код:
#include a_samp
#include SII
#include dudb

#pragma unused ret_memcpy
#define Contas "%s.ini"
#define D_LOGIN 9998
#define D_REGISTRO 9999
new
    arquivo[35],
    nome[MAX_PLAYER_NAME],
    registro[49],
    login[73],
    senha[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(!fexist(arquivo))
    {
        GetPlayerName(playerid,nome,sizeof(nome));
        format(registro,sizeof(registro),"Seja bem-vindo ao servidor %s",nome);
        ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_INPUT,"Registro",registro,"Ok","Sair");
    }
    else
    {
        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
        ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    GetPlayerName(playerid,nome,sizeof(nome));
    format(arquivo,sizeof(arquivo),Contas,nome);
    if(dialogid == D_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(response)
        {
            if(!INI_Exist(arquivo))
            {
                INI_Open(arquivo);
                INI_WriteInt("senha",udb_hash(inputtext));
                INI_Save();
                INI_Close();
            }
            else return ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
        }
        if(dialogid == D_LOGIN)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
               if(fexist(arquivo))
               {
                    INI_Open(arquivo);
                    senha[playerid] = INI_ReadInt("senha");
                    INI_Close();
                    if(udb_hash(inputtext) != senha[playerid])
                    {
                        SendClientMessage(playerid,-1,"senha errada");
                        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
                        ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
                    }
                    else return SendClientMessage(playerid,-1,"logado com sucesso.");
                }
            }
        }
    }
    return 1;
}
Reply
#3

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Vк se funciona, defini os dialogs no topo, fica mais prбtico. Ele nгo tava getando o nome, pelo que eu vejo
pawn Код:
#include a_samp
#include SII
#include dudb

#pragma unused ret_memcpy
#define Contas "%s.ini"
#define D_LOGIN 9998
#define D_REGISTRO 9999
new
    arquivo[35],
    nome[MAX_PLAYER_NAME],
    registro[49],
    login[73],
    senha[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(!fexist(arquivo))
    {
        GetPlayerName(playerid,nome,sizeof(nome));
        format(registro,sizeof(registro),"Seja bem-vindo ao servidor %s",nome);
        ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_INPUT,"Registro",registro,"Ok","Sair");
    }
    else
    {
        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
        ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    GetPlayerName(playerid,nome,sizeof(nome));
    format(arquivo,sizeof(arquivo),Contas,nome);
    if(dialogid == D_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(response)
        {
            if(!INI_Exist(arquivo))
            {
                INI_Open(arquivo);
                INI_WriteInt("senha",udb_hash(inputtext));
                INI_Save();
                INI_Close();
            }
            else return ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
        }
        if(dialogid == D_LOGIN)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
               if(fexist(arquivo))
               {
                    INI_Open(arquivo);
                    senha[playerid] = INI_ReadInt("senha");
                    INI_Close();
                    if(udb_hash(inputtext) != senha[playerid])
                    {
                        SendClientMessage(playerid,-1,"senha errada");
                        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
                        ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
                    }
                    else return SendClientMessage(playerid,-1,"logado com sucesso.");
                }
            }
        }
    }
    return 1;
}
testei e nгo funcionou
Reply
#4

desculpa o double, mas alguйm vai me ajudar??
Reply
#5

Me convenзa que isso foi tu que fez. Porque usar dudb й u У -n

Precisa ter Dudb ou posso te fazer outro?
Reply
#6

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Me convenзa que isso foi tu que fez. Porque usar dudb й u У -n

Precisa ter Dudb ou posso te fazer outro?
eu tirei o dudb aki em casa..... ta em strval agr, e eu fiz esse codigo sim...


@edit:

se vc ta duvidando que eu fiz... eu ligo o teamviewer e faзo pra vc ver ^^'
Reply
#7

pawn Код:
#include a_samp
#include SII

#pragma unused ret_memcpy
#define Contas "%s.ini"

new
    arquivo[35],
    nome[MAX_PLAYER_NAME],
    registro[49],
    login[73],
    senha
;

public OnPlayerConnect(playerid)
{
    if(!fexist(arquivo))
    {
        GetPlayerName(playerid,nome,sizeof(nome));
        format(registro,sizeof(registro),"Seja bem-vindo ao servidor %s",nome);
        ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"Registro",registro,"Ok","Sair");
    }
    else
    {
        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        if(!response) return Kick(playerid);
        if(response)
        {
            format(arquivo,sizeof(arquivo),Contas,nome);
            GetPlayerName(playerid,nome,sizeof(nome));
            format(arquivo,sizeof(arquivo),Contas,nome);
            if(!INI_Exist(arquivo))
            {
                INI_Open(arquivo);
                INI_WriteInt("senha",inputtext);
                INI_Save();
                INI_Close();
            }
            else return ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
        }
        if(dialogid == 9998)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
                if(fexist(arquivo))
               {
                    format(arquivo,sizeof(arquivo),Contas,nome);
                    INI_Open(arquivo);
                    senha = INI_ReadInt("senha");
                    INI_Close();
                    if(strcmp(inputtext,senha,true))
                    {
                        SendClientMessage(playerid,-1,"logado com sucesso.");
                    }
                    else
                    {
                        SendClientMessage(playerid,-1,"senha errada");
                        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
                        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
                    }
                }
            }
        }
        return 1;
    }
    return 1;
}
Tente assim hmm'
Reply
#8

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
pawn Код:
#include a_samp
#include SII

#pragma unused ret_memcpy
#define Contas "%s.ini"

new
    arquivo[35],
    nome[MAX_PLAYER_NAME],
    registro[49],
    login[73],
    senha
;

public OnPlayerConnect(playerid)
{
    if(!fexist(arquivo))
    {
        GetPlayerName(playerid,nome,sizeof(nome));
        format(registro,sizeof(registro),"Seja bem-vindo ao servidor %s",nome);
        ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"Registro",registro,"Ok","Sair");
    }
    else
    {
        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        if(!response) return Kick(playerid);
        if(response)
        {
            format(arquivo,sizeof(arquivo),Contas,nome);
            GetPlayerName(playerid,nome,sizeof(nome));
            format(arquivo,sizeof(arquivo),Contas,nome);
            if(!INI_Exist(arquivo))
            {
                INI_Open(arquivo);
                INI_WriteInt("senha",inputtext);
                INI_Save();
                INI_Close();
            }
            else return ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
        }
        if(dialogid == 9998)
        {
            if(!response) return Kick(playerid);
            if(response)
            {
                if(fexist(arquivo))
               {
                    format(arquivo,sizeof(arquivo),Contas,nome);
                    INI_Open(arquivo);
                    senha = INI_ReadInt("senha");
                    INI_Close();
                    if(strcmp(inputtext,senha,true))
                    {
                        SendClientMessage(playerid,-1,"logado com sucesso.");
                    }
                    else
                    {
                        SendClientMessage(playerid,-1,"senha errada");
                        format(login,sizeof(login),"Seja Bem-vindo %s para logar-se digite sua senha.",nome);
                        ShowPlayerDialog(playerid,9998,DIALOG_STYLE_INPUT,"Login",login,"Entrar","Sair");
                    }
                }
            }
        }
        return 1;
    }
    return 1;
}
Tente assim hmm'
deu 6 erros de tag dismatch... ai eu tive que arrumar, mas nao funcionou
Reply
#9

Me explica uma coisa , se quando o player conecta jб verifica se ele й Registrado ou nгo,
porque tu boto 'if(fexist - No dialog? tira isso... '-'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)