Dein Adminrang ist zu niedrig

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
  • Guten Tag,
    Ich habe ein Problem undzwar wenn ich /setadmin oder /tickets usw schreibe steht da das mein Adminrang zu "niedrig" ist.


    beim Accounts Ordner steht aber alevel = 3 trotzdem klappt es nicht?


    isAdmin(playerid,a_level)
    {
    if(sInfo[playerid][alevel]>=a_level)return 1;
    return 0;
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Premium",GetPVarInt(playerid,"Premium"));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"alevel",GetPVarInt(playerid,"alevel"));
    dini_IntSet(Spielerdatei,"Ban",GetPVarInt(playerid,"Ban"));
    dini_IntSet(Spielerdatei,"Kills",GetPVarInt(playerid,"Kills"));
    dini_IntSet(Spielerdatei,"Deaths",GetPVarInt(playerid,"Deaths"));
    dini_IntSet(Spielerdatei,"Ban",GetPVarInt(playerid,"Ban"));
    dini_IntSet(Spielerdatei,"Warn",GetPVarInt(playerid,"Warn"));
    dini_IntSet(Spielerdatei,"Radio",GetPVarInt(playerid,"Radio"));
    }
    return 1;
    }

    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPVarInt(playerid,"Premium",dini_Int(Spielerdatei,"Premium"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"alevel",dini_Int(Spielerdatei,"alevel"));
    SetPVarInt(playerid,"Ban",dini_Int(Spielerdatei,"Ban"));
    if(GetPVarInt(playerid,"Ban")==1)
    {
    SendClientMessage(playerid,ORANGE,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"Kills",dini_Int(Spielerdatei,"Kills"));
    SetPVarInt(playerid,"Deaths",dini_Int(Spielerdatei,"Deaths"));
    SetPVarInt(playerid,"alevel",dini_Int(Spielerdatei,"alevel"));
    SetPVarInt(playerid,"Warn",dini_Int(Spielerdatei,"Warn"));
    SetPVarInt(playerid,"loggedin",1);
    SetPVarInt(playerid,"Radio",dini_Int(Spielerdatei,"Radio"));
    NORMALSPAWN[playerid] = 1;
    StopAudioStreamForPlayer(playerid);
    return 1;
    }


    enum playerInfo{
    alevel
    }


    zb bei diesem befehl:


    ocmd:setadmin(playerid,params[])
    {
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,GRAU,"Dein Adminrang ist zu niedrig.");
    new pID,a_level;
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"Verwendung: /setadmin [PlayerID] [Adminlevel]");
    sInfo[pID][alevel]=a_level;
    SendClientMessage(pID,GRAU,"Dein Adminrang wurde geändert.");
    SendClientMessage(playerid,ORANGE,"Du hast den Adminrang geändert.");
    return 1;
    }

  • Beim Login bzw LoadAccount fehlt die Zuweisung des Levels auf die Variable "sInfo[playerid][alevel]".


    SetPVarInt(playerid,"alevel",dini_Int(Spielerdatei,"alevel"));
    Damit setzt du NICHT den Wert von alevel des Spielers ( sInfo[playerid][alevel] ).