wieso funkt /setadmin befehl nicht wirklich?

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 habe mir heute einen setadmin befehl erstellt, jedoch bugt dieser.


    Hier mal der Befehl:



    ocmd:setadmin(playerid,params[])
    {
    if(GetPVarInt(playerid,"loggedin") == 1)
    {
    new pID,adminname[64],string[264],tlevel;
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname = "Kein Adminlevel";}
    case 1:{adminname = adminname1;}
    case 2:{adminname = adminname2;}
    case 3:{adminname = adminname3;}
    case 4:{adminname = adminname4;}
    case 5:{adminname = adminname5;}



    }
    if(!isPlayerAdmin(playerid,5))return 1;
    if(sscanf(params,"ui",pID,tlevel))return SendClientMessage(playerid,Rot,"Benutze: {FF0000}/setadmin [playerid] [Adminlevel]");
    format(string,sizeof(string),"Der Administrator %s hat dich zum Administrator gemacht. Aktuelles Adminlevel: %s",SpielerName(playerid),adminname);
    SendClientMessage(pID,Orange,string);
    format(string,sizeof(string),"Du hast den Spieler %s zum Administrator gemacht. Er ist nun ein {FF005F}%s",SpielerName(pID),adminname);
    SendClientMessage(playerid,Gelb,string);
    SetPVarInt(pID,"Adminlevel",tlevel);
    SpielerSpeichern(pID);
    }
    return 1;
    }


    da steht dann Zb das er administrator testplayer den spieler testplayer zum adminlevel Testlevel ernannt. aber wenn ich den dann zb den rang mapper geben will steht dort schon wieder projektleitung etc. Erst wenn man den Befehl des zweite mal ausgeführt hat kommt dann zb das richtige was ich angegeben habe.


    Bitte um hilfe.


    MfG Exon

  • Ich glaube, dass ich dein Problem verstanden habe. Ich glaube, du willst den beeits definierten Adminnamen, je nach eingegebenen Level, anzeigen. Jedoch "switcht" du ja nicht den inputtext(tlevel), sondern das Adminlevel des Spielers, der das Command eingibt. Falls ich das richtig verstanden habe, dann


    switch(tlevel) {} (nach sscanf)

  • nja erst level setzen dann level abfragen

    ocmd:setadmin(playerid,params[])
    {
    if(GetPVarInt(playerid,"loggedin") == 1)
    {
    new pID,adminname[64],string[264],tlevel;
    if(!isPlayerAdmin(playerid,5))return 1;
    if(sscanf(params,"ui",pID,tlevel))return SendClientMessage(playerid,Rot,"Benutze: {FF0000}/setadmin [playerid] [Adminlevel]");
    SetPVarInt(pID,"Adminlevel",tlevel);
    switch(GetPVarInt(playerid,"Adminlevel"))
    {
    case 0:{adminname = "Kein Adminlevel";}
    case 1:{adminname = adminname1;}
    case 2:{adminname = adminname2;}
    case 3:{adminname = adminname3;}
    case 4:{adminname = adminname4;}
    case 5:{adminname = adminname5;}



    }
    format(string,sizeof(string),"Der Administrator %s hat dich zum Administrator gemacht. Aktuelles Adminlevel: %s",SpielerName(playerid),adminname);
    SendClientMessage(pID,Orange,string);
    format(string,sizeof(string),"Du hast den Spieler %s zum Administrator gemacht. Er ist nun ein {FF005F}%s",SpielerName(pID),adminname);
    SendClientMessage(playerid,Gelb,string);
    SpielerSpeichern(pID);
    }
    return 1;
    }

  • danke hat geklappt