09/10/2023 09:54
(Esta mensagem foi modificada pela última vez a: 09/10/2023 10:03 por leonardos08bt.)
Você está mostrando a dialog dentro do loop.
A alteração que fiz no código é a seguinte: criei uma nova variável chamada de "contratos" tipo string de 350 caracteres; ao formatar a mensagem pra dar o strcat foi esquecido a variável "ss" e foi substituído pelo "contratos"; retirei a função pra mostrar a dialog dentro do loop para mostrar fora, logo após a verificação se possui algum contrato online.
Faltou um pouco de lógica da sua parte porque a cada contrato online uma dialog é mostrada, em vez de mostrar tudo de uma vez fora do loop.
Código:
forward SearchingKiller(playerid);
public SearchingKiller(playerid)
{
new searchhit = 0, f = gTeam[playerid], contratos[350];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && searchhit == 0)
{
if(PlayerInfo[i][pHeadValue] > 0)
{
new ContinueKiller = 1;
//if(PlayerInfo[i][pAdmin] > 0 && adminstatus[i] == 0) ContinueKiller = 0;
//if(MissingPlayer[i] != 0) ContinueKiller = 0;
//for(new z = 0; z < MAX_PLAYERS; ++z) { if(IsPlayerConnected(z)) { if(gTeam[z] == f) { if(GoChase[z] == i) ContinueKiller = 0; } } }
if(ContinueKiller)
{
if(f != gTeam[i] && TeamKiller(f))
{
searchhit = 1; hitfound[f] = 1; hitnumber[f] = i;
new string[256];
FORMAT_STR "%s(%d) - $%d\n", Name(i), i, PlayerInfo[i][pHeadValue]); strcat(contratos, string);
}
}
}
}
}
if(searchhit == 0) SendClientMessage(playerid, COLOR_GREY, "Não foi possível encontrar nenhum contrato na agência.");
else {
return ShowPlayerDialog(playerid, DIALOG_MULTI_USO, DIALOG_STYLE_LIST, "Contratos online", ss, "Fechar", "");
}
return 0;
}
A alteração que fiz no código é a seguinte: criei uma nova variável chamada de "contratos" tipo string de 350 caracteres; ao formatar a mensagem pra dar o strcat foi esquecido a variável "ss" e foi substituído pelo "contratos"; retirei a função pra mostrar a dialog dentro do loop para mostrar fora, logo após a verificação se possui algum contrato online.
Faltou um pouco de lógica da sua parte porque a cada contrato online uma dialog é mostrada, em vez de mostrar tudo de uma vez fora do loop.