Portal SAMP
[Ajuda] erro no login - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] erro no login (/showthread.php?tid=2096)



erro no login - fear - 13/02/2022

boa tarde. estou criando o login e registro novamente do servidor.. porém de uma forma diferente mas esta dando esse erro pode ser alguma chave??

codigo
Código PHP:
forward p_PlayerLogin(playeridpass[]);
public 
p_PlayerLogin(playeridpass[])
{
        
format(StringRegistrosizeof(StringRegistro), "zP/Contas/%s.ini"Nome(playerid));
        if(
strcmp(passDOF2_GetString(StringRegistro"Senha"), true))
        {

            if(
ErrouSenha[playerid] == 4)
            {

                
format(Stringsizeof(String), "{E84F33}CONTA: {FFFFFF}O jogador %s foi kickado {FF0000}Motivo: [Errou a senha]"Nome(playerid));
                
MsgToAll(cortagString);
                
zPKick(playerid);
                return 
1;
            }
            
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"{6495ED}# {FFFFFF}Errou a senha!""{FFFFFF}Senha {FF0000}Errada!\n\n{FFFFFF}Digita sua senha:""Login""Sair");
            
ErrouSenha[playerid]++;
            return 
1;
        }
        else
        {

            new 
str[50];
            
format(str50"zP/ADM/%s.ini"Nome(playerid));
            if(
DOF2_FileExists(str))
            {

                if(
DOF2_IsSet(str"Level"))
                {

                    
format(strsizeof(str), "zP/ADM/%s.ini"Nome(playerid));
                    
ContaPlayer[playerid][Level] = DOF2_GetInt(str"Level");
                }
            }
            
ContaPlayer[playerid][Dinheiro] = DOF2_GetInt(StringRegistro"Dinheiro");
            
ContaPlayer[playerid][Skin] = DOF2_GetInt(StringRegistro"Skin");
            
ContaPlayer[playerid][Score] = DOF2_GetInt(StringRegistro"Score");
            
ContaPlayer[playerid][TempoOn] = DOF2_GetInt(StringRegistro"TempoOn");
            
ContaPlayer[playerid][CanBeYoutuber] = DOF2_GetBool(StringRegistro"AuthorizationYT");
            
GivePlayerMoney(playeridContaPlayer[playerid][Dinheiro]);
            
SetPlayerScore(playeridContaPlayer[playerid][Score]);
            new 
StrIp[300];
            
GetPlayerIp(playeridStrIp300);
            
DOF2_SetString(StringRegistro"IP"StrIp);
            
DOF2_SaveFile();
            
ContaNova[playerid] = false;
            
Msg(playeridcortag"{E84F33}CONTA: {FFFFFF}Logado com suceeso!");
            
SetTimerEx("SPP"5000"i"playerid);
            
CarregarVariaveis(playerid);
            
CarregarVip(playerid);
            
TimerHora[playerid] = SetTimerEx("HoraP"60000 101"i"playerid); // 60000 * 60 seria multiplicar 1 minuto x 60 minutos = 1 hora
            
return 1;
        }
        else
          {
        
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
        
MsgToAll(cortagString);
        
zPKick(playerid);
        return 
1;
          }


ERRO:
Código PHP:
-
warning 225unreachable code
error 029
invalid expressionassumed zero 

LINHA:
Código PHP:
}
else
 { 



RE: erro no login - k2bi_YT - 13/02/2022

Está faltando condição, você está usando 2 "else" em apenas 1 condição, sem a existência de uma "sub" condição ou algo do tipo.

No caso, essa parte aqui está sendo usando incorretamente, caso essa função for chamada pela OnPlayerDialog, você deve colocar em "if(!response)"
Código PHP:
else
    {
        
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
        
MsgToAll(cortagString);
        
zPKick(playerid);
        return 
1;
    } 

Apague essas linhas ou coloque essa função na parte correta, que será solucionado.


RE: erro no login - fear - 13/02/2022

(13/02/2022 16:22)k2bi_YT Escreveu: Está faltando condição, você está usando 2 "else" em apenas 1 condição, sem a existência de uma "sub" condição ou algo do tipo.

No caso, essa parte aqui está sendo usando incorretamente, caso essa função for chamada pela OnPlayerDialog, você deve colocar em "if(!response)"
Código PHP:
else
    {
        
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
        
MsgToAll(cortagString);
        
zPKick(playerid);
        return 
1;
    } 

Apague essas linhas ou coloque essa função na parte correta, que será solucionado.

Não entendi... eu estou usando uma publico e chamando ela no ondialog assim
Código PHP:
    }
            else {
                 
p_PlayerLogin(playeridinputtext);
            } 
se eu remover essa linha o player vai cancelar o login e ficar conectado no servidor.. so passei do ondialog para uma public e deu isso.. so burro namoral da uma força ai


RE: erro no login - k2bi_YT - 13/02/2022

Me mande a callback completa onde está sendo chamada essa p_PlayerLogin


RE: erro no login - fear - 13/02/2022

(13/02/2022 16:33)k2bi_YT Escreveu: Me mande a callback completa onde está sendo chamada essa p_PlayerLogin

tava ali emcima mas mandei dnv..

public

