21/09/2021 16:11
(21/09/2021 16:00)SrBlue Escreveu:Continua da mesma forma, o dialog de carros aparece apenas os 3 primeiros modelos de bicicletas, o que no caso seriam as de tipo 0(21/09/2021 15:55)H4WK Escreveu:(21/09/2021 15:30)SrBlue Escreveu:Fiz da seguinte maneira, e a princípio quase deu certo, mas o sistema continua não lendo o tipo de veículo, (0 ou 1)
enum dealerData {
vehModel,
vehPrice,
vehType[2]
};
new DealerData[][dealerData] = {
{509, 75, 0}, // 0
{481, 80, 0}, // 1
{510, 110, 0}, // 2
};
para ler como variaveis
a primeira chave [] recebe o numero do elemente da lista, como exemplo 0,1,2,3
Sendo assim os demais valores são recebidos pela enum,
ficando as vars assim
DealerData[0][vehModel] = 509
DealerData[0][vehPrice] = 75
... etc
Código:enum dealerData {
vehModel,
vehPrice,
vehType[2],
};
new DealerData[][dealerData] =
{
// TYPES: 0 - BICICLETA / 1 - DUAS PORTAS / 2 - QUATRO PORTAS
{{509}, {75}, {0}},
{{481}, {80}, {0}},
{{510}, {110}, {0}},
{{602}, {12000}, {1}}
};
As bicicletas, que são tipo 0, reconheceu as 3 pois no código eu limitei às 3.
portanto, no model selection aparece isso
https://prnt.sc/1t4rbjm
Código:Dialog:VehicleType(playerid, response, listitem, inputtext[])
{
if(response)
{
if(listitem == 0)
{
Dialog_Show(playerid, SelectCars, DIALOG_STYLE_LIST, "Concessionária - Carros", "Populares 2 Portas\nPopulares 4 Portas\nCamionetes\nFurgões\nLowrider\nUtilitário Esportivo", "Selecionar", "Cancelar");
}
else if(listitem == 1)
{
}
else if(listitem == 2)
{
static
bikes[3];
for(new i = 0; i < 3; i++)
{
bikes[i] = DealerData[0][vehModel];
}
ShowModelSelectionMenu(playerid, "Bicicletas", MODEL_SELECTION_BUYVEHICLE, bikes, 3, -16.0, 0.0, -55.0);
}
}
return 1;
}
Só que, ao clicar no dialog de carros de 2 portas, no caso, do tipo {1}, ele mostra isso
https://prnt.sc/1t4rlzd
Código:Dialog:SelectCars(playerid, response, listitem, inputtext[])
{
if(response)
{
if(listitem == 0)
{
static
cars[19];
for(new i = 0; i < 19; i++)
{
cars[i] = DealerData[1][vehModel];
}
ShowModelSelectionMenu(playerid, "Populares de 2 Portas", MODEL_SELECTION_BUYVEHICLE, cars, 19, -16.0, 0.0, -55.0);
}
else if(listitem == 1)
{
}
else if(listitem == 2)
{
}
else if(listitem == 3)
{
}
else if(listitem == 4)
{
}
else if(listitem == 5)
{
}
}
return 1;
}
Veja que ao declarar, eu declaro como DealerData[VEHTYPE (sendo 0 para bikes, 1 para carros)][VEHMODEL (ModelID do veiculo)];
ok, as variaveis estão no seus devidos lugares, porem porque você está usando STRING no vehtype, sendo que só recebe valor de 0,1,2?
somente use "vetor ( [1],[2],[3])" em caso de str..., retire o valor [2] e experimente