Max Angabe aus Enum lesen

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
  • Ich möchte aus einem Enum herauslesen wie hoch das Maximal ist. Habs mir so gedacht aber das geht nicht:

    #define MAX_INVENTAR Inventar_Name
    enum Inventar_Name
    {
    PolosChickenwings[128],
    FreddysMargarithaPizaa[128],
    Sprunk[128],
    Cannabis[128],
    CrystalMeth[128],
    Heroin[128],
    Kokain[128]
    }



    Finde die Funktion zum auszählen nicht falls es nicht leichter geht. Jemand schnelle Hilfe parat?

  • wie hoch das Maximal ist

    Was denn für ein Maximum?!


    Wie viele Items du hast oder wie viel du mitnehmen darfst?


    Wenn das eh immer gleich ist, mach einfach ein Makro:


    #define MAX_ITEMS 128


    Und wenn es unterschiedlich ist, mach dir für jedes ein Makro ;)


    Auslesen aus dem enum könntest du nur die gesamt Größe und die willst du nicht :)

    ast2ufdyxkb1.png


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

  • Das sind extra Enums und jedes Objekt im Inventar ist dann dort aufgelistet. Wenn ich also alle Objekte im Enum auslesen kann und damit die Max der Liste (wie lang die Liste zu dem Zeitpunkt ist) auslesen kann wäre das genau richtig.

  • wie lang die Liste zu dem Zeitpunkt ist

    Nutze auch dafür einfach ein Makro, da du ja das Skript immer wieder neu compilen musst, damit sich da was ändert.


    Theoretisch kann man es berechnen (vorrausgesetzt du belegst immer für jedes Item ein Array mit 128 Cells):



    printf("Items im Enum: %d", (_:Inventar_Name/128)); //Gibt 7 aus


    ast2ufdyxkb1.png


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

  • enum e_inventar
    {
    PolosChickenwings,
    FreddysMargarithaPizaa,
    Sprunk,
    Cannabis,
    CrystalMeth,
    Heroin,
    Kokain
    }
    new InventarName[e_inventar][64];
    #define MAX_INVENTAR sizeof(InventarName)


    Zuweisungsbeispiel:
    format(InventarName[Sprunk], sizeof(InventarName[]), "Inventar aus Snackautomaten");


    Abfrage wie viele Items es gibt:
    printf("Es gibt %d Inventar Items.", MAX_INVENTAR);