22/11/2023 15:32
Inicialização da String ss: Certifique-se de que a string ss esteja sendo inicializada corretamente antes de começar a adicionar os nomes dos veículos. Ela precisa estar vazia no início de cada execução do loop.
Concatenação da String: Parece que você está concatenando cada novo veículo na string string, mas você precisa garantir que esta concatenação esteja sendo feita corretamente na string ss.
Mostrando a Lista no Diálogo: Ao final do loop, você deve usar a string ss (que contém todos os veículos) na função ShowPlayerDialog em vez de string, que contém apenas o último veículo processado.
Limitação de Tamanho da String: Tenha em mente que strings em PAWNO têm um limite de tamanho. Se a lista de veículos for muito longa, ela pode ser cortada. A string ss tem um tamanho máximo de 200 caracteres, o que pode ser insuficiente para listar vários veículos.
Aqui está como você pode modificar o código:
Neste código, eu inicializei ss como uma string vazia e usei \n para adicionar uma quebra de linha após cada veículo. Isso deve resolver o problema de mostrar apenas o primeiro veículo. No entanto, se você tiver muitos veículos, pode precisar aumentar o tamanho de ss ou implementar uma lógica para lidar com strings muito longas.
Concatenação da String: Parece que você está concatenando cada novo veículo na string string, mas você precisa garantir que esta concatenação esteja sendo feita corretamente na string ss.
Mostrando a Lista no Diálogo: Ao final do loop, você deve usar a string ss (que contém todos os veículos) na função ShowPlayerDialog em vez de string, que contém apenas o último veículo processado.
Limitação de Tamanho da String: Tenha em mente que strings em PAWNO têm um limite de tamanho. Se a lista de veículos for muito longa, ela pode ser cortada. A string ss tem um tamanho máximo de 200 caracteres, o que pode ser insuficiente para listar vários veículos.
Aqui está como você pode modificar o código:
Código:
case 7:
{
new ss[200] = "", vehicle;
for(new slot = 0; slot < MAX_PLAYER_CAR; ++slot)
{
if(player_car_house[playerid][slot] == house)
{
new string[128];
format(string, sizeof(string), "%s (%04d)\n", GetModelName(GetVehicleModel(player_car_vehicle[playerid][slot])), player_car_vehicle[playerid][slot]);
strcat(ss, string); // Concatenando na string ss
vehicle++;
}
}
if(!vehicle) SendClientMessage(playerid, COLOR_GREY, "Você não possui veículos em sua residência.");
else ShowPlayerDialog(playerid, DIALOG_INVENTORY3, DIALOG_STYLE_LIST, "Veículos na residência", ss, "Fechar", ""); // Usando ss aqui
}
Neste código, eu inicializei ss como uma string vazia e usei \n para adicionar uma quebra de linha após cada veículo. Isso deve resolver o problema de mostrar apenas o primeiro veículo. No entanto, se você tiver muitos veículos, pode precisar aumentar o tamanho de ss ou implementar uma lógica para lidar com strings muito longas.