OnPlayerCommandText

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
  • Hey Leute,
    wie kann ich Befehle von diesen Abfragen ausklammern ?

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(SpielerInfo[playerid][pPrisonTime] >= 1)
    {
    SendClientMessage(playerid,ROT,"Du kannst im Prison keine Befehle nutzen.");
    return 1;
    }
    if(SpielerInfo[playerid][pJailTime] >= 1)
    {
    SendClientMessage(playerid,ROT,"Du kannst im Knast keine Befehle nutzen.");
    return 1;
    }
    return SendClientMessage(playerid,GRAU,"Dieser Befehl exestiert nicht.");
    }



    Heißt es sollen zwei Befehle sein Die NICHT davon betroffen sind, sondern die machen auch im Knast und im Prison nutzen kann.
    Ich möchte nicht in jedem Befehl noch eine Abfrage drinne haben.

  • Du kannst dazu einfach die Operatoren '||' verwenden, es bedeutet soviel wie, 'oder'.
    Falls du es anderst meinst kannst du also auch 'else if' verwenden.


    Hast du sonst noch fragen zu Operatoren: http://www2.informatik.uni-halle.de/lehre/c/c_operat.html



    if(SpielerInfo[playerid][pPrisonTime] >= 1 || SpielerInfo[playerid][pJailTime] >= 1)
    {
    SendClientMessage(playerid,ROT,"Du kannst keine Befehle verwenden wenn du Gefangen bist.");
    return 1;
    }

  • Hier ich hoffe ich habe es richtig verstanden:

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(SpielerInfo[playerid][pPrisonTime] >= 1 && !strcmp(cmdtext, "/Befehl1") && !strcmp(cmdtext, "/Befehl2") )
    {
    SendClientMessage(playerid,ROT,"Du kannst im Prison keine Befehle nutzen.");
    return 1;
    }
    if(SpielerInfo[playerid][pJailTime] >= 1 && !strcmp(cmdtext, "/Befehl1") && !strcmp(cmdtext, "/Befehl2"))
    {
    SendClientMessage(playerid,ROT,"Du kannst im Knast keine Befehle nutzen.");
    return 1;
    }
    return SendClientMessage(playerid,GRAU,"Dieser Befehl exestiert nicht.");
    }

  • xGreekz7x:
    Das ist aber eine doofe Art da man dies dann für mehrere Befehle machen muss.


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(SpielerInfo[playerid][pPrisonTime] >= 1 || SpielerInfo[playerid][pJailTime] >= 1)
    {
    SendClientMessage(playerid,ROT,"Du kannst keine Befehle verwenden wenn du Gefangen bist.");
    return 1;
    }
    return SendClientMessage(playerid,GRAU,"Dieser Befehl exestiert nicht.");
    }


    #SchulPC, falls fehler drin enthalten sein sollten.


    mfg :thumbup:


  • Du verstehst ja nicht mal den Code...


    Der Code schließt /Befehl1 und /Befehl2 aus, d.h. wenn man im Knast ist kann man /Befehl1 und /Befehl2 ausführen während man die anderen nicht ausführen kann 8|