Portal SAMP
[Pedido] System /procurados - 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: [Pedido] System /procurados (/showthread.php?tid=1869)



System /procurados - EU_COMI_UMA_VACA - 26/11/2021

Caso o player estiver com 6 estrelas, vai aparecer na dialog


RE: System /procurados - geek - 26/11/2021

Cria uma variavel para armazenar o level de estrelas

depois é só usar comparação e formatar dentro da dialog.


RE: System /procurados - AztecaJr - 27/11/2021

um exemplo do que o amigo acima falou:


Código PHP:
CMD:procurados(playerid)
{
for (new 
iMAX_PLAYERSi++)
{
if(
estrelas[i] >=6)
{
new 
string[5000], nome[MAX_PLAYER_NAME+1];
GetPlayerName(i,sizeof(nome), nome);
format(string,5000,"%s Estrelas: %i",nome[i], estrelas[i]);
}
ShowPlayerDialog(playeridID_DA_DIALOG"Players Procurados"string"OK""SAIR" );
}
return 
1;




RE: System /procurados - Luiz - 27/11/2021

Basta fazer um loop percorrendo todos jogadores conectados (via foreach ou for) e adicionar uma verificação para receber somente aqueles que possuem 6 estrelas de procurado. Dentro do loop, formate a mensagem (não esqueça do /n para haver a quebra de linha) e mostrar o dialog ao jogador.

Exemplo:
Código PHP:
CMD:procurados(playerid)
{
    new string[1000], pname[MAX_PLAYER_NAME];
    foreach(new iPlayer)
    {
        if(GetPlayerWantedLevel(i) == 6)
        {
            GetPlayerName(ipnameMAX_PLAYER_NAME);
            format(string1000"%s[%d]\n"pnamei);
        }
    }
    ShowPlayerDialog(playeridDIALOG_PROCURADOSDIALOG_STYLE_MSGBOX"Procurados online"string"Fechar""");


O código do amigo de cima apresenta alguns erros:
  • O loop percorre o MAX_PLAYERS, caso o número de slots do servidor seja 600 e só tenha 1 jogador conectado, percorrerá 600 jogadores, o que pode causar certos lags no servidor.
  • A variável string foi criada dentro da verificação. Dessa forma, apresentará undefined symbol no ShowPlayerDialog ao compilar.
  • O ShowPlayerDialog está situado dentro do loop. Assim, será aberto diversos dialogs e dependendo do lag do jogador, ao clicar em fechar, pode ser que continue abrindo o mesmo dialog, pois o loop ainda não foi finalizado.
  • Falta o parâmetro DIALOG_STYLE no ShowPlayerDialog.