Kann net Compilen

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 Compilen und kriege folgenede Erorrs:
    C:\Users\k\Desktop\\gamemodes\.pwn(6295) : warning 225: unreachable code
    C:\Users\k\Desktop\\gamemodes\.pwn(54721) : warning 225: unreachable code


    Hier die Zeilen:
    if(gPlayerAccount[playerid] == 1)
    Hier ein bisschen mehr davon:
    Function OnPlayerSpawn(playerid)
    {
    StopAudioStreamForPlayer(playerid);
    M_OnPlayerSpawn(playerid);
    TextDrawShowForPlayer(playerid,Copyright);
    TextDrawShowForPlayer(playerid,Datum);
    GW_OnPlayerSpawn(playerid);
    if(PlayerInfo[playerid][pTot] == 1 && PlayerInfo[playerid][pLevel] > 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ Krankenhaus ________|");
    SendClientMessage(playerid, COLOR_ORANGE, "Du bist gestorben , deswegen bist du im Krankenhaus");
    SendClientMessage(playerid, COLOR_ORANGE, "Warte 60 Sekunden bis deine Behandlung fertig ist!");
    SetPlayerSpawn(playerid);
    if(IsPlayerInFrac(playerid, 1))
    {
    SetPlayerColor(playerid,NAMECOLOR_LSCOP);
    }
    else if(IsPlayerInFrac(playerid, 4))
    {
    SetPlayerColor(playerid, NAMECOLOR_MEDIC);
    }
    else
    {
    SetPlayerColor(playerid,TEAM_HIT_COLOR);
    }
    ResetPlayerWeapons(playerid);
    return 1;
    }
    STDPlayer[playerid] = 0;
    gTeam[playerid] = PlayerInfo[playerid][pTeam]; //Set the Team
    if (gTeam[playerid] == 4) //medic / criminal reset team
    {
    gTeam[playerid] = 3;
    }
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Du musst dich vorher einloggen oder dir einen Account erstellen! ***");
    Kick(playerid);
    return 1;


    if(gPlayerAccount[playerid] == 1)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    else if(gPlayerAccount[playerid] == 0)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    return 1;



    }



    Zeile 54721:
    new sendername[MAX_PLAYER_NAME];
    Hier ein bisschen mehr:
    if(listitem == 5)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerInterior(playerid) != 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " * Du bist in einem Interior, dort hast du keinen Empfang, geh auf die Straße.");
    return 1;
    }
    if (!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Cop!");
    {
    SendClientMessage(playerid, COLOR_GREY, " * Es ist kein Polizist im Dienst, bitte versuche es später noch einmal");
    return 1;
    }
    new sendername[MAX_PLAYER_NAME];
    new string[256];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "[Leitstelle] %s hat einen Streifenwagen angefordert, Gib (/accept polizei) ein um den Auftrag anzunehmen.", sendername);
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
    {
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    }
    }
    }
    SendClientMessage(playerid, COLOR_LIGHTBLUE, " * Du hast einen Streifenwafen gerufen, warte auf eine Antwort.");
    SetTimerEx("ServiceReset", 30000, false, "i", playerid);
    JustService[playerid] = 1;
    CopCall = playerid;
    return 1;
    }
    }
    }
    }

  • das bedeutet so viel wie diese zeilen können niemals erreicht werden weil einfach zu viele returns verwendet werden. nach jeder möglichkeit beendest du den befehl mit einem return deshalb kommt der befehl niemals bei den zeilen an die den fehlercode haben.
    ein return bedeutet so viel wie abbrechen hier ist der befehl zu ende. wenn darunter noch zeilen sind kommt halt dieser warning
    in meinem script benutze ich return nur für abfragen um eine nachricht zurückzuschicken. ansonsten kommt return 1 nur am ende eines befehles.

  • das bedeutet so viel wie diese zeilen können niemals erreicht werden weil einfach zu viele returns verwendet werden.


    Falsch.


    Man kann nicht zu viele Returns verwenden. Mann kann sie nur falsch einsetzen.


    Er verwendet das Return wie ein Breakpoint inmitten eines Scripts. das heißt inmitten eines Codes außerhalb einer beendenden If Abfrage oder Ende.


    Wenn dein Problem Noch nicht geklärt ist, sendest mir einfach mal deine TV Daten zu;]


    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • Falsch.




    Man kann nicht zu viele Returns verwenden. Mann kann sie nur falsch einsetzen.


    wenn du meinst....
    aber schau dir doch mal diesen codeschnipsel an vielleicht änderst du dann deine meinung und gibst mir recht...



    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Du musst dich vorher einloggen oder dir einen Account erstellen! ***");
    Kick(playerid);
    return 1;
    if(gPlayerAccount[playerid] == 1)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    else if(gPlayerAccount[playerid] == 0)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    return 1;
    }


    wie sollen die 2 if abfragen überhaupt verwendet werden wenn darüber ein return 1; steht?
    einfach das return löschen und gut ist.

  • ne tut mir leid ich erkenn da keinen klammerfehler.. wenn du den gesamten code meinst den er gepostet hat ja aber nicht bei dem wo ich gepostet hab.. aber darum gehts auch überhaupt nicht.


    Also markiere ich es dir mal:


    f(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "** Du musst dich vorher einloggen oder dir einen Account erstellen! ***");
    Kick(playerid);
    return 1;
    }
    Ungültiger Code: Meiner Meinung nach Fehlt da was
    if(gPlayerAccount[playerid] == 1)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    else if(gPlayerAccount[playerid] == 0)
    {
    ForceClassSelection(playerid);
    TogglePlayerSpectating(playerid, 0);
    }
    return 1;
    }


    Gesehen? ^^


    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • und woher willst du wissen dass die 2 if abfragen
    if(gPlayerAccount[playerid] == 1)
    else if(gPlayerAccount[playerid] == 0)


    nicht in diese
    if(gPlayerLogged[playerid] == 0)


    if abfrage gehören??
    es könnte beides sein. aber meine meinung ist nicht falsch deswegen.
    wenn er den ganzen public bis zum ende gepostet hätte wäre es ein bisschen einfacher die klammern zuzuordnen.
    zudem würden bei einem klammerfehler ganz andere errors kommen.

  • Ist es nicht schon beinahe Logisch, dass da n Klammerfehler ist? Kennste überhaupt GF???
    Schau dir Den Code mal von etwas weiter weg an... Was passiert bei einem GF, wente nicht eingeloggt bist und unten auf Spawn klickst??


    Gruss: Sonic

    I didn't hit you. I high fived your face.


  • Ist es nicht schon beinahe Logisch, dass da n Klammerfehler ist? Kennste überhaupt GF???
    Schau dir Den Code mal von etwas weiter weg an... Was passiert bei einem GF, wente nicht eingeloggt bist und unten auf Spawn klickst??


    Man wird gnadenlos Gekickt. Nach einem Kick wird nur noch eine Invalide Playerid zurückgegeben. Deshalb ist das was du sagst nicht möglich.


    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • naja es macht schon sinn das wenn man nachdem man gekickt wurde weitere if abfragen keinen sinn ergeben.
    aber die errors sagen nunmal nicht klammerfehler sondern unreachable code.
    wenn er vorher einen klammerfehler hatte und nun die klammer irgendwo unten wieder eingefügt hat macht das ganze sinn mit der fehlenden klammer..