[Ajuda] Problema Sistema de Login.
#1

Boa tarde pessoal, tudo bem com vocкs? Eu estou уtimo.

Estou com problema no meu sistema de Login, se o player clicar em em Logar sem colocar nenhuma senha essa porcaria esta logando.
Como corrigir isso? Esse ai й o meu sistema de Login.
PHP код:
case DIALOG_LOGIN:
        {
            for(new 
a = 0; a < 100; a++)
               {
        
SendClientMessage(playerid, AZUL_CLARO, " -- ");
               }
            if(
response == 0)
            {
                
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!");
                
TogglePlayerSpectating ( playerid, 1 ) ;
                
tentativas[playerid] = 0;
                return 
1;
            }
            if(
response == 1)
            {
                if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0)
                {
                    
SpawnPlayer(playerid);
                    new 
string[120];
                    
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid));
                    
SendClientMessage(playerid, CIANO, string);
                    
TimeContas(playerid);
                }
                else
                {
                    if(
tentativas[playerid] == 2)
                    {
                       new 
string[120];
                       
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1);
                       
SendClientMessage(playerid, 0xFF7171AA, string);
                       
KickP(playerid);
                       return 
1;
                    }
                    else
                    {
                        new 
string[120];
                        
tentativas[playerid]++;
                        
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]);
                        
SendClientMessage(playerid, 0xFF7171AA, string);
                        
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid));
                        
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar");
                        
TogglePlayerSpectating ( playerid, 1 ) ;
                    }
                }
                
TogglePlayerSpectating ( playerid, 1 ) ;
                return 
1;
            }
        } 
Desde jб agradeзo a todos.
Fiquem com Deus, um forte abraзo.

Atenciosamente,
Matheus Dorado
Reply
#2

Tente assim:

PHP код:
case DIALOG_LOGIN: 
{ 
    for(new 
a = 0; a < 100; a++){ SendClientMessage(playerid, AZUL_CLARO, " -- "); }
    if(!
response) 
    { 
        
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!"); 
        
TogglePlayerSpectating ( playerid, 1 ) ; 
        
tentativas[playerid] = 0;                 
        return 
1; 
    } 
    else 
    { 
        if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0) 
        { 
            
SpawnPlayer(playerid); 
            new 
string[120]; 
            
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid)); 
            
SendClientMessage(playerid, CIANO, string); 
            
TimeContas(playerid); 
        } 
        else 
        { 
            if(
tentativas[playerid] >= 2) 
            { 
                new 
string[120]; 
                
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
KickP(playerid); 
            }             
            else 
            { 
                new 
string[120]; 
                
tentativas[playerid]++; 
                
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid)); 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar"); 
                
TogglePlayerSpectating ( playerid, 1 ) ; 
            } 
        }                 
    } 
} 
Reply
#3

Isso acontece porque vocк nгo verificou se foi ou nгo digitado algo.
Use strlen que retorna a quantidade de caracteres de uma string.
Reply
#4

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
Tente assim:

PHP код:
case DIALOG_LOGIN: 
{ 
    for(new 
a = 0; a < 100; a++){ SendClientMessage(playerid, AZUL_CLARO, " -- "); }
    if(!
response) 
    { 
        
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!"); 
        
TogglePlayerSpectating ( playerid, 1 ) ; 
        
tentativas[playerid] = 0;                 
        return 
1; 
    } 
    else 
    { 
        if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0) 
        { 
            
SpawnPlayer(playerid); 
            new 
string[120]; 
            
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid)); 
            
SendClientMessage(playerid, CIANO, string); 
            
TimeContas(playerid); 
        } 
        else 
        { 
            if(
tentativas[playerid] >= 2) 
            { 
                new 
string[120]; 
                
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
KickP(playerid); 
            }             
            else 
            { 
                new 
string[120]; 
                
tentativas[playerid]++; 
                
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid)); 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar"); 
                
TogglePlayerSpectating ( playerid, 1 ) ; 
            } 
        }                 
    } 
} 
Nгo funcionou irmгo :/
Reply
#5

Quote:
Originally Posted by Whoo
Посмотреть сообщение
Isso acontece porque vocк nгo verificou se foi ou nгo digitado algo.
Use strlen que retorna a quantidade de caracteres de uma string.
Coloquei o strlen no lugar do strcmp e agora apareceu essas mensagens.
PHP код:
number of arguments does not match definition 
Qual й os argumentos necessarios para usar strlen?

Vlw desde jб pela forзa irmao!
Reply
#6

PHP код:
case DIALOG_LOGIN: 
{ 
    for(new 
a = 0; a < 100; a++){ SendClientMessage(playerid, AZUL_CLARO, " -- "); }
    if(!
response) 
    { 
        
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!"); 
        
TogglePlayerSpectating ( playerid, 1 ) ; 
        
tentativas[playerid] = 0;                 
        return 
1; 
    } 
    else 
    { 
        if(
strlen(inputtext) < 5 || strlen(inputtext) > 20) return 1;
        if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0) 
        { 
            
SpawnPlayer(playerid); 
            new 
string[120]; 
            
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid)); 
            
SendClientMessage(playerid, CIANO, string); 
            
TimeContas(playerid); 
        } 
        else 
        { 
            if(
tentativas[playerid] >= 2) 
            { 
                new 
string[120]; 
                
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
KickP(playerid); 
            }             
            else 
            { 
                new 
string[120]; 
                
tentativas[playerid]++; 
                
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid)); 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar"); 
                
TogglePlayerSpectating ( playerid, 1 ) ; 
            } 
        }                 
    } 
} 
Reply
#7

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
PHP код:
case DIALOG_LOGIN: 
{ 
    for(new 
a = 0; a < 100; a++){ SendClientMessage(playerid, AZUL_CLARO, " -- "); }
    if(!
response) 
    { 
        
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!"); 
        
TogglePlayerSpectating ( playerid, 1 ) ; 
        
tentativas[playerid] = 0;                 
        return 
1; 
    } 
    else 
    { 
        if(
strlen(inputtext) < 5 || strlen(inputtext) > 20) return 1;
        if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0) 
        { 
            
SpawnPlayer(playerid); 
            new 
string[120]; 
            
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid)); 
            
SendClientMessage(playerid, CIANO, string); 
            
TimeContas(playerid); 
        } 
        else 
        { 
            if(
tentativas[playerid] >= 2) 
            { 
                new 
string[120]; 
                
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
KickP(playerid); 
            }             
            else 
            { 
                new 
string[120]; 
                
tentativas[playerid]++; 
                
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid)); 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar"); 
                
TogglePlayerSpectating ( playerid, 1 ) ; 
            } 
        }                 
    } 
} 
Colocar um SendClientMessage nesse return й bom pra avisar que o player errou a senha, ou seja:

PHP код:
if(strlen(inputtext) < 5 || strlen(inputtext) > 20) return SendClientMessage(playerid, -1, "Vocк nгo digtitou uma senha correta."); 
Reply
#8

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
PHP код:
case DIALOG_LOGIN: 
{ 
    for(new 
a = 0; a < 100; a++){ SendClientMessage(playerid, AZUL_CLARO, " -- "); }
    if(!
response) 
    { 
        
SendClientMessage(playerid, CINZA, "SERVER: Que pena que vocк saiu, caso queira fazer seu Login novamente, digite /logar, ou /quit para sair!"); 
        
TogglePlayerSpectating ( playerid, 1 ) ; 
        
tentativas[playerid] = 0;                 
        return 
1; 
    } 
    else 
    { 
        if(
strlen(inputtext) < 5 || strlen(inputtext) > 20) return 1;
        if(
strcmp(inputtext, DOF2_GetString(OnPlayerAccount(playerid), "Senha"), true) == 0) 
        { 
            
SpawnPlayer(playerid); 
            new 
string[120]; 
            
format(string, sizeof(string), "[SERVER] Olб %s Seja Bem Vindo Novamente ao Brasil HardForever!", PlayerName(playerid)); 
            
SendClientMessage(playerid, CIANO, string); 
            
TimeContas(playerid); 
        } 
        else 
        { 
            if(
tentativas[playerid] >= 2) 
            { 
                new 
string[120]; 
                
format(string, sizeof(string), "[SERVER] O(A) Player %s foi kickado por excedor o limite de (%d) tentativas de Login!", PlayerName(playerid), tentativas[playerid]+1); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
KickP(playerid); 
            }             
            else 
            { 
                new 
string[120]; 
                
tentativas[playerid]++; 
                
format(string, sizeof(string), "[SERVER] ATENCAO! SENHA INCORRETA! Tentativas [%d/3]", tentativas[playerid]); 
                
SendClientMessage(playerid, 0xFF7171AA, string); 
                
format(string, sizeof(string), "Bem Vindo Novamente %s ! \n\nPor favor digite sua senha!\n{FFFFFF}IP: {3AE21D}%s", PlayerName(playerid), PlayerIp(playerid)); 
                
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Fazendo seu Login", string,"Logar-se", "Cancelar"); 
                
TogglePlayerSpectating ( playerid, 1 ) ; 
            } 
        }                 
    } 
} 
Vlllllw rapaziada, agora deu certinhooo.
TMJ

so mudei uma paradinha aqui se ele clicar em Logar sem senha sumia a dialog de login, dai agora aparece, do mais ta tudo certo valllllewww!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)