SA-MP Forums Archive
[Ajuda] Procurar Player - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Procurar Player (/showthread.php?tid=662671)



Procurar Player - Solan - 07.01.2019

Bom tenho uma dъvida sobre um possнvel comando que estou querendo "criar".

Quando o jogador digitar o comando /procurar ID, vai criar uma GangZoneFlashForPlayer ou GangZoneCreate para marcar a localizaзгo do jogador.
Estou querendo uma Base para fazer esse comando, nгo sei mecher muito com GangZoneCreate.


Re: Procurar Player - NelsonC - 07.01.2019

Use checkpoint, bem mais fбcil
https://forum.sa-mp.com/showpost.php...50&postcount=7


Re: Procurar Player - iHollyZinhO - 07.01.2019

Se tratando de GangZone, acho que vocк quer que a бrea possнvel de um jogador seja marcada no mapa. O cуdigo para essa situaзгo fica da seguinte forma:


Код:
new Float:Pos[3];
GetPlayerPos(newplayerid, Pos[0], Pos[1], Pos[2]);//Captura as coordenadas do player

//Serб criada uma GangZone com uma variaзгo aleatуria, com base na coordenada do player, podendo ter uma variaзгo de 0 atй 0.5
new gz = GangZoneCreate(Pos[0] + random(5)/10, Pos[1] + random(5)/10, Pos[0] + random(5)/10, Pos[1] + random(5)/10);
GangZoneShowForPlayer(playerid, gz, 0xFFFFFFFF);
A nгo ser que vocк esteja se referindo a Map icon, que й o seguinte:
https://sampwiki.blast.hk/wiki/Map_icons

Nesse caso, й outro procedimento, mas verifique se isso te atende.


Re: Procurar Player - AutoMatic2 - 07.01.2019

Pq nгo usa CheckPoints?

PHP код:
new TimerProcura[MAX_PLAYERS];
new 
bool:Procurando[MAX_PLAYERS];
CMD:procurar(playeridparams[])
{
    new 
idstring[100];
    if(
sscanf(params"u"id))
        return 
SendClientMessage(playerid, -1"| ERRO | Use: /Procurar [id]");
    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playerid, -1"| ERRO | ID Invбlido!");
    if(
playerid == id)
        return 
SendClientMessage(playerid, -1"| ERRO | Vocк nгo pode usar este comando em vocк mesmo!");
    if(
Procurando[playerid] == true)
        return 
SendClientMessage(playerid, -1"| ERRO | Vocк jб estб procurando alguem!");
    
Procurando[playerid] = true;
    
TimerProcura[playerid] = SetTimerEx("ProcurarPlayer"1000false"uu"playeridid);
    
format(stringsizeof(string), "| INFO | Vocк estб procurando o jogador(a) %s (%d) Siga o ponto Vermelho para achб-lo!"Nome(id), id);
    
SendClientMessage(playerid, -1string);
    return 
1;
}
CMD:procuraroff(playerid)
{
    if(
Procurando[playerid] == false)
        return 
SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб procurando ninguйm!");
        
    
DisablePlayerCheckpoint(playerid);
    
KillTimer(TimerProcura[playerid]);
    
Procurando[playerid] = false;
    
    
SendClientMessage(playerid, -1"| INFO | Vocк nгo estб mais procurando ninguйm!");
    return 
1;
}
forward ProcurarPlayer(playeridid);
public 
ProcurarPlayer(playeridid)
{
    new 
Float:Pos[3], Float:Distance;
    
GetPlayerPos(idPos[0], Pos[1], Pos[2]);
    
    
Distance GetDistanceBetweenPlayers(playeridid);
    
    
DisablePlayerCheckpoint(playerid);
    
SetPlayerCheckpoint(playeridPos[0], Pos[1], Pos[2], 1.0);
    
SetPlayerMarkerForPlayer(playeridid0xFF0000AA);
    
    if(
Distance <= 6.0)
    {
        
DisablePlayerCheckpoint(playerid);
        
KillTimer(TimerProcura[playerid]);
        
Procurando[playerid] = false;
        
        
SendClientMessage(playerid, -1"| INFO | Vocк encontrou o(a) jogador que estava procurando!");
    }
    return 
1;
}
GetDistanceBetweenPlayers(playeridid)
{
    new 
Float:DistanciaFloat:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    
GetPlayerPos(playeridx1y1z1);
    
GetPlayerPos(idx2y2z2);
    
    
Distancia floatsqroot(floatpower(floatabs(floatsub(x2x1)),2)+floatpower(floatabs(floatsub(y2y1)),2)+floatpower(floatabs(floatsub(z2z1)), 2));
    return 
floatround(Distancia);

Nгo testei, pode haver alguns bugs. se tiver vc da uma corrigida e deixar do seu jeito. e claro se vc for usar esta base!

Obs:

eu peguei essa funзгo ( GetDistanceBetweenPlayers ) em um post qualquer aqui do fуrum se der algum erro nisso busque outro e coloque no final do GM ou acima dos comandos ( CMD: )


Re: Procurar Player - Solan - 08.01.2019

Isso mesmo quero fazer IHollyZinho, vou criar uma possнvel localizaзгo do player.

Nгo vou usar CheckPoint no /procurar, porque nгo vai dar uma dificuldade para encontrar o player.

Vou tentar fazer a programaзгo.


Re: Procurar Player - Solan - 08.01.2019

Bom fui testar o comando, mas nгo esta criando a gang zone.

PHP код:
forward LocalizarJogador(playeridID);
public 
LocalizarJogador(playeridID)
{
  new 
Float:Pos[3];
  
GetPlayerPos(IDPos[0], Pos[1], Pos[2]);
  new 
gz GangZoneCreate(Pos[0] + random(5)/10Pos[1] + random(5)/10Pos[0] + random(5)/10Pos[1] + random(5)/10);
  
GangZoneShowForPlayer(playeridgz0xFFFFFFFF);
  
  
Distance GetDistanceBetweenPlayers(playeridID); 
  if(
Distance <= 6.0)
  {
      
      
GangZoneHideForPlayer(playeridgz);
      
KillTimer(TimerLocalizar[playerid]);
      
Localizar[playerid] = false;
      
SendClientMessage(playeridCorBranca"{FF0040}[Comando]{FFFFFF} Voce encontrou a pessoa que estava localizando");
  }
  return 
1;