Dialog que detecta valor de string - MatheuzPatoo - 15/05/2021
Vamo supor uma lista de procurados, como eu faço para detectar todos que tenham nivel de procurado e colocar em uma dialog? vi este sistema em um servidor e achei interessante, se tiver uma melhor forma deixe aqui também, vai ajudar mt!
RE: Dialog que detecta valor de string - virtuS_ - 15/05/2021
(15/05/2021 01:53)MatheuzPatoo Escreveu: Vamo supor uma lista de procurados, como eu faço para detectar todos que tenham nivel de procurado e colocar em uma dialog? vi este sistema em um servidor e achei interessante, se tiver uma melhor forma deixe aqui também, vai ajudar mt! Fiz um modelo aqui rápido, acho que pode lhe ajudar.
Código: // Este comando permite aos policiais ver todos os procurados
CMD:procurados(playerid, params[])
{
new DialogTitle[128], DialogList[500], Wanted, CounterWanteds, pname[MAX_PLAYER_NAME];
for(new i; i < MAX_PLAYERS; i++)
{
Wanted = GetPlayerWantedLevel(i);
if(Wanted > 0)
{
CounterWanteds++;
GetPlayerName(i, pname, sizeof(pname));
format(DialogList, sizeof(DialogList), "%s%s[%i]\t%i estrelas\n", DialogList, pname, i, Wanted);
}
}
if(CounterWanteds > 0)
{
format(DialogTitle, sizeof(DialogTitle), "Procurados (%i)", CounterWanteds);
ShowPlayerDialog(playerid, DialogNoResponse, DIALOG_STYLE_TABLIST, DialogTitle, DialogList, "Ok", "");
}
else
{
SendClientMessage(playerid, -1, "Não há nenhum procurado no momento.");
}
return 1;
}
RE: Dialog que detecta valor de string - MatheuzPatoo - 15/05/2021
(15/05/2021 10:31)virtuS_ Escreveu: (15/05/2021 01:53)MatheuzPatoo Escreveu: Vamo supor uma lista de procurados, como eu faço para detectar todos que tenham nivel de procurado e colocar em uma dialog? vi este sistema em um servidor e achei interessante, se tiver uma melhor forma deixe aqui também, vai ajudar mt! Fiz um modelo aqui rápido, acho que pode lhe ajudar.
Código: // Este comando permite aos policiais ver todos os procurados
CMD:procurados(playerid, params[])
{
new DialogTitle[128], DialogList[500], Wanted, CounterWanteds, pname[MAX_PLAYER_NAME];
for(new i; i < MAX_PLAYERS; i++)
{
Wanted = GetPlayerWantedLevel(i);
if(Wanted > 0)
{
CounterWanteds++;
GetPlayerName(i, pname, sizeof(pname));
format(DialogList, sizeof(DialogList), "%s%s[%i]\t%i estrelas\n", DialogList, pname, i, Wanted);
}
}
if(CounterWanteds > 0)
{
format(DialogTitle, sizeof(DialogTitle), "Procurados (%i)", CounterWanteds);
ShowPlayerDialog(playerid, DialogNoResponse, DIALOG_STYLE_TABLIST, DialogTitle, DialogList, "Ok", "");
}
else
{
SendClientMessage(playerid, -1, "Não há nenhum procurado no momento.");
}
return 1;
}
Sei q é pedir muito mas para mim real aprender tem q ser explicado certinho, teria como explicar?
RE: Dialog que detecta valor de string - virtuS_ - 15/05/2021
Código: // Este comando permite aos jogadores ver todos os procurados
CMD:procurados(playerid, params[])
{
// Cria variáveis locais
new DialogTitle[128], DialogList[500], Wanted, CounterWanteds, pname[MAX_PLAYER_NAME];
// Um LOOP através de TODOS os jogadores é chamado(usando a variável "i")
for(new i; i < MAX_PLAYERS; i++)
{
// Para cada jogador, armazenará na variável "Wanted" o nível de procurado dele
Wanted = GetPlayerWantedLevel(i);
if(Wanted > 0) // Uma condição, se o nível de procurado do jogador(que foi armazenado em "Wanted"),
{ // for maior que 0, isso quer dizer que ele está procurado, se "Wanted" for 0, automaticamente não será contado
CounterWanteds++; // Portanto, será adicionado mais um valor no contador "CounterWanteds" a cada vez que um procurado for achado, para no final, exibir quantos jogadores estão procurados
GetPlayerName(i, pname, sizeof(pname)); // Aqui gera o nome de cada jogador procurado
format(DialogList, sizeof(DialogList), "%s%s[%i]\t%i estrelas\n", DialogList, pname, i, Wanted); // E aqui com as informações pegas em cima no loop,
} // formatará a lista do dialog, quebrando uma linha em cada procurado
}
if(CounterWanteds > 0) // Com a quantidade de jogadores procurados pego no loop, essa condição irá verificar se tem mais de um procurado,
{ // se tiver, exibirá o dialog exibindo o "CounterWanteds"(que é a quantia de procurados) e a DialogList formata no loop
format(DialogTitle, sizeof(DialogTitle), "Procurados (%i)", CounterWanteds);
ShowPlayerDialog(playerid, DialogNoResponse, DIALOG_STYLE_TABLIST, DialogTitle, DialogList, "Ok", "");
}
else // Se a quantidade de procurados não for maior que 0(for 0), apenas mostrará uma mensagem informando
{
SendClientMessage(playerid, -1, "Não há nenhum procurado no momento.");
}
return 1;
}
Cola no vscode ou pawn p ficar mais visível para leitura
|