Guten Tag,
ich hätte eine Frage. Und zwar, wie erstellt man Arrays in enums?
Zum Beispiel:
wie kann man nun damit arbeiten?
Ich kriege bereits beim definieren Warnings (tag mismatch):
Viele Grüße
Gimbo
Guten Tag,
ich hätte eine Frage. Und zwar, wie erstellt man Arrays in enums?
Zum Beispiel:
wie kann man nun damit arbeiten?
Ich kriege bereits beim definieren Warnings (tag mismatch):
Viele Grüße
Gimbo
Bei den Werten hast du vor der 0 eine eckige Klammer anstatt einer geschweiften Klammer.
Außer der eckigen Klammer ist das genau richtig. Arrays werden immer mit geschweiften Klammern initialisiert.
Hier ein Beispiel:
#include a_samp
main() {}
enum enum_with_array
{
i, ix, idx, indx, index, array[5]
}
new arr[1][enum_with_array] = {
{1,2,3,4,5,{6,7,8,9,0}}
};
public OnGameModeInit()
{
printf("%i",arr[0][i]); // output: 1
printf("%i",arr[0][ix]); // output: 2
printf("%i",arr[0][idx]); // output: 3
printf("%i",arr[0][indx]); // output: 4
printf("%i",arr[0][index]); // output: 5
printf("%i",arr[0][array][0]); // output: 6
printf("%i",arr[0][array][1]); // output: 7
printf("%i",arr[0][array][2]); // output: 8
printf("%i",arr[0][array][3]); // output: 9
printf("%i",arr[0][array][4]); // output: 0
return 1;
}
Alles anzeigen
Ja, die eckige Klammer war ein Optikfehler, im Script hab ichs richtig.
@Tusk, so wie du es gemacht hast. Das sind doch 3 dimensionale Arrays oder so ?
Hatte mal sowas gelesen, es funktioniert wunderbar, danke dafür!
Ich hatte es davor so versucht, arr[0][array[0]]. Das funktionierte nicht, ich kann mir aber nicht erklären warum
Viele Grüße
Gimbo
Das sind doch 3 dimensionale Arrays oder so ?
Nein, das sieht nur so aus. Kommt von der Schreibweise, dass das Array außerhalb steht.
enum test {
id,
var[5]
}
new testvars[][test] = {
{1, {0, 1, 2, 3, 4}},
{2, {0, 1, 2, 3, 4}}
};
public OnGameModeInit()
{
printf("%d", testvars[0][var][2]); //Das Array muss außerhalb der Klammer stehen
return 1;
}
Alles klar, danke für die Aufklärung
Viele Grüße
Gimbo