14.04.2013, 00:12
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;
}
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;
}