Enum & switch case?

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
  • enum Gangzone
    {
    Float:MinX,
    Float:MinY,
    Float:MaxX,
    Float:MaxY,
    Besitzer
    }
    new Zone[Gangzone];


    switch(Zone[Besitzer])
    {
    case 0: {"Grove Street"}
    case 1: { "Ballas Family" }
    case 2: { "Los Vagos" }
    case 3: { "Atzecas" }
    }


    Hallo für die Codes bekomme ich folgende Errors:
    C:\Users\pc\Desktop\Server\gamemodes\DMServer.pwn(77) : error 010: invalid function or declaration
    C:\Users\pc\Desktop\Server\gamemodes\DMServer.pwn(79) : error 010: invalid function or declaration
    C:\Users\pc\Desktop\Server\gamemodes\DMServer.pwn(80) : error 010: invalid function or declaration
    C:\Users\pc\Desktop\Server\gamemodes\DMServer.pwn(81) : error 010: invalid function or declaration
    C:\Users\pc\Desktop\Server\gamemodes\DMServer.pwn(82) : error 010: invalid function or declaration


    Was genau ist falsch, bzw wie muss ich es "schreiben"?


    MfG

  • case 0: {"Grove Street"}
    Das da macht den error, ebenso.die Zeilen darunter. Du musst den Wert entweder zurückgeben oder in einer variable speichern.


    case 0: return "Grove Street";
    oder
    case 0: Name = "Grove Street";
    Dabei nicht vergessen die variable zu deklarieren.

  • case 0: Name = "Grove Street";


    Mit Return gehts nicht :S
    Und deklarieren mit new Name; oder mit new Name[30];
    ?



    Edit: Beide Varianten funktzionieren nicht:
    Sowohl returrn als auch Name
    Habe Name mit beiden deklinationen versucht einmal mit
    new Name;
    & mit
    new Name[40];


    Immerr die gleichen Errors


    MfG

  • i


    enum Gangzone
    {
    Float:MinX,
    Float:MinY,
    Float:MaxX,
    Float:MaxY,
    Besitzer
    }
    new Zone[Gangzone];


    new Name;
    switch(Zone[Besitzer])
    {
    case 0: Name = "Grove Street";
    case 1: Name = "Ballas Family";
    case 2: Name = "Los Vagos";
    case 3: Name = "Atzecas";
    }


    Mehr Code hab ich inzwischen nicht...


    Bei Name hab ich auch schon Name[40];
    versucht..

  • Jetzt ist mir das auch klar, das kann nicht tun. Ich mach es dir mal vor in der Hoffnung du verstehst es.

    #define MAX_ZONES 10
    enum Gangzone
    {
    Float:MinX,
    Float:MinY,
    Float:MaxX,
    Float:MaxY,
    Besitzer
    }
    new Zone[MAX_ZONES][Gangzone];


    stock GetBesitzerName(zID)
    {
    switch(Zone[zID][Besitzer])
    {
    case 0: return "Grove Street";
    case 1: return "Ballas Family";
    case 2: return "Los Vagos";
    case 3: return "Atzecas";
    }
    return "INVALID";
    }


    Zu verwenden:
    GetBesitzerName(ID der Zone);


    EDIT:
    IPrototypeI: Danke für die Verbesserung (Posts darunter). Ich hatte mein Hirn wohl wo anders. :wacko:

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()


  • Bei dem Code stürzt der Compiler ab..



    MfG

  • Blood.


    Weil du so auch kein array zurück geben kannst, wie soll auch so der Memory wieder frei geben werden.


    so sollte es gehen.

    stock GetBesitzerName(zID)
    {
    new fName[20]="INVALID";
    switch(Zone[zID][Besitzer])
    {
    case 0: fName="Grove Street";
    case 1: fName="Ballas Family";
    case 2: fName="Los Vagos";
    case 3: fName="Atzecas";
    }
    return fName;
    }