[Ajuda] Se apertar TAB, o servidor fecha!
#8

pawn Код:
public OnPlayerConnect(playerid)
{
    new VerificarNome[24];
    new VerificarLista = -1;
    GetPlayerName(playerid, VerificarNome, sizeof(VerificarNome));
    while(++ VerificarLista != sizeof(NomesProibidos))
    {
        if(!strcmp(VerificarNome, NomesProibidos[VerificarLista], true))
        {
            print("[SISTEMA]: Um usuбrio se logou com 'BAD NICK' e foi interceptado!");
            format(String, sizeof(String), "%d1", playerid);
            SetPlayerName(playerid, String);
            if(IsPlayerConnected(playerid))//segundos, eu acho que o seu problema tem haver com isto pq o facto de nao ter spawnado como diz faz com que o pawn nao considere conectado! eu acho
            {//terceiro, acho que isso fica meio rasca neh, voce vai executar o OnPlayerConnect novamente desnecessariamente
                return OnPlayerConnect(playerid);
            }
        }
        else//primeiro, isso aqui tб mal, resumindo, faz o loop (while) e cada vez que verificar o seu nome com um nome da lista "nomespoibidos" e o nome nao for proibido, vem para aqui! mas afinal quantas vazes executa isto?
        {
            LimparChatLogin(playerid);//quarto, uma vez que executou OnPlayerConnect novamente, imagine que verifica 20 nomes na lista, passa a executar esta parte do codigo 40x quando podia ser apenas 1
            TextDrawShowForPlayer(playerid, CriarImagemLogin);
            new RandonMusicasL = random(sizeof(MusicasLogin));
            TocarMusica(playerid, MusicasLogin[RandonMusicasL]);
            LimparChatLogin(playerid);
            return true;
        }
    }
    return true;
}
OPTIMIZACAO
pawn Код:
public OnPlayerConnect(playerid)
{
    new VerificarNome[24];
    new VerificarLista = -1;
    GetPlayerName(playerid, VerificarNome, sizeof(VerificarNome));
    //vamos fazer while na mesma e verificar se o nome ta na lista
    while(++ VerificarLista != sizeof(NomesProibidos))
    {
        if(!strcmp(VerificarNome, NomesProibidos[VerificarLista], true))
        {
            print("[SISTEMA]: Um usuбrio se logou com 'BAD NICK' e foi interceptado!");
            format(String, sizeof(String), "%d1", playerid);
            SetPlayerName(playerid, String);
            break;//verificamos o nome, foi encontrado na lista, foi alterado, e por isso usamos break para parar a verificacao, se ja encontramos nao precisamos continuar procurando neh?
        }
    }
    LimparChatLogin(playerid);
    TextDrawShowForPlayer(playerid, CriarImagemLogin);
    new RandonMusicasL = random(sizeof(MusicasLogin));
    TocarMusica(playerid, MusicasLogin[RandonMusicasL]);
    LimparChatLogin(playerid);
    return true;
}
Reply


Messages In This Thread
Se apertar TAB, o servidor fecha! - by Dsv - 13.04.2013, 22:48
Re: Se apertar TAB, o servidor fecha! - by feliphemort - 13.04.2013, 22:49
Re: Se apertar TAB, o servidor fecha! - by Dsv - 13.04.2013, 22:53
Re: Se apertar TAB, o servidor fecha! - by StringBR - 13.04.2013, 22:55
Re: Se apertar TAB, o servidor fecha! - by Dsv - 13.04.2013, 22:56
Re: Se apertar TAB, o servidor fecha! - by Dsv - 13.04.2013, 23:16
Re: Se apertar TAB, o servidor fecha! - by StringBR - 13.04.2013, 23:44
Re: Se apertar TAB, o servidor fecha! - by DartakousLien - 14.04.2013, 00:12

Forum Jump:


Users browsing this thread: 1 Guest(s)