Alles anzeigenKommt drauf an.
Nur unter "OnPlayerStateChange" reicht der von dir gezeigte Code nicht. newstate muss zumindest PLAYER_STATE_DRIVER oder PLAYER_STATE_PASSENGER sein, sonst kannst dudiedort nicht richtig mit GetPlayerVehicleID arbeiten.
Ganz genau hab ich auch nicht verstanden,wieso du in der Schleife IstAHC() prüfst.
Ich denke mal, du möchtest beim Einsteigen in eines dieser Fahrzeuge die zum Autohaus gehören den Dialog anzeigen.
Was dir dann aber fehlt,ist der richtige Index im Array AutoHausCar bzw AHC der zu der vehicleid passt.
Könntest also passend zu IstAHC eine Funktion anlegen, die dir an Hand der vehicleid den korrekten Index liefert. Mit dem müsstest du dann weiterarbeiten für den Dialog:
if(!IstAHC(vehicleid) ) return print("Kein Autohaus Fahrzeug");
new index = GetAHCIndex(vehicleid);
format(string,sizeof(string),"ID: {FFAA00}%d{FEFEFE} Kosten: {FFAA00}%d${FEFEFE}",AutoHausCar[index ][cID],AutoHausCar[index ][Kosten]);
return ShowPlayerDialog(playerid,DIALOG_EAHC,DIALOG_STYLE_LIST,string,"Fahrzeug Umparken","Auswahl","Abbrechen");
GetAHCIndex gibt es natürlich noch nicht ;).
//Edit: Rechtschreibung
Hm, aber warum sollte ich eine Extra Funktion dafür schreiben, ich meine bei meinem ATM & Telefonzellensystem funktioniert das auch ohne -.- ... da habe ich das ganze ähnlich aufgebaut:
ocmd:deltele(playerid,params[])
{
new string[64];
for(new i; i<MAX_TELE; i++)
{
if(!IsPlayerInRangeOfPoint(playerid,1.0,Telefonzelle[i][x2],Telefonzelle[i][y2],Telefonzelle[i][z2]))continue;
SetPVarInt(playerid,"Telezelle",i);
format(string,sizeof(string),"Telefonzelle ID: %d",i);
return ShowPlayerDialog(playerid,DIALOG_ETELE,DIALOG_STYLE_LIST,string,"Telefonzelle Löschen","Auswahl","Abbrechen");
}
return SendClientMessage(playerid,Weiss,"Du bist an keiner Telefonzelle!");
}