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
  • So ich habe frage, un zwar



    enum spieler_car
    {
    acVehID,
    Float:acPosX,
    Float:acPosY,
    Float:acPosZ,
    Float:acPosA,
    acColor1,
    acColor2,
    Owner[128],
    Paintjob,
    Spoiler,
    Hood,
    Roof,
    Sideskirt,
    Lamps,
    Nitro,
    Exhaust,
    Wheels,
    Stereo,
    Hydraulics,
    FrontBumper,
    RearBumper,
    VentRight,
    VentLeft,
    NummernSchild,
    AutoID,
    acTank,
    acAbgeschlossen
    }
    new Auto[MAX_PLAYERS][MAX_SLOTS][spieler_car];


    möchte ich dieses enum mit dem verlassen des spielers über eine schleife auf null setzen.

  • for(new i=0;i!=MAX_SLOTS;i++)
    {
    for(new a;a!=_:acAbgeschlossen;a++) Auto[playerid][i][spieler_car:a] = 0;
    }


    Das gibt keine Errors und müsste auch funktionieren,
    das ist schon ne Zeit her das ich das mal gemacht hab :D

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich hab ne bessere Idee - ich mach ein Tutorial darüber (über enum) dann muss ich das nicht 2x schreiben ^^

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • _:acAbgeschlossen


    Nungut, wie dir vielleicht bekannt ist - oder auch nicht - hat jede Variable in einem Enum einen bestimmten Wert.
    Ein kleines Beispiel, an deinem Code


    enum spieler_car
    {
    acVehID, // das hat den Wert von 0 - da es an erster Stelle steht, man könnte ihm auch 1 zuweisen, wäre aber hier speicher VEerlust
    Float:acPosX = 2, // ich hab ihm mal spaßes halber dem Wert 2 gegeben, aber ohne dies = 2 hätte es den Wert 1
    Float:acPosY,
    Float:acPosZ,
    Float:acPosA,
    acColor1,
    acAbgeschlossen // das hier hat den Wert 7 - es wird immer eins hochgezählt, wir haben zwar 7 Variablen, aber da ich die 2. Variable auf 2 gesetzt habe und dann immer +1 gezählt wird, haben wir 7 ;)
    }
    new Auto[MAX_PLAYERS][MAX_SLOTS][spieler_car];
    OK - weiter gehts


    acAbgeschlossen steht an letzter Stelle und hat somit den höchsten Wert, diesen kann man auslesen, in dem man das so macht wie ich es getan habe -> _:acAbgeschlossen
    mit _: entfernen wir den Tag der eigentlich vor der Variable steht.


    Wobei, wenn ich das so schreibe, fällt mir ein, es wäre sinnvoller _:spieler_car zu nutzen, da man dies nicht ändern müsste, wenn man am Ende noch etwas hinzufügt ;)
    spieler_car -> hält die gesammte Größe des Enums - hier 7 -> 0, 2 - 7


    spieler_car:a


    mit diesem Code sprechen wir die Variable im Enum direkt an, man könnte auch
    spieler_car:0
    rein schreiben, es hätte den gleichen Effekt.


    Wir machen dies, da wir sonst keine Möglichkeit haben dies über die Variablen Namen zu lösen.



    Etwas unklar - schreibs drunter ^^

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski