Errors- enum funkt. nicht richtig

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
  • Guten Tag.
    Dadurch ich mein Gangsystem zurzeit dynamisch machen will stehe ich vor einem Problem:
    So wurde es definiert:
    enum GInfo
    {
    ...
    gcarnumber[MAX_TEAMSVEH][20],//Zeile 169
    gcarsellpreis[MAX_TEAMSVEH]
    ...
    }


    new GangInfo[MAX_TEAMS][GInfo];


    Nun die Zeile die Errors ausgibt:
    format(string,sizeof(string),"Hier können sie gebrauchte Gang-Fahrzeuge verkaufen.\nWenn sie dieses Gang-Fahrzeug verkaufen bekommen sie ein \nViertel des Kaufpreises zurück!\nWenn sie dies machen wollen drücken sie bitte auf \"Verkaufen\".\n \nVerkaufspreis: %i€",GangInfo[myteam][gcarsellpreis[i]]);


    Und zuletzt die Fehler:
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(169) : error 001: expected token: "}", but found "["// Dieser Fehler ist die Variable im enum
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(826) : error 017: undefined symbol "gcarsellpreis"
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(826) : warning 215: expression has no effect
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(826) : error 001: expected token: ";", but found "]"
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(826) : error 029: invalid expression, assumed zero
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(826) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Erklärung: (zu Zeile 169)
    Die letzte Zahl in der Klammer soll die Länge der Variable sein.
    Dadurch sich jetzt mehr Fehler auftischen liegt es wohl am enum.
    Jetzt wollte ich fragen ob es eine Möglichkeit gibt es ohne enum zu machen.


    Danke für eure Hilfe.


    mfg.
    Opa


    EDIT// Überschrift angepasst. habe noch keine Lösung gefunden
    EDIT2//Text hinzugefügt

  • gcarnumber,


    //Zeile 169


    gcarsellpreis


    ich glaube da du da nichts dahinter setzen muss


    bin abe net sicher

  • fail D:


    enum GInfo
    {
    ...,oder hier das komma vergessen? NACHHOLEN!
    gcarnumber[MAX_TEAMSVEH][20],//Zeile 169
    gcarsellpreis[MAX_TEAMSVEH],
    ...Wenn hier noch was kommt muss oben auch noch ein komma
    };


    wenns so aussehen würde
    enum GInfo
    {
    gcarnumber[MAX_TEAMSVEH][20],
    gcarsellpreis[MAX_TEAMSVEH]
    };

    errort er normal nicht ;D


    €1 fehler ausgebessert
    €2 warum macht der das rote immer weg :/

  • So.
    Ich habe nun eine weitere Variante versucht.
    Leider kommt jetzt immer:


    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(170) : error 001: expected token: "}", but found "["
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(1793) : error 017: undefined symbol "gcarx"
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(1793) : error 029: invalid expression, assumed zero
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(1793) : warning 215: expression has no effect
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(1793) : error 001: expected token: ";", but found "]"
    C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(1793) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.
    Wobei ich aber alles richtig habe.
    Mein Code:
    case 1://Kaufen
    {
    for(new i;i<MAX_TEAMSVEH;i++)
    {
    if(GangInfo[myteam][gcar][i]<=399)
    {
    if(GangInfo[myteam][Kasse]>=gcspreis[playerid])
    {
    new number;
    number=i;
    GangInfo[myteam][gcar][i]=gcsid[playerid];
    GangInfo[myteam][gcarx][i]=1004.9217;
    GangInfo[myteam][gcary][i]=-1351.3798;
    GangInfo[myteam][gcarz][i]=13.0647;
    GangInfo[myteam][Kasse]-=gcspreis[playerid];
    GangInfo[myteam][gcarcolor1][i]=0;
    GangInfo[myteam][gcarcolor2][i]=0;
    GangInfo[myteam][gcarsellpreis][i]=gcspreis[playerid]/4;
    gcars[myteam][i]=AddStaticVehicle(GangInfo[myteam][gcar][i],GangInfo[myteam][gcarx][i],GangInfo[myteam][gcary][i],GangInfo[myteam][gcarz][i],GangInfo[myteam][gcarfacing][i],0,0);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(gcars[myteam][i],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(gcars[myteam][i],engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
    SetVehicleNumberPlate(gcar[myteam][i],GangInfo[myteam][gcarnumber][i]);
    SendClientMessage(playerid,ORANGE,"Fahrzeug Erfolgreich gekauft.");
    SendClientMessage(playerid,ORANGE,"Bitte parken sie ihr Fahrzeug mit /gpark.");
    SendClientMessage(playerid,ORANGE,"Weitere Befehle finden sie unter /commands.");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Soviel Geld hat deine Gang nicht!");
    ShowPlayerDialog(playerid,DIALOG_GCARSHOP1_LIST,DIALOG_STYLE_LIST,"Bitte wählen sie ein Auto aus um weitere Optionen auszuwählen","Mesa\nBlista Compact\nComet\nBurrito\nGreenwood\nNebula\nMajestic\nBuccaneer\nGlendale\nHermes\nCamper\nMoonbeam\nVoodoo\nSentinel\nBravura\nLandstalker\nAlpha\nPicador\nStafford","Auswählen","Abbrechen");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Sie haben die maximale Anzahl an Gang-Fahrzeugen erreicht");
    }
    }


    Danke für eure Hilfe.
    mfg.
    Opa
    EDIT// geschriebenes soeben gelöscht!
    EDIT 2// text neu geschrieben

  • Das Problem ist,dass in PAWN maximal 3-Dimensionale Arrays möglich sind.
    Du versucht ein 4-Dimensionales Array zu benutzen.

    Zitat

    ---------------- 1 ------------- 2 -------------- 3 ------------- 4
    GangInfo[MAX_TEAMS][gcarnumber][MAX_TEAMSVEH][20]


    Da kannst nichts gegen machen.Etwas nervig ist es schon, hatte mal das selbe Problem. Weiss aber nicht mehr wie Ich das umgangen habe.

  • Ja, deswegen geht es ja eben nicht.Ein String ist ja nichts anderes als ein Array.
    Eine einfache Lösung gibt es dazu nicht,du musst es irgendwie umgehen.
    Wieso eine gcarnumber überhaupt ein String sein muss, musst du dir selber überlegen.
    Denn eine Nummer ist bei mir nie ein String.


    Und ob es mit den weiteren Fehler was zu tun hat. Höchstwahrscheinlich. Wenn
    das Array schon Fehlerhaft ist, kannst du davon ausgehen, dass es damit Probleme geben wird.