[Ajuda] Dificuldade com verificaзгo de senha (Sistema de Registro)
#1

galera oque tem de errado apontem os erro pra mim nгo estou conseguindo fazer...
registra quando vem a dialog pedindo para logar coloco qualquer senha e vai.. :/

pawn Код:
new

    Arquivo[128],
    Administrador[MAX_PLAYERS],
    Nome[MAX_PLAYER_NAME],
    Skin[MAX_PLAYERS],
    Level[MAX_PLAYERS],
    PlayerIP[MAX_PLAYERS],
    PlayerERRO[MAX_PLAYERS],
    Morreu[MAX_PLAYERS],
    Matou[MAX_PLAYERS]
;
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    new STR[128];
    GetPlayerName( playerid, Nome, sizeof( Nome ) );
    GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
    format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
   
    if( DOF2_FileExists( Arquivo ) )
    {
        format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
        ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
    }else{
        format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor  %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
        ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
    }
   
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{

    GetPlayerName( playerid, Nome, sizeof( Nome ) );
    format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
    if(DOF2_FileExists(Arquivo))
    {
        DOF2_SetInt(Arquivo, "Administrador", Administrador[playerid]);
        DOF2_SetInt(Arquivo, "Level", Level[playerid]);
        Skin[playerid] = GetPlayerSkin(playerid);
        DOF2_SetInt(Arquivo, "Dinheiro", GetPlayerMoney(playerid));
        DOF2_SetInt(Arquivo, "Matou", Matou[playerid]);
        DOF2_SetInt(Arquivo, "Morreu", Morreu[playerid]);
        DOF2_SaveFile();
    }
   
    return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {

        new STR[128];
        GetPlayerName( playerid, Nome, sizeof( Nome ) );
        GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
        format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );

        if(response)
        {

            if( strlen ( inputtext ) < 4 || strlen ( inputtext ) > 16 && !strlen( inputtext ) )
            {


                SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo sua Senha tem que ter no Minimo 4 Caracteres e no Mбximo 16 Caracteres.");
                format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor  %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
                return 1;

                }else{
                DOF2_CreateFile( Arquivo );
                DOF2_SetString( Arquivo, "Senha", inputtext );
                DOF2_SetInt( Arquivo, "Administrador", 0 );
                DOF2_SetInt( Arquivo, "Level", 0 );
                DOF2_SetInt( Arquivo, "Dinheiro", 250 );
                DOF2_SetInt( Arquivo, "Skin", 0 );
                DOF2_SetInt( Arquivo, "Matou", 0 );
                DOF2_SetInt( Arquivo, "Morreu", 0 );
                DOF2_SaveFile();

                format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк Acaba de se  Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                return 1;
                }
               
            }else{
            format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
            SendClientMessageToAll( COR_ADMIN, STR );
        }
    }
    if(dialogid == DIALOG_LOGIN)
    {

        new STR[128];
        if(response)
        {

            if( !strlen ( inputtext ) )
            {

                SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
                format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                return 1;
            }

            if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
            {


                GetPlayerName( playerid, Nome, sizeof( Nome ) );
                format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
                Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
                Level[playerid] = DOF2_GetInt( Arquivo, "Level");
                GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
                Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
                Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
                Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
                DOF2_SaveFile();
                return 1;
            }else{
                PlayerERRO[playerid]+=1;
                if(PlayerERRO[playerid] == 3 )
                {
                    format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
                    SendClientMessageToAll( COR_ADMIN, STR );
                    Kick(playerid);
                }   return 1;
            }

        }else{
            format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
            SendClientMessageToAll( COR_ADMIN, STR );
            return 1;
        }
    }
   return 1;
}
Reply
#2

