Adminstrator System funktioniert nicht so wie ich das eigentlich möchte

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
  • Hallo.
    Ich bin gerade an der Arbeit, ein Admin system zu schreiben. Bloß, wenn ich bei den Accounts bei mir bei Adminlevel 3 eingebe (3 ist Owner)
    und ich im spiel /makeadmin 0 3 mache, kommt dort die Nachricht, die kommen sollte. Aber, wenn ich das dannach mache, kommt dort der Fehler, das ich das nicht machen kann. Und in meinen Accounts steht wieder Adminlevel 0 drinne.
    Kann mir jemand helfen?
    Hier, der Code.


    ocmd:makeadmin(playerid,params[])
    {
    new alevel;
    new pid;
    if(!IstSpielerAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Adminstrator und darfst diesen Command nicht nutzen!");
    if(sscanf(params,"ud", pid, alevel))return SendClientMessage(playerid,rot,"Befehl: /makeleader [SpielerID] [Adminlevel (1-3)");
    {
    if(pid == INVALID_PLAYER_ID)
    {
    return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
    }
    if(IstSpielerAdmin(pid,alevel) == alevel)
    {
    return SendClientMessage(playerid,rot,"Dieser Spieler hat schon das gewünschte Adminlevel!");
    }
    else
    {
    SetPVarInt(pid,"Adminlevel",alevel);
    SendClientMessage(pid,blau,"Du bist nun ein Adminstrator/Supporter");
    SendClientMessage(playerid,rot,"Der Spieler wurde zum Adminstrator gemacht.");
    }
    }
    return 1;
    }

  • Schreib das mal so:


    ocmd:makeadmin(playerid,params[])
    {
    new alevel,pid;
    if(!IstSpielerAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Adminstrator und darfst diesen Command nicht nutzen!");
    if(sscanf(params,"ud", pid, alevel))return SendClientMessage(playerid,rot,"Befehl: /makeleader [SpielerID] [Adminlevel (1-3)");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
    if(IstSpielerAdmin(pid,alevel)) return SendClientMessage(playerid,rot,"Dieser Spieler hat schon das gewünschte Adminlevel!");
    SetPVarInt(pid,"Adminlevel",alevel);
    SendClientMessage(pid,blau,"Du bist nun ein Adminstrator/Supporter");
    SendClientMessage(playerid,rot,"Der Spieler wurde zum Adminstrator gemacht.");
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dann musst du den Befehl so schreiben:


    ocmd:makeadmin(playerid,params[])
    {
    new alevel,pid;
    if(!IstSpielerAdmin(playerid,3))return SendClientMessage(playerid,rot,"Du bist kein Adminstrator und darfst diesen Command nicht nutzen!");
    if(sscanf(params,"ud", pid, alevel))return SendClientMessage(playerid,rot,"Befehl: /makeleader [SpielerID] [Adminlevel (1-3)");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
    if(GetPVarInt(pid,"Adminlevel") == alevel) return SendClientMessage(playerid,rot,"Dieser Spieler hat schon das gewünschte Adminlevel!");
    SetPVarInt(pid,"Adminlevel",alevel);
    SendClientMessage(pid,blau,"Du bist nun ein Adminstrator/Supporter");
    SendClientMessage(playerid,rot,"Der Spieler wurde zum Adminstrator gemacht.");
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S