Compiler stürzt ab(banksystem)

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
  • Hi ich mache gerade ein banksystem mit automaten und so:
    Wenn ich das drinhabe kackt er mir ab wenn net dann bekomm ich errors wie undefined symbol DIALOG_ATM obwohl ich ihn ja nur bei ondialogresponse rausnehme naja hier is er:

    if(dialogid == DIALOG_ATM)//Einzahlen\nAuszahlen\nKontostand\nÜberweisungGetPVarInt(playerid,"Bank")
    {
    new str[256];
    switch(listitem)
    {
    new str[256];
    case 0:
    {
    new str[256];
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN,DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    case 1:
    {
    format(str, 256, "Gib den Betrag ein, den du ausgezahlt haben möchtest!");
    ShowPlayerDialog(playerid, DIALOG_ATMAUS,DIALOG_STYLE_INPUT, "Auszahlung", str, "Auszahlen", "Abbrechen");
    }
    case 2:
    {
    format(str, 256, "Ihr momentaner Kontostand beträgt: %d $", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid,DIALOG_ATMSTAND,DIALOG_STYLE_MSGBOX, "Kontostand", str, "Zurück", "Ende");
    }
    case 3:
    {
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", PlayerInfo[playerid][pAccount]);
    ShowPlayerDialog(playerid,DIALOG_ATMÜBERW, DIALOG_STYLE_INPUT, "Überweisen", str, "Weiter", "Abbrechen");
    }
    }
    }

  • Du hast nen Klammerfehler. mach es mal so:
    if(dialogid == DIALOG_ATM)//Einzahlen\nAuszahlen\nKontostand\nÜberweisungGetPVarInt(playerid,"Bank")
    {
    new str[256];
    switch(listitem)
    {
    new str[256];
    case 0:
    {
    new str[256];
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN,DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    case 1:
    {
    format(str, 256, "Gib den Betrag ein, den du ausgezahlt haben möchtest!");
    ShowPlayerDialog(playerid, DIALOG_ATMAUS,DIALOG_STYLE_INPUT, "Auszahlung", str, "Auszahlen", "Abbrechen");
    }
    case 2:
    {
    format(str, 256, "Ihr momentaner Kontostand beträgt: %d $", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid,DIALOG_ATMSTAND,DIALOG_STYLE_MSGBOX, "Kontostand", str, "Zurück", "Ende");
    }
    case 3:
    {
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", PlayerInfo[playerid][pAccount]);
    ShowPlayerDialog(playerid,DIALOG_ATMÜBERW, DIALOG_STYLE_INPUT, "Überweisen", str, "Weiter", "Abbrechen");
    }
    }
    }
    }

  • ne geht noch nicht hier mal mein ganzer kram:

    if(dialogid == DIALOG_ATM)//Einzahlen\nAuszahlen\nKontostand\nÜberweisungGetPVarInt(playerid,"Bank")
    {
    new str[256];
    switch(listitem)
    {
    new str[256];
    case 0:
    {
    new str[256];
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN,DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    case 1:
    {
    format(str, 256, "Gib den Betrag ein, den du ausgezahlt haben möchtest!");
    ShowPlayerDialog(playerid, DIALOG_ATMAUS,DIALOG_STYLE_INPUT, "Auszahlung", str, "Auszahlen", "Abbrechen");
    }
    case 2:
    {
    format(str, 256, "Ihr momentaner Kontostand beträgt: %d $", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid,DIALOG_ATMSTAND,DIALOG_STYLE_MSGBOX, "Kontostand", str, "Zurück", "Ende");
    }
    case 3:
    {
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", PlayerInfo[playerid][pAccount]);
    ShowPlayerDialog(playerid,DIALOG_ATMÜBERW, DIALOG_STYLE_INPUT, "Überweisen", str, "Weiter", "Abbrechen");
    }
    }
    }
    if(dialogid == DIALOG_ATMSTAND)
    {
    if(response)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM,DIALOG_STYLE_LIST, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    if(!response)
    {
    ShowPlayerDialog(playerid, DIALOG_ATM, DIALOG_STYLE_LIST, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    if(dialogid == DIALOG_ATMEIN)
    {
    if(response)
    {
    new str[256];
    new betrag = strval(inputtext);
    if(betrag > GetPlayerMoney(playerid) || betrag > 99999999 || betrag <= 0)
    {
    SendClientMessage(playerid, BLAU, "So viel Geld hast du nicht!");
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN, DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    else if(betrag < GetPlayerMoney(playerid) && betrag < GetPlayerMoney(playerid))
    {
    GivePlayerMoney(playerid, -= betrag;
    SetPVarInt(playerid,"Bank", += betrag;
    GivePlayerMoney(playerid, -betrag);
    format(str, 256, "Alter Kontostand: %d $\nEingezahlt: %d $\nNeuer Kontostand: %d $", GetPVarInt(playerid,"Bank",-betrag), betrag, GetPVarInt(playerid,"Bank"));
    SendClientMessage(playerid, WEISS, str);
    }
    }
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    if(dialogid == DIALOG_ATMAUS)
    {
    if(response)
    new str[256];
    {
    new betrag = strval(inputtext);
    if(betrag > GetPVarInt(playerid,"Bank" || betrag > 100000000 || betrag <= 0)
    {
    SendClientMessage(playerid, BLAU, "Ungültiger Betrag!");
    format(str, 256, "Kontostand: %d$\nGib den Betrag ein, den du ausgezahlt haben möchtest!", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid, DIALOG_ATMAUS, DIALOG_STYLE_INPUT, "Auszahlen", str, "Auszahlen", "Abbrechen");
    }
    else
    {

    SetPVarInt(playerid,"Bank",-= betrag);
    GivePlayerMoney(playerid, betrag);
    format(str, 256, "Alter Kontostand: %d $\nAusgezahlt: %d $\nNeuer Kontostand: %d $", GetPVarInt(playerid,"Bank",+betrag), betrag, GetPVarInt(playerid,"Bank"));
    SendClientMessage(playerid,WEISS, str);
    }
    }
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    if(dialogid == ATMÜBERW)
    {
    if(response)
    {
    new TransferInfo[2][20], transferid;
    if(transferid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, COLOR_GREY, " Ungülte Eingabe!");
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid, ATMÜBERW, 1, "Überweisen", str, "Weiter", "Abbrechen");
    }
    else
    {
    split(inputtext, TransferInfo, ':');
    transferid = ReturnUser(TransferInfo[0]);
    if(strval(TransferInfo[1]) > 100000000 || strval(TransferInfo[1]) <= 0 || strval(TransferInfo[1]) > GetPVarInt(playerid,"Bank"))
    {
    SendClientMessage(playerid, COLOR_GREY, " Ungültiger Betrag!");


    }
    else
    {
    GetPVarInt(transferid,"Bank",+=strval(TransferInfo[1])
    GetPVarInt(transferid,"Bank",-=strval(TransferInfo[1])
    format(str, 256, " Du hast %s %d $ überwiesen!", pName(playerid), strval(TransferInfo[1]));
    SendClientMessage(playerid,BLAU, str);
    format(str, 256, " %s hat dir %d $ auf dein Konto überwiesen!", pName(playerid), strval(TransferInfo[1]));
    SendClientMessage(playerid, BLAU, str);
    }
    }
    }
    if(!response)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank", "Einzahlen\nAuszahlen\nÜberweisen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }

  • sry was falsch gemacht ^^
    so gehts:

    if(dialogid == DIALOG_ATM)//Einzahlen\nAuszahlen\nKontostand\nÜberweisungGetPVarInt(playerid,"Bank")
    {
    new str[256];
    switch(listitem)
    {
    new str[256];
    case 0:
    {
    new str[256];
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN,DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    case 1:
    {
    format(str, 256, "Gib den Betrag ein, den du ausgezahlt haben möchtest!");
    ShowPlayerDialog(playerid, DIALOG_ATMAUS,DIALOG_STYLE_INPUT, "Auszahlung", str, "Auszahlen", "Abbrechen");
    }
    case 2:
    {
    format(str, 256, "Ihr momentaner Kontostand beträgt: %d $", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid,DIALOG_ATMSTAND,DIALOG_STYLE_MSGBOX, "Kontostand", str, "Zurück", "Ende");
    }
    case 3:
    {
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", PlayerInfo[playerid][pAccount]);
    ShowPlayerDialog(playerid,DIALOG_ATMÜBERW, DIALOG_STYLE_INPUT, "Überweisen", str, "Weiter", "Abbrechen");
    }
    }


  • jo aber:
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(49) : warning 201: redefinition of constant/macro (symbol "DIALOG_ATMÜBERW")
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(368) : error 017: undefined symbol "DIALOG_ATM"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1209) : error 017: undefined symbol "DIALOG_ATM"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1242) : error 017: undefined symbol "DIALOG_ATM"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1246) : error 017: undefined symbol "DIALOG_ATM"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1263) : error 029: invalid expression, assumed zero
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1263) : warning 215: expression has no effect
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1264) : error 029: invalid expression, assumed zero
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1264) : warning 215: expression has no effect
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1266) : warning 202: number of arguments does not match definition
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1272) : error 017: undefined symbol "DIALOG_ATM"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1291) : error 029: invalid expression, assumed zero
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1291) : warning 215: expression has no effect
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1291) : error 001: expected token: ";", but found ")"
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1291) : error 029: invalid expression, assumed zero
    C:\Users\DereezZeD\Desktop\Selfmade-server\gamemodes\SelfmadeV0.0.5.pwn(1291) : fatal error 107: too many error messages on one line


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



    11 Errors.



    Einmal editiert, zuletzt von _(DereezZeD)_ ()

  • DIALOG_ATM musste auch sozusagen generieren
    und du vergisst in manchen Zeilen zeichen wie ; oder )

  • wie generieren^^ habs definiert
    ..............
    ...............
    ..............15 wörter 6 zeichen andersrum

  • Generieren heißt für mich wie: new, forward usw...
    und wie gesagt du hast zeichen vergessen *siehe oben welche*

  • Habe mal das ganze ueberflogen und die Fehler kommentiert, die mir direkt aufgefallen sind.

    if(dialogid == DIALOG_ATM)
    {
    new str[256]; // 1.
    switch(listitem)
    {
    new str[256]; // 2. - doppelt haelt besser? + kann keine neue Variable in switch erstellen
    case 0:
    {
    new str[256]; // 3. + kann keine neue Variable in switch erstellen
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!");
    ShowPlayerDialog(playerid,DIALOG_ATMEIN,DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    case 1:
    {
    format(str, 256, "Gib den Betrag ein, den du ausgezahlt haben möchtest!");
    ShowPlayerDialog(playerid, DIALOG_ATMAUS,DIALOG_STYLE_INPUT, "Auszahlung", str, "Auszahlen", "Abbrechen");
    }
    case 2:
    {
    format(str, 256, "Ihr momentaner Kontostand beträgt: %d $", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid,DIALOG_ATMSTAND,DIALOG_STYLE_MSGBOX, "Kontostand", str, "Zurück", "Ende");
    }
    case 3:
    {
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", PlayerInfo[playerid][pAccount]);
    ShowPlayerDialog(playerid,DIALOG_ATMÜBERW, DIALOG_STYLE_INPUT, "Überweisen", str, "Weiter", "Abbrechen");
    }
    }
    }
    else if(dialogid == DIALOG_ATMSTAND) // wenn es bereits == DIALOG_ATM ist kann es nicht auch == DIALOG_ATMSTAND sein
    {
    if(response)
    {
    ShowPlayerDialog(playerid,DIALOG_ATM,DIALOG_STYLE_LIST, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    if(!response)
    {
    ShowPlayerDialog(playerid, DIALOG_ATM, DIALOG_STYLE_LIST, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    else if(dialogid == DIALOG_ATMEIN) // wenn es bereits == .. ist kann es nicht auch == .. sein
    {
    if(response)
    {
    new str[256];
    new betrag = strval(inputtext);
    if(betrag > GetPlayerMoney(playerid) || betrag > 99999999 || betrag <= 0)
    {
    SendClientMessage(playerid, BLAU, "So viel Geld hast du nicht!");
    format(str, 256, "Gib den Betrag ein, den du einzahlen möchtest!"); // haette man auch als statischen String verwenden koennen, da nichts variable ist an diesem string
    ShowPlayerDialog(playerid,DIALOG_ATMEIN, DIALOG_STYLE_INPUT, "Einzahlen", str, "Einzahlen", "Abbrechen");
    }
    else if(betrag < GetPlayerMoney(playerid) && betrag < GetPlayerMoney(playerid)) // Erleichtertes cheaten, wenn GetPlayerMoney nicht zu einer GetPVarInt funktion umgeschrieben ist
    {
    GivePlayerMoney(playerid, -= betrag; // -= funktioniert nur bei Variablen so
    SetPVarInt(playerid,"Bank", += betrag; // Warum Versuchst du dem Spieler 'betrag' abzuziehen, aber versuchst ihm 'betrag' in der internen Variable drauf zu rechnen?
    GivePlayerMoney(playerid, -betrag); // Doppelt haelt besser?
    format(str, 256, "Alter Kontostand: %d $\nEingezahlt: %d $\nNeuer Kontostand: %d $", GetPVarInt(playerid,"Bank",-betrag), // GetPVarInt( playerid, variableName, value )??
    betrag, GetPVarInt(playerid,"Bank")); // GetPVarInt( playerid, variableName )
    SendClientMessage(playerid, WEISS, str);
    }
    }
    if(!response) // unnoetig, da bereits vorher ueberprueft wurde ob == true, kann mit else rechenzeit einsparen
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    else if(dialogid == DIALOG_ATMAUS)
    {
    if(response)
    new str[256]; // nur 'str' erstellen, wenn response positiv und danach gleich wieder loeschen? Eine zeile hoeher..
    {
    new betrag = strval(inputtext);
    if(betrag > GetPVarInt(playerid,"Bank" || betrag > 100000000 || betrag <= 0) // GetPVarInt (interne Variable) anstatt die, die vom Client kommt - gut, aber
    // funktionsaufruf zu GetPVarInt() wird nicht geschlossen
    {
    SendClientMessage(playerid, BLAU, "Ungültiger Betrag!");
    format(str, 256, "Kontostand: %d$\nGib den Betrag ein, den du ausgezahlt haben möchtest!", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid, DIALOG_ATMAUS, DIALOG_STYLE_INPUT, "Auszahlen", str, "Auszahlen", "Abbrechen");
    }
    else
    {
    SetPVarInt(playerid,"Bank",-= betrag); // -= funktioniert so nicht, nur mit variablen
    GivePlayerMoney(playerid, betrag); // -betrag in der internen Variable und +betrag in der PlayerMoney Variable vom Client?
    format(str, 256, "Alter Kontostand: %d $\nAusgezahlt: %d $\nNeuer Kontostand: %d $", GetPVarInt(playerid,"Bank",+betrag), // GetPVarInt( playerid, variableName, value )??
    betrag, GetPVarInt(playerid,"Bank")); // GetPVarInt( playerid, variableName )
    SendClientMessage(playerid,WEISS, str);
    }
    }
    if(!response) // .. else
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank Automat", "Einzahlen\nAuszahlen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }
    else if(dialogid == ATMÜBERW) // ..
    {
    if(response)
    {
    new TransferInfo[2][20], transferid;
    if(transferid == INVALID_PLAYER_ID) // ? transferid wurde noch kein Wert zugewiesen, warum wird diese Variable dann schon verwendet? halb fertiger code?
    {
    SendClientMessage(playerid, COLOR_GREY, " Ungülte Eingabe!");
    format(str, 256, "Kontostand: %d $\nGib den Spielernamen/ID des Spieler an, dem du etwas überweisen möchtest\ngetrennt durch einem ':' vom Betrag, den du überweisen möchtest.\nBeispiel: PlayerA 10000 überweisen: PlayerA:10000", GetPVarInt(playerid,"Bank"));
    ShowPlayerDialog(playerid, ATMÜBERW, 1, "Überweisen", str, "Weiter", "Abbrechen");
    }
    else
    {
    split(inputtext, TransferInfo, ':');
    transferid = ReturnUser(TransferInfo[0]);
    if(strval(TransferInfo[1]) > 100000000 || strval(TransferInfo[1]) <= 0 || strval(TransferInfo[1]) > GetPVarInt(playerid,"Bank"))
    {
    SendClientMessage(playerid, COLOR_GREY, " Ungültiger Betrag!");


    }
    else
    {
    GetPVarInt(transferid,"Bank",+=strval(TransferInfo[1]) // ); fehlt und += funktioniert nur bei Variablen
    GetPVarInt(transferid,"Bank",-=strval(TransferInfo[1]) // das gleiche + warum wird hier +Value und direkt danach -Value gemacht..
    format(str, 256, " Du hast %s %d $ überwiesen!", pName(playerid), strval(TransferInfo[1]));
    // pName(playerid) ist korrekt, wenn pName eine Funktion und kein Array ist, ansonsten pName[playerid]
    SendClientMessage(playerid,BLAU, str);
    format(str, 256, " %s hat dir %d $ auf dein Konto überwiesen!", pName(playerid), strval(TransferInfo[1]));
    SendClientMessage(playerid, BLAU, str); // transferid nicht playerid?
    }
    }
    }
    if(!response) // .. else
    {
    ShowPlayerDialog(playerid,DIALOG_ATM, 2, "Bank", "Einzahlen\nAuszahlen\nÜberweisen\nKontostand\nÜberweisung", "Auswählen", "Ende");
    }
    }


    Zeig mal den Teil in dem du DIALOG_ATM definiert hast. Vielleicht hast du bei den defines DIALOG_ATMÜBERW mit DIALOG_ATM vertauscht, denn _ATM kann nicht gefunden werden aber dafuer _ATMUEBERW zweimal vorhanden.


    Ausserdem ist es hilfreich, wenn du die Zeilen, in denen Error sind kommentierst. Am besten mit der Error-Beschreibung. Ansonsten muss man nach den Error-Zeilen suchen und bei so vielen Zeilen (hast mehr als 100 Zeilen gepostet..) hat wohl kaum einer Lust dazu herum zu raetseln welche Zeile denn nun Zeile 731 sein koennte.