Código PHP:
forward p_PlayerLogin(playeridpass[]);
public 
p_PlayerLogin(playeridpass[])
{
        
format(StringRegistrosizeof(StringRegistro), "zP/Contas/%s.ini"Nome(playerid));
        if(
strcmp(passDOF2_GetString(StringRegistro"Senha"), true))
        {

            if(
ErrouSenha[playerid] == 4)
            {

                
format(Stringsizeof(String), "{E84F33}CONTA: {FFFFFF}O jogador %s foi kickado {FF0000}Motivo: [Errou a senha]"Nome(playerid));
                
MsgToAll(cortagString);
                
zPKick(playerid);
                return 
1;
            }
            
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"{6495ED}# {FFFFFF}Errou a senha!""{FFFFFF}Senha {FF0000}Errada!\n\n{FFFFFF}Digita sua senha:""Login""Sair");
            
ErrouSenha[playerid]++;
            return 
1;
        }
        else
        {

            new 
str[50];
            
format(str50"zP/ADM/%s.ini"Nome(playerid));
            if(
DOF2_FileExists(str))
            {

                if(
DOF2_IsSet(str"Level"))
                {

                    
format(strsizeof(str), "zP/ADM/%s.ini"Nome(playerid));
                    
ContaPlayer[playerid][Level] = DOF2_GetInt(str"Level");
                }
            }
            
ContaPlayer[playerid][Dinheiro] = DOF2_GetInt(StringRegistro"Dinheiro");
            
ContaPlayer[playerid][Skin] = DOF2_GetInt(StringRegistro"Skin");
            
ContaPlayer[playerid][Score] = DOF2_GetInt(StringRegistro"Score");
            
ContaPlayer[playerid][TempoOn] = DOF2_GetInt(StringRegistro"TempoOn");
            
ContaPlayer[playerid][CanBeYoutuber] = DOF2_GetBool(StringRegistro"AuthorizationYT");
            
GivePlayerMoney(playeridContaPlayer[playerid][Dinheiro]);
            
SetPlayerScore(playeridContaPlayer[playerid][Score]);
            new 
StrIp[300];
            
GetPlayerIp(playeridStrIp300);
            
DOF2_SetString(StringRegistro"IP"StrIp);
            
DOF2_SaveFile();
            
ContaNova[playerid] = false;
            
Msg(playeridcortag"{E84F33}CONTA: {FFFFFF}Logado com suceeso!");
            
SetTimerEx("SPP"5000"i"playerid);
            
CarregarVariaveis(playerid);
            
CarregarVip(playerid);
            
TimerHora[playerid] = SetTimerEx("HoraP"60000 101"i"playerid); // 60000 * 60 seria multiplicar 1 minuto x 60 minutos = 1 hora
            
return 1;
        }
        else
          {
        
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
        
MsgToAll(cortagString);
        
zPKick(playerid);
        return 
1;
          }

Código PHP:
ondialog

    
if(dialogid == REGISTRO)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {


                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo! \n\nNick: %s\n\n{FFFFFF}IP: {90EE90}%s\n\nRegistre-se:"Nome(playerid),IP);
                
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"{6495ED}# {FFFFFF}Registro"String"Registrar""Sair");
                return 
1;
            }
            else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
    }
    if (
dialogid == LOGIN)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {

                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo novamente! \n\nNick: {90EE90}%s\n\n{FFFFFF}IP: {90EE90}%s\n\n{FFFFFF}Digite sua senha:"Nome(playerid), IP);
                
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"{6495ED}# {FFFFFF}Login"String"Entrar""Sair");
                return 
1;
                }
                else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
    } 



RE: erro no login - k2bi_YT - 13/02/2022

Pronto, agora se o jogador apertar ESC ou cancelar o login/registro, ele será retirado do servidor.

Código PHP:
if(dialogid == REGISTRO)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {


                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo! \n\nNick: %s\n\n{FFFFFF}IP: {90EE90}%s\n\nRegistre-se:"Nome(playerid),IP);
                
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"{6495ED}# {FFFFFF}Registro"String"Registrar""Sair");
                return 
1;
            }
            else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
        else
        {
            
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
            
MsgToAll(cortagString);
            
zPKick(playerid);
        }
    }
    if (
dialogid == LOGIN)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {

                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo novamente! \n\nNick: {90EE90}%s\n\n{FFFFFF}IP: {90EE90}%s\n\n{FFFFFF}Digite sua senha:"Nome(playerid), IP);
                
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"{6495ED}# {FFFFFF}Login"String"Entrar""Sair");
                return 
1;
                }
                else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
        else
        {
            
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
            
MsgToAll(cortagString);
            
zPKick(playerid);
        }
    } 



RE: erro no login - fear - 13/02/2022

(13/02/2022 16:58)k2bi_YT Escreveu: Pronto, agora se o jogador apertar ESC ou cancelar o login/registro, ele será retirado do servidor.

Código PHP:
if(dialogid == REGISTRO)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {


                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo! \n\nNick: %s\n\n{FFFFFF}IP: {90EE90}%s\n\nRegistre-se:"Nome(playerid),IP);
                
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"{6495ED}# {FFFFFF}Registro"String"Registrar""Sair");
                return 
1;
            }
            else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
        else
        {
            
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
            
MsgToAll(cortagString);
            
zPKick(playerid);
        }
    }
    if (
dialogid == LOGIN)
    {


        if(
response)
        {


            if(!
strlen(inputtext))
            {

                new 
IP[128];
                
GetPlayerIp(playeridIPsizeof(IP));
                
format(Stringsizeof(String), "{FFFFFF}Bem vindo novamente! \n\nNick: {90EE90}%s\n\n{FFFFFF}IP: {90EE90}%s\n\n{FFFFFF}Digite sua senha:"Nome(playerid), IP);
                
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"{6495ED}# {FFFFFF}Login"String"Entrar""Sair");
                return 
1;
                }
                else {
                 
p_PlayerLogin(playeridinputtext);
            }
        }
        else
        {
            
format(Stringsizeof(String), "{E84F33}CONTA: {FF0000}Player %s Kickado Motivo:[Cancelou o Login]"Nome(playerid));
            
MsgToAll(cortagString);
            
zPKick(playerid);
        }
    } 

vlw mano. funcionou 100% +REP