Befehlprobleme

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
  • Nabend Community.
    Ich habe ein folgendes Problem:


    Ich habe mir mal ein Kick befehl geschrieben:



    ocmd:kick(playerid,params[])
    {
    if(sInfo[playerid][Adminlevel] == 1 || 2 || 3)
    {
    new kick_nachricht[128],pid,reason;
    if(sscanf(params,"us",pid,reason))return SCM(playerid,-1,"Fehlermeldung: /kick [SpielerID] [Grund]");
    format(kick_nachricht,sizeof(kick_nachricht),"Serverinfo: %s wurde wegen %s vom Admin %s gekickt!",sName(pid),reason,sName(playerid));
    SCMTA(COLOR_SERVERINFO,kick_nachricht);
    Kick(pid);
    }
    else
    {
    SCM(playerid,-1,"Fehlermeldung: Nur Admins mit dem Rang 1 oder höher können diesen Befehl benutzen!");
    }
    return 1;
    }


    Mein Adminlevel ist 0, das heist es sollte eigendlich die Message kommen das nur Admins mit dem Rang 1 oder höher diesen Befehl benutzen können.
    Jedoch bekomme ich die Message: "Fehlermeldung: /kick [SpielerID] [Grund]"
    Vielleicht hat jemand eine Lösung für mein Problem.


    MfG

  • ocmd:kick(playerid,params[])
    {
    if(sInfo[playerid][Adminlevel] == 1 || 2 || 3) return SCM(playerid,-1,"Fehlermeldung: Nur Admins mit dem Rang 1 oder höher können diesen Befehl benutzen!");
    new kick_nachricht[128],pid,reason["Größe"];
    if(sscanf(params,"us["Größe"]",pid,reason))return SCM(playerid,-1,"Fehlermeldung: /kick [SpielerID] [Grund]");
    format(kick_nachricht,sizeof(kick_nachricht),"Serverinfo: %s wurde wegen %s vom Admin %s gekickt!",sName(pid),reason,sName(playerid));
    SCMTA(COLOR_SERVERINFO,kick_nachricht);
    Kick(pid);
    return 1;
    }


    Probiers mal so


    /edit: "Größe" mit einer Zahl ersetzen, da reason ein string ist.

  • Was soll das denn werden?

    if(sInfo[playerid][Adminlevel] == 1 || 2 || 3)


    Du musst für jeden Rang extra abfragen:

    if(sInfo[playerid][Adminlevel] == 1 || sInfo[playerid][Adminlevel] == 2 || sInfo[playerid][Adminlevel] == 3)


    Aber bei dir reicht das:

    if(!sInfo[playerid][Adminlevel]) // Wenn sein Adminlevel 0=Kein ist


    Gruß, Piet