Unbekannt Erros? error 040: duplicate "case" label (value 99)

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
  • G:\Blabla Pure Roleplay\gamemodes\GeTmyselfmade.pwn(63011) : error 040: duplicate "case" label (value 99) Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Error.
    Was ist das für ein Error hab in google gesucht angeblich zu viele Case aber das ist ja so?
    case HDIA_SPAWNMSG:
    {
    ReturnPropertyData(playerid);
    new string[128],haus = Spieler[playerid][pReturnPropertyDataHaus];
    if(response == 0)
    {
    ShowPlayerDialog(playerid,HDIA_AUSWAHL,DIALOG_STYLE_LIST,"Hausverwaltung","Einzahlen\nAuszahlen\nLaggerstand\nBeschreibung ändern\nMiete ändern\nSpawn-Nachricht","Auswählen","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext) || strlen(inputtext) > 64)
    {
    ShowPlayerDialog(playerid,HDIA_SPAWNMSG,DIALOG_STYLE_INPUT,"Haus Verwaltung (Spawn-Nachricht)","Hier kannst du die Nachricht ändern die die Mieter und du,wenn sie/du in deinem Haus spawnen angezeigt bekommen.\nGebe deinen gewünschten Text ein(Beleidigunen sind zu unterlassen):","Ändern","Zurück");
    return SendClientMessage(playerid,GRAU,"Du musst schon einen Text eingeben./Du kannst nicht mehr als 64 zeichen benutzen.");
    }
    else
    {
    strmid(HausInfo[haus][haus_msg],inputtext,0,strlen(inputtext),150);
    format(string,sizeof(string),"Du hast deine Spawn-Nachricht in '%s' umgeändert.",HausInfo[haus][haus_msg]);
    SendClientMessage(playerid,GELB,string);
    UpdateHausLabel(haus,2);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    return 1;
    }
    }
    }

  • Nein das ist nicht davon abhängig das du zuviele case benutzt da gibt es kein Limit.
    Dein Problem ist hier das du hier eine Zahl doppelt benutzt
    besser gesagt die zahl hinter HDIA_SPAWNMSG,


    Also wenn du die case doppelt verwendest


    Beispiel:


    switch(beispiel){
    case 0:{ }
    case 1:{ }
    case 2:{ }
    case 2:{ }


    }


  • Naja bloß das es so aussieht?
    case HDIA_SPAWNMSGG:
    {
    ReturnPropertyData(playerid);
    new string[128],haus = Spieler[playerid][pReturnPropertyDataHaus];
    if(response == 0)
    {
    ShowPlayerDialog(playerid,HDIA_AUSWAHL,DIALOG_STYLE_LIST,"Hausverwaltung","Einzahlen\nAuszahlen\nLaggerstand\nBeschreibung ändern\nMiete ändern\nSpawn-Nachricht","Auswählen","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext) || strlen(inputtext) > 64)
    {
    ShowPlayerDialog(playerid,HDIA_SPAWNMSGG,DIALOG_STYLE_INPUT,"Haus Verwaltung (Spawn-Nachricht)","Hier kannst du die Nachricht ändern die die Mieter und du,wenn sie/du in deinem Haus spawnen angezeigt bekommen.\nGebe deinen gewünschten Text ein(Beleidigunen sind zu unterlassen):","Ändern","Zurück");
    return SendClientMessage(playerid,GRAU,"Du musst schon einen Text eingeben./Du kannst nicht mehr als 64 zeichen benutzen.");
    }
    else
    {
    strmid(HausInfo[haus][haus_msg],inputtext,0,strlen(inputtext),150);
    format(string,sizeof(string),"Du hast deine Spawn-Nachricht in '%s' umgeändert.",HausInfo[haus][haus_msg]);
    SendClientMessage(playerid,GELB,string);
    UpdateHausLabel(haus,2);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    return 1;
    }
    }
    }

  • Bist du eigentlich schwer von Begriff ? der wert der sich hinter HDIA_SPAWNMSG gibt es doppelt

    Achso habs ^^


    Sry hab bissl doppel


    case HDIA_MIETE:
    {
    ReturnPropertyData(playerid);
    new string[128],mietantrag = strval(inputtext),haus = Spieler[playerid][pReturnPropertyDataHaus];
    if(response == 0)
    {
    ShowPlayerDialog(playerid,HDIA_AUSWAHL,DIALOG_STYLE_LIST,"Hausverwaltung","Einzahlen\nAuszahlen\nLaggerstand\nBeschreibung ändern\nMiete ändern\nSpawn-Nachricht","Auswählen","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,HDIA_MIETE,DIALOG_STYLE_INPUT,"Haus Verwaltung (Miete)","Hier kannst du deine Mietpacht für das Haus umändern.\nGebe deinen gewünschten Betrag ein:","Ändern","Zurück");
    return 1;
    }
    if(!IsNumeric(inputtext))
    {
    ShowPlayerDialog(playerid,HDIA_MIETE,DIALOG_STYLE_INPUT,"Haus Verwaltung (Miete)","Hier kannst du deine Mietpacht für das Haus umändern.\nGebe deinen gewünschten Betrag ein:","Ändern","Zurück");
    return 1;
    }
    else
    {
    if(mietantrag<1||mietantrag>1000)return SendClientMessage(playerid,GRAU,"Du kannst die Miete nur zwischen 1 und 1000$ setzen");
    HausInfo[haus][haus_miete] = mietantrag;
    format(string,sizeof(string),"Du hast deine Miete auf %i$ gesetzt.",HausInfo[haus][haus_miete]);
    SendClientMessage(playerid,GELB,string);
    UpdateHausLabel(haus,2);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    ShowPlayerDialog(playerid,HDIA_AUSWAHL,DIALOG_STYLE_LIST,"Hausverwaltung","Einzahlen\nAuszahlen\nLaggerstand\nBeschreibung ändern\nMiete ändern\nSpawn-Nachricht","Auswählen","Abbrechen");
    return 1;
    }
    }
    }
    case HDIA_SPAWNMSGG:
    {
    ReturnPropertyData(playerid);
    new string[128],haus = Spieler[playerid][pReturnPropertyDataHaus];
    if(response == 0)
    {
    ShowPlayerDialog(playerid,HDIA_AUSWAHL,DIALOG_STYLE_LIST,"Hausverwaltung","Einzahlen\nAuszahlen\nLaggerstand\nBeschreibung ändern\nMiete ändern\nSpawn-Nachricht","Auswählen","Abbrechen");
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext) || strlen(inputtext) > 64)
    {
    ShowPlayerDialog(playerid,HDIA_SPAWNMSGG,DIALOG_STYLE_INPUT,"Haus Verwaltung (Spawn-Nachricht)","Hier kannst du die Nachricht ändern die die Mieter und du,wenn sie/du in deinem Haus spawnen angezeigt bekommen.\nGebe deinen gewünschten Text ein(Beleidigunen sind zu unterlassen):","Ändern","Zurück");
    return SendClientMessage(playerid,GRAU,"Du musst schon einen Text eingeben./Du kannst nicht mehr als 64 zeichen benutzen.");
    }
    else
    {
    strmid(HausInfo[haus][haus_msg],inputtext,0,strlen(inputtext),150);
    format(string,sizeof(string),"Du hast deine Spawn-Nachricht in '%s' umgeändert.",HausInfo[haus][haus_msg]);
    SendClientMessage(playerid,GELB,string);
    UpdateHausLabel(haus,2);//funktion 1 wenn das haus ohne besitzer ist,funktion 2 wenn das biz mit besitzer ist
    return 1;
    }
    }
    }


    /edit obwohl das andere ist für Miete naja mhh.
    Ka wo der Doppelt ist
    Ich kopier mal text und such

  • HDIA_MIETE kann ein define sein


    #define HDIA_MIETE 1200


    so nun verbirgt sich hinter HDIA_MIETE der Wert 1200


    erstellst du noch ein define mit dem selben wert


    #define HDIA_SPAWNMSGG 1200


    verbirgt sich auch hinter HDIA_SPAWNMSGG der Wert 1200



    daher ist das hier das selbe


    switch(beispiel){
    case 1200:{ }
    case 1200:{ }
    }
    switch(beispiel){
    case HDIA_MIETE:{ }
    case HDIA_SPAWNMSGG:{ }
    }


    es muss ja nichtmal sein das es zwei defines sind es kann auch eins ein define sein und das andere in einem enum
    enthalten sein wo die wert automatisch erhöht in der reihenfolge


    enum {
    HDIA_X = 1,
    HDIA_Y,
    HDIA_SPAWNMSGG,
    };
    #define HDIA_MIETE 3


    Nun verstanden