Analisando rбpido seu code.. se funcionar eu explico o motivo

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {

        new STR[128];
        GetPlayerName( playerid, Nome, sizeof( Nome ) );
        GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
        format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );

        if(response)
        {

            if( strlen ( inputtext ) < 4 || strlen ( inputtext ) > 16 && !strlen( inputtext ) )
            {


                SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo sua Senha tem que ter no Minimo 4 Caracteres e no Mбximo 16 Caracteres.");
                format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor  %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
                return 1;

                }else{
                DOF2_CreateFile( Arquivo );
                DOF2_SetString( Arquivo, "Senha", inputtext );
                DOF2_SetInt( Arquivo, "Administrador", 0 );
                DOF2_SetInt( Arquivo, "Level", 0 );
                DOF2_SetInt( Arquivo, "Dinheiro", 250 );
                DOF2_SetInt( Arquivo, "Skin", 0 );
                DOF2_SetInt( Arquivo, "Matou", 0 );
                DOF2_SetInt( Arquivo, "Morreu", 0 );
                DOF2_SaveFile();

                format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк Acaba de se  Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                return 1;
                }
               
            }else{
            format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
            SendClientMessageToAll( COR_ADMIN, STR );
        }
    }
    if(dialogid == DIALOG_LOGIN)
    {

        new STR[128];
        if(response)
        {

            if( !strlen ( inputtext ) )
            {

                SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
                format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                return 1;
            }
            GetPlayerName( playerid, Nome, sizeof( Nome ) );
            format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
            if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
            {
                Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
                Level[playerid] = DOF2_GetInt( Arquivo, "Level");
                GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
                Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
                Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
                Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
                DOF2_SaveFile();
                return 1;
            }else{
                PlayerERRO[playerid]+=1;
                if(PlayerERRO[playerid] == 3 )
                {
                    format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
                    SendClientMessageToAll( COR_ADMIN, STR );
                    Kick(playerid);
                }   return 1;
            }

        }else{
            format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
            SendClientMessageToAll( COR_ADMIN, STR );
            return 1;
        }
    }
   return 1;
}
Reply
#3

Olб Jonathan, eu registro ai vem a dialog para logar escrevo qualquer senha nгo retorna a mensagem nem a dialog dizendo que esta errado ainda sabe oque pode estar errado? ja use o codigo a cima deu a mesma coisa Obrigado.
Reply
#4

O servidor desliga? ou fica apenas paradгo?
Estб carregando as informaзхes dos players quando o mesmo conecta?
Reply
#5

Registrar vai normal mas na hora de logar nгo loga nгo spawna se colocar qualquer senha nгo retorna a dialog.

eu digito uma senha qualquer e some fica igual quando conecta sem sistema e so clicar em spawn

pawn Код:
if(dialogid == DIALOG_LOGIN)
        {

            new STR[128];
            if(response)
            {

                if( !strlen ( inputtext ) )
                {

                    SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
                    format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                    ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                    return 1;
                }
                GetPlayerName( playerid, Nome, sizeof( Nome ) );
                format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
                if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
                {
                       // Aqui Esta Carregando o Player
                    Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
                    Level[playerid] = DOF2_GetInt( Arquivo, "Level");
                    GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
                    Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
                    Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
                    Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
                    DOF2_SaveFile();
                    SpawnPlayer(playerid);
                    DOF2_SaveFile();
                    return 1;
                }else{
                    PlayerERRO[playerid]+=1;
                    if(PlayerERRO[playerid] == 3 )
                    {
                        format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
                        SendClientMessageToAll( COR_ADMIN, STR );
                        Kick(playerid);
                    }   return 1;
                }

            }else{
                format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
                SendClientMessageToAll( COR_ADMIN, STR );
                return 1;
            }
        }
    }
Reply
#6

#edit
pawn Код:
if(dialogid == DIALOG_LOGIN)
        {

            new STR[128];
            if(response)
            {

                if( !strlen ( inputtext ) )
                {

                    SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
                    format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                    ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                    return 1;
                }
                GetPlayerName( playerid, Nome, sizeof( Nome ) );
                format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
                if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
                {
                       // Aqui Esta Carregando o Player
                    Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
                    Level[playerid] = DOF2_GetInt( Arquivo, "Level");
                    GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
                    Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
                    Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
                    Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
                    DOF2_SaveFile();
                    SpawnPlayer(playerid);
                    DOF2_SaveFile();
                    return 1;
                }else{
                      // BOTA PARA CHAMAR O DIALOG LOGIN AQUI
                    format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ERROU SUA SENHA!! 3x vocк serб kickado\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
                    ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
                    // ==================
                    PlayerERRO[playerid]+=1;
                    if(PlayerERRO[playerid] == 3 )
                    {
                        format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
                        SendClientMessageToAll( COR_ADMIN, STR );
                        Kick(playerid);
                    }   return 1;
                }

            }else{
                format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
                SendClientMessageToAll( COR_ADMIN, STR );
                return 1;
            }
        }
    }
Estou corrigindo uma prova, estб ai a soluзгo IIpart exata.
Reply
#7

Caramba Era isso msm Eu tinha feito este sistema umas 3 vezes e nada

Obrigado Jonathan vlw pela paciкncia +REP
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)