09/08/2023 14:53
(09/08/2023 09:09)DiegoLBC1 Escreveu:(07/08/2023 09:54)xbruno1000x Escreveu: Para pular id's dentro do looping, você pode usar uma if com continue;
Código:if(empresaID == 5 || empresaID == 9) continue;
nesse caso, os id's 5 e o 9 não serão concatenados.
Como prometido, passando pra agradecer, e mostrar o resultado.
Para adequar minha necessidade acabei partindo pra "outro caminho", e deu certo. Mais uma vez, obrigado pelo help.
Código PHP:CMD:meucomando(playerid, params[]) {
new Topo[128], Dialog[3000];
for(new i = 1; i < sizeof(EnumEmpresa); i++)
{
format(Dialog, sizeof(Dialog), "%s%s - Preço: $%d - Ganhos: $%d \r\n", Dialog, EnumEmpresa[i][Nome], EnumEmpresa[i][Valor], EnumEmpresa[i][Lucro]);
}
format(Topo, sizeof(Topo), "Empresas!");
ShowPlayerDialog(playerid, DialogNoResponse, DIALOG_STYLE_TABLIST, Topo, Dialog, "", "Cancelar");
return 1;
}
E o resultado foi esse:
Basta fazer loop que percorra todas as empresas criadas.
Exemplo:
Código PHP:
CMD:empresas(playerid) {
new string[MAX_EMPRESAS], stringF[128]; // Supondo que você tenha o macro(Ou define caso você chame assim) MAX_EMPRESAS definido.
for(new i = 0; i < MAX_EMPRESAS; i++) {
format(string, sizeof(string), CAMINHO_DAS_EMPRESAS_SCRIPTFILES, i); // Supondo que você use DOF2 para salvamento, formato a string com o caminho das empresas.
if(!DOF2_FileExists(string)) continue; // Caso a empresa não exista, o loop pula a mesma.
format(stringF, sizeof(stringF), "%s - \nPreço: %d\n - \nGanhos: %d", DOF2_GetString(string, "Nome"), DOF2_GetInt(string, "Preco"), DOF2_GetInt(string, "Ganhos")); // Troque o nome das variáveis do DOF2 de acordo com o seu gamemode.
ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_LIST, "Empresas", stringF, "Ok", "");
break;
}
return 1;
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.