Codul asta n-are niciun sens. Hai sa-l facem cum trebuie ca sa-ti mearga expensive vehicles
Fa o variabila globala expensiveVehicles[MAX_PERSONAL_VEH] cred.
Ca sa nu stricam varianta cu cheapcars fa o variabila openedExpensive[MAX_PLAYERS]
La login / connect o setezi pe 0
for(new j = 0; j < MAX_PERSONAL_VEH; j++) {
if(DSInfo[j][dsPrice] > 45000 && DSInfo[j][dsPrice] <= 1500000) {
format(szDialog, sizeof(szDialog), "%s\t$%s\t%d\n", DSInfo[j][dsVehicleName], FormatNumber(DSInfo[j][dsPrice]), DSInfo[j][dsStock]);
strcat(szDialog2, szDialog);
xx++;
}
}
in foru asta transforma-l in asta
for(new j = 0; j < MAX_PERSONAL_VEH; j++) {
if(DSInfo[j][dsPrice] > 45000 && DSInfo[j][dsPrice] <= 1500000) {
format(szDialog, sizeof(szDialog), "%s\t$%s\t%d\n", DSInfo[j][dsVehicleName], FormatNumber(DSInfo[j][dsPrice]), DSInfo[j][dsStock]);
strcat(szDialog2, szDialog);
expensiveVehicles[xx] = j;
openedExpensive[playerid] = 1;
xx++;
}
}
In cod-ul de la dialog-ul asta:
case DIALOG_DEALERSHIP2: {
if(!response) {
openedExpensive[playerid] = 0; // si linia asta
return 1;
}
new cheapcars;
for(new xf = 0; xf < MAX_PERSONAL_VEH; xf++)
{
if(DSInfo[xf][dsPrice] > 0 && DSInfo[xf][dsPrice] <= 1500000)
{
cheapcars = xf;
}
}
// new num = listitem + cheapcars + 1;
new num = listitem + 2;
BuyCar[playerid] = num;
if(openedExpensive[playerid] != 0) BuyCar[playerid] = num = expensiveVehicles[listitem]; // liniile astea le-am adaugat
openedExpensive[playerid] = 0; //
new string33[256], stringtitle[256];
format(stringtitle, sizeof(stringtitle), "%s ($%s) - %s available", DSInfo[num][dsVehicleName], FormatNumber(DSInfo[num][dsPrice]), FormatNumber(DSInfo[num][dsStock]));
format(string33, sizeof(string33), "Vehicle name: %s\nVehicle price: %s\nNumber of cars available: %s", DSInfo[num][dsVehicleName], FormatNumber(DSInfo[num][dsPrice]), FormatNumber(DSInfo[num][dsStock]));
ShowPlayerDialog(playerid, DIALOG_BUYCAR, DIALOG_STYLE_MSGBOX, stringtitle, string33, "Buy car", "Back");
}
Eventual poti sa mai adaugi si la dialogu principal sa faca openedExpensive[playerid] = 0;