Mehrere "if" mit "else"

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
  • Moin Moin!


    Ich wollte für eine Tor-Funktion mehrere if's und mehrere else mit einander verknüpfen.
    Und zwar:


    Zuerst wird ja überprüft, ob der eingegebene CMD /police oder /p ist:


    Code
    if (strcmp("/police", cmdtext, true, 10) == 0 || strcmp("/p", cmdtext, true, 10) == 0)


    Nun wird geprüft ob der Spieler zum Team "Police" gehört, oder ob er ein Admin ist:

    Code
    if(gTeam[playerid] == TEAM_POLICE || IsInAdmin[playerid] == 1)


    Und an dieser Stelle soll folgendes gesagt werden, falls keins der beiden (kein Polizei, kein Admin) Kriterien erfüllt ist:

    Code
    SendClientMessage(playerid,gelb,"Du bist kein Polizist!");


    Aber wie mache ich das?


    Weiter geht es mit:

    Code
    if(IsPlayerInRangeOfPoint(playerid, 20.0, -1633.412231, 691.471863, -5.891528 || IsInAdmin[playerid] == 1))


    Hier wird ja überprüft, ob der Spieler sich nahe dem Tor befindet, oder ob er ein Admin ist.
    Nun soll hier folgendes ausgegeben werden, sobald das erste nicht zutrifft:


    Code
    SendClientMessage(playerid,gelb,"Du bist zu weit von Tor weg, und kannst es so nicht öffnen!");


    Wenn dann das alles gemacht ist, bewegt sich das Tor halt und es wird geöffnet.
    Aber wie mache ich das mit dem verschachtelten if und else?



    Mit freundlichen Grüßen, LTT


  • if(/*Abfrage*/)
    { //1
    if(/*Abfrage*/)
    { //2
    if(/*Abfrage*/)
    { //3
    //Atktion
    } //3
    //ein else braucht man nicht unbedingt
    } //2
    else
    { //2
    //Aktion
    } //2
    } //1
    else
    {
    if(/*Auch im else kann ein if sein*/)
    {
    //Aktion
    }
    }

    Hoffe, dir damit das Prinzip nahebringen zu können.
    Korrektes Einrücken (Jede Verschachtelung einen Tab-Sprung weiter innen) ist Pflicht, sonst verliert man recht schnell die Übersicht.


  • if (strcmp("/police", cmdtext, true, 10) == 0 || strcmp("/p", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] != TEAM_POLICE && IsInAdmin[playerid] != 1)return SendClientMessage(playerid,gelb,"Du bist kein Polizist!");
    if(!IsPlayerInRangeOfPoint(playerid, 20.0, -1633.412231, 691.471863, -5.891528) && IsInAdmin[playerid] != 1)) return SendClientMessage(playerid,gelb,"Du bist zu weit von Tor weg, und kannst es so nicht öffnen!");


    // hier was du machen willst
    }


    //Edit Abfragenfehler behoben

    Einmal editiert, zuletzt von RG_ ()


  • if (strcmp("/police", cmdtext, true, 10) == 0 || strcmp("/p", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] == TEAM_POLICE || IsInAdmin[playerid] == 1)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, -1633.412231, 691.471863, -5.891528 || IsInAdmin[playerid] == 1))
    {
    /*Tor bewegung*/
    }
    else
    {
    SendClientMessage(playerid,gelb,"Du bist zu weit von Tor weg, und kannst es so nicht öffnen!");
    }
    }
    else
    {
    SendClientMessage(playerid,gelb,"Du bist kein Polizist!");
    }
    }



    Hoffe konnte dir weiterhelfen.
    MfG


    //Edit Code verbesserung + Text hinzugefügt


    Da waren 2 schneller 8|