Problem mit enum

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,


    habe folgenden Code:


    enum value{
    armour = 0,
    sniper = 0,
    shotgun = 1,
    onlydeagle = 0
    };


    new settings[value];



    Und dann bei OnDialogResponse:


    if(settings[shotgun]==0){
    settings[shotgun] = 1;
    SendClientMessageToAll(ROT,"**Ein Admin hat Shotgun für Team DM aktiviert.**");
    }else{
    settings[shotgun] = 0;
    SendClientMessageToAll(ROT,"**Ein Admin hat Shotgun für Team DM deaktiviert.**");
    }


    Ich kann allen variablen im Enum verwenden, nur diese eine nicht.


    Fehler:

    Zitat

    error 032: array index out of bounds (variable "settings")


    Dies bei allen Zeilen, wo
    settings[shotgun]
    vorkommt.


    Ich finde den Fehler nicht, was mache ich falsch?


    //E: Habe nun entdeckt, dass es an dem "= 1" im Enum liegt. Aber wie kann ich der Variable im Enum nun standartmäßig eine 1 zuweisen?
    Grüße

  • //E: Habe nun entdeckt, dass es an dem "= 1" im Enum liegt. Aber wie kann ich der Variable im Enum nun standartmäßig eine 1 zuweisen?


    Zunächst, gebe ich dir den Tipp, dass du noch einen Team_Array brauchst, damit diese Values nicht für alle Teams gleich sind ^^


    Mach sowas:


    #define MAX_TEAM 10


    new settings[MAX_TEAM][value];


    //NUtzung:
    settings[0][armour] = 1; //Jetzt ist für Team 0 Armor auf 1 und nicht für alle!


    und um alle Variablen auf 1 zu setzen (für alle Teams):


    for(new a; a!=_:onlydeagle; a++) {
    for(new i; i<MAX_TEAM; i++) settings[i][value:a] = 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • Auf die einfachsten Sachen kommt man nicht. :D Danke.