Ich will dich ja ned enttäuschen, aber PAWN unterstützt maximal nur 3 dimensionale-Arrays, daher kann folgendes nicht stimmen.
format(nummernschildfarbe, sizeof(nummernschildfarbe), "%s",PlayerCar[playerid][Slot][CarNummernschildFarbe]);
Da ja sonst die Variable letztendlich so wäre (kann Abweichend von Nutzung einer enum-Struktur sein:
PlayerCar[MAX_PLAYERS][MAX_CAR_SLOTS][500][MAX_NUMMERNSCHILD_FARBE];
Man bedenke, dass ich die Definitionen MAX_CAR_SLOTS und MAX_NUMMERNSCHILD_FARBE (obwohl diese eigentlich klarerweise eh 10 wäre) und die Zahl 500, welche sozusagen eine enum-Struktur "nachstellt" frei erfunden sind.
Aber hey, du bist einer der glücklichen bei denen man es "leicht" umgehen kann, anstatt wieder ein Ram-Saugendes Array zu erstellen :p
Lösche im enum bei CarNummernschildFarbe das []-Array, damit du es als Integer behandelst und beachte natürlich im Rest vom Script, dass du die Variable tatsächlich als Integer verwendest.
Dann kannst du beim setzen der Farbe mithilfe von HexToInt die Variable setzen und per IntToHex umwandeln in einen Hex-Code. Du wirst natürlich auch keine Probleme haben, sofern du auch bei der Abfrage beim setzen überprüfst, ob Spieler eine 24 Bit Farbe angibt und keine 32Bit, da sonst du das Limit von PAWNs 32Bit-Integer Limit brichst.
32Bit Farben sind nämlich bei Textnachrichten unnötig, da diese keine Transparenz haben (laut meines Wissenstandarts, außer es sich seit 0.3a geändert hat.)
//Edit: Nur mal so ne Frage, hast du in deiner enum-Struktur für PlayerCar weitere enum-Variablen, jene Arrays besitzen? Mich wunderts nämlich, dass PAWN es überhaupt kompiliert hat.