CMD:encontrar(playerid, params[])
{
Player[playerid][CMD] = 0;
if(Player[playerid][pJob] != DETETIVE)
return SendClientMessage(playerid, COLOR_RED, "[ERRO] Vocк nгo й um Detetive.");
if(GetTickCount() - AntiFlood[playerid][15] < TempoEncontrar[playerid]*1000)
{
format(thestring, 128, "[ERRO] Vocк precisa esperar %d segundos para usar esse comando denovo!",TempoEncontrar[playerid]-(GetTickCount() - AntiFlood[playerid][15])/1000);
SendClientMessage(playerid, COLOR_GREY, thestring);
return 1;
}
new tmp[24], idx; tmp = strtok(params, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, COLOR_GREY, "[USO] /encontrar [id]");
new giveid = ReturnUser(tmp);
if(IsPlayerConnected(giveid))
{
if(giveid != INVALID_PLAYER_ID)
{
if(PlayerTied[giveid] > 0)
return SendClientMessage(playerid, COLOR_RED,"[ERRO] O jogador foi sequestrado, nгo й possнvel localiza-lo!");
if(Player[giveid][pAdmin] > 0)
return SendClientMessage(playerid, COLOR_RED,"[ERRO] Vocк nгo pode encontrar um administrador.");
if(giveid == playerid)
return SendClientMessage(playerid, COLOR_RED,"[ERRO] Vocк nгo pode procurar vocк mesmo nй ¬¬!");
new erro;
new level = Player[playerid][pDetSkill];
SetPlayerMarkerForPlayer(playerid, Procurado[playerid], 0xFFFFFF00);
AntiFlood[playerid][15] = GetTickCount();
Procurado[playerid] = giveid;
if(level >= 0 && level <= 50)
{
erro = 25;
TempoEncontrar[playerid] = 40;
Encontrando[playerid] = 5;
}
else if(level >= 51 && level <= 100)
{
erro = 20;
TempoEncontrar[playerid] = 30;
Encontrando[playerid] = 10;
}
else if(level >= 101 && level <= 200)
{
erro = 15;
TempoEncontrar[playerid] = 20;
Encontrando[playerid] = 10;
}
else if(level >= 201 && level <= 400)
{
erro = 10;
TempoEncontrar[playerid] = 10;
Encontrando[playerid] = 15;
}
else if(level >= 401)
{
erro = 5;
TempoEncontrar[playerid] = 1;
Encontrando[playerid] = 20;
}
SetPlayerMarkerForPlayer(playerid, giveid, 0xFF0000FF);
SetPlayerMarkerForPlayer(playerid, giveid, 0xFF0000FF);
Player[playerid][pDetSkill] ++;
Encontrar(playerid,giveid,erro);
if(Player[playerid][pDetSkill] == 50)
{ SendClientMessage(playerid, COLOR_YELLOW, "Sua habilidade como detetive agora й nнvel 2, seu tempo de espera diminuiu para 90 segundos e a precisгo aumentou para 40%"); }
else if(Player[playerid][pDetSkill] == 100)
{ SendClientMessage(playerid, COLOR_YELLOW, "Sua habilidade como detetive agora й nнvel 3, seu tempo de espera diminuiu para 60 segundos e a precisгo aumentou para 60%"); }
else if(Player[playerid][pDetSkill] == 200)
{ SendClientMessage(playerid, COLOR_YELLOW, "Sua habilidade como detetive agora й nнvel 4, seu tempo de espera diminuiu para 30 segundos e a precisгo aumentou para 80%"); }
else if(Player[playerid][pDetSkill] == 400)
{ SendClientMessage(playerid, COLOR_YELLOW, "Sua habilidade como detetive agora й nнvel 5, seu tempo de espera diminuiu para 5 segundos e a precisгo aumentou para 99%"); }
}
}
else
SendClientMessage(playerid, COLOR_RED,"[ERRO] Jogador nгo encontrado.");
return 1;
}
new tmp[24], idx; tmp = strtok(params, idx);
if(!strlen(tmp))
return SendClientMessage(playerid, COLOR_GREY, "[USO] /encontrar [id]");
new giveid = ReturnUser(tmp);
if(isnull(params)) return SendClientMessage(playerid, COLOR_GREY, "[USO] /encontrar [id]");
new giveid = ReturnUser(params);
Descobri que o strtok por alguma razгo transforma o caractere \1 de params no caractere \0 quando o jogador nгo digita um parвmetro
![]() Sendo assim nгo precisa usar isnull, apenas se quiser otimizar seu cуdigo ![]() Saiba que й necessбrio que as marcas de todos jogadores fiquem aparecendo no mapa para que seu comando funcione do jeito que estб, por isso apague todas as linhas com ShowPlayerMarkers do seu GM. Caso nгo queira fazer isso, utilize uma funзгo como SetPlayerCheckpoint ao invйs de SetPlayerMarkerForPlayer. Espero ter ajudado ![]() |
Na verdade nгo й o o checkpoint do /encontrar que ta bugado, nenhum ckeckpoint aparece no mapa
tipo, nem o do /encontrar nem o do /vertodos << que й um comando pra ver todos os players do jogo. |
//Coloque no OnPlayerConnect:
for(new x = 0, y = GetMaxPlayers(); x != y; x++)
{
SetPlayerMarkerForPlayer(playerid, x, 0xFFFFFF00);
}
pawn Code:
|