In Pawn, kannst du nicht einfach unterschiedliche Typen in ein Array quetschen
Da die Sprache C-Ähnlich ist, unterliegt sie einer strengen Typisierung.
Mehr Infos dazu: https://de.wikipedia.org/wiki/Typisierung_(Informatik)
Im Gegensatz zu z.B. Javascript/Python, wo das Problemlos möglich wäre, muss hier angegeben werden, um was für einen Typ es sich handelt. Also String (Array) oder int, bool, float o.ä.
Sonst kann der Compiler das nicht verarbeiten.
Also das "enum" sorgt in diesem Fall dafür, dass der Compiler weiß, welche Typen im Array sind und es hat den netten Nebeneffekt, dass du die Variablen im Array gleich benennen kannst und es so übersichtlicher auch für dich wird
Alternativ könntest du auch mehrere Arrays erstellen:
new VPNames[][] =
{
"Ronald",
"Donald",
"Gonald"
};
new VPBools[sizeof(VPNames)] = {true, true, false};
Das sizeof(VPNames) gibt in diesem Fall vor, dass das Array, genauso groß sein muss, wie VPNames.
Aber es ist denke ich schöner alles in einem zu haben und auch direkt mit einem Namen ansprechen zu können.
Hier hätte man mehrere Stellen, die immer zu berücksichtigen sind, das kann schnell unübersichtlich werden.
Falls es sich hier übrigens um Konstanten handelt, also ein Array, wo der Wert zur Laufzeit nicht mehr geändert wird, dann kannst du anstatt
new
stock const verwenden.
stock sagt aus (egal ob vor globalen Variablen oder Funktionen), dass wenn die Variable (oder die Funktion) nicht im Code benutzt wird, der Compiler es ignorieren kann und so wird kein Speicher reserviert in der .amx Datei.
Das const sorgt dafür, dass die Nutzung optimiert wird und du nicht (evtl. ausversehen) irgendwelche Werte mehr darin nachträglich ändern kannst.