1. Du kannst nicht alle Daten von jedem Typ einfach so in ein Array klatschen. Dafür solltest du ein Enumerator verwenden, sprich schreib es so:
enum a_Cars {
a_Name[32],
a_model,
a_price
};
new Gangcars[21][a_Cars] ={
// Name, Fahrzeug-ID, Preis
{"Voodoo",412,30000}, {"Esperanto",419,30000}, {"Stallion",439,50000}, {"Glendale",466,30000},
{"Hermes",474,30000}, {"Sabre",475,45000}, {"Buccaner",518,25000}, {"Feltzer",533,60000},
{"Remington",534,35000}, {"Elegy",562,70000}, {"Savanna",567,30000}, {"Broadway",575,25000},
{"Tornado",576,45000}, {"Huntley",579,50000}, {"Picador",600,20000}, {"Jester",559,55000},
{"Perenniel",404,25000}, {"Sentinel",405,45000}, {"Bravura",401,20000}, {"Sanchez",468,50000}, {"PCJ-600",461,50000} };
2. Ein Array mit einer Größe von 8192...bist du noch ganz dicht? 
Schreib das mal so, und ich denke du willst ShowPlayerDialog verwenden, als SendClientMessage 
if(frakid == 13 || frakid == 14|| frakid == 16 || frakid == 17 || frakid == 19) // GS, Ballas, Vagos, Scarfo, WCC
{
new string[18 * sizeof Gangcars]; // Weil 9 Chars für den Namen, 5 chars für den Preis und 3 Chars für die [ ] und das Leerzeichen und 1char für '\n' -> 18
for(new i; i < sizeof Gangcars; i++) format(string,sizeof string,"%s%s [%d]\n",string,Gangcars[i][a_Name],Gangcars[i][a_Price]);
ShowPlayerDialog(playerid,99,DIALOG_STYLE_LIST,"{FF0000}Autohaus",string,"Kaufen","Abbrechen"); //Dialogid anpassen.
}
//Edit: String Größe erhöht, grad mal nachgerechnet.
//Edit²: Ach verwende doch einfach ein mehr oder weniger "dynamisches" Array
mfg. 