Admin soll alle Befehle benutzen können.

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
  • Beitrag von PermanenT ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Also ich habe schon ein AdminSystem


    Hier mal bisschen was vom Script.



    ocmd:makeadmin(playerid,params[]){ if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt."); if(!IsPlayerAdmin(playerid))return SCM(playerid,COLOR_GRAU,"Melde dich bitte als RCON-Admin an."); new pID,alevel,string[128]; if(sscanf(params,"ui",pID,alevel))return SCM(playerid,COLOR_GRAU,"Info: /makeadmin [playerid/name] [adminlevel(0-8)]"); if(!IsPlayerConnected(pID))return SCM(playerid,COLOR_GRAU,"Info: Der angegebene Spieler ist zurzeit nicht Online."); if(alevel <0 || alevel >8)return SCM(playerid,COLOR_GRAU,"Bitte wähle ein Adminlevel zwischen 0-8"); if(alevel == 0) { SetPVarInt(playerid,"Adminlevel",0); format(string,128,"Admin %s hat dir deine Adminrechte komplett entzogen. Adminlevel: %d",SpielerName(playerid),alevel); SCM(pID,COLOR_BLAU,string); format(string,128,"Du hast %s die Adminrechte entzogen. (Adminlevel: %d)",SpielerName(pID),alevel); SCM(playerid,COLOR_BLAU,string); return 1; } format(string,128,"Admin %s hat dir das Adminlevel %d vergeben.",SpielerName(playerid),alevel); SCM(pID,COLOR_BLAU,string); format(string,128,"Du hast %s das Adminlevel %d gegeben.",SpielerName(pID),alevel); SCM(pID,COLOR_BLAU,string); SetPVarInt(playerid,"Adminlevel",alevel); printf("Admin: %s | pID: %s | Adminlevel vergeben: %d",SpielerName(playerid),SpielerName(pID),alevel); return 1;}



    CreateAcc(playerid){ new Spielerdatei[64]; format(Spielerdatei,64,"/%s/%s",ACC_SAVED,SpielerName(playerid)); dini_Create(Spielerdatei); dini_IntSet(Spielerdatei,"Adminlevel",0); dini_IntSet(Spielerdatei,"Ban",0); dini_FloatSet(Spielerdatei,"sX",0.0); dini_FloatSet(Spielerdatei,"sY",0.0); dini_FloatSet(Spielerdatei,"sZ",0.0); dini_FloatSet(Spielerdatei,"sR",0.0); LoadPlayer(playerid); printf("Account erstellt (/%s/%s)",ACC_SAVED,SpielerName(playerid)); return 1;}
    SpielerName(playerid){ new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name;}
    LoadPlayer(playerid){ new Spielerdatei[64]; format(Spielerdatei,64,"/%s/%s",ACC_SAVED,SpielerName(playerid)); SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel")); SetPVarInt(playerid,"Ban",dini_Int(Spielerdatei,"Ban")); SetPVarFloat(playerid,"sX",dini_Float(Spielerdatei,"sX")); SetPVarFloat(playerid,"sY",dini_Float(Spielerdatei,"sY")); SetPVarFloat(playerid,"sZ",dini_Float(Spielerdatei,"sZ")); SetPVarFloat(playerid,"sR",dini_Float(Spielerdatei,"sR")); SetPVarInt(playerid,"Eingeloggt",1); return 1;}
    SavePlayer(playerid){ new Spielerdatei[128]; format(Spielerdatei,64,"/%s/%s",ACC_SAVED,SpielerName(playerid)); if(GetPVarInt(playerid,"Eingeloggt") == 1) { dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel")); dini_IntSet(Spielerdatei,"Ban",GetPVarInt(playerid,"Ban")); dini_FloatSet(Spielerdatei,"sX",GetPVarFloat(playerid,"sX")); dini_FloatSet(Spielerdatei,"sY",GetPVarFloat(playerid,"sY")); dini_FloatSet(Spielerdatei,"sZ",GetPVarFloat(playerid,"sZ")); dini_FloatSet(Spielerdatei,"sR",GetPVarFloat(playerid,"sR")); } return 1;}



    wenn ihr noch was braucht melden.
    Ach ja und wie kann ich machen das man Makeadmin? über Rcon und als Normaler Level 8 Admin /makeadmin machen kann?

  • okay ich sehe dir fehlt die Abfrage an sich ob der Spieler Admin ist


    daher brauchst du eine Funktion die abfragt ob der SPieler admin ist,
    welcher rang
    und dass aller ränge drunter also z.B. 9 -> alle funktionen die Ranggrenze z.B. 5 haben kann man ausführen



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


    die abfrage dazu währe dann


    if(!isAdmin(playerid,ADMINRANG);


    verstehst du den code soweit?
    ansonsten frag nach

  • ich habs im enum gespeichert. da ich mit mysql arbeite wird das level in sInfo[playerid][alevel] gespeichert

    Ist doch bubs egal, ob du mit MySQL arbeitest.
    Es gibt 3 Varianten, die wie folgt wären: PlayerInfo[playerid][alevel] = WERT , SetPVarInt(playerid,"adminlevel",WERT) oder adminlevel[playerid] = WERT, was haben diese 3 Varianten nun mit MySQL zu tun? O_o
    Alle 3 kannst du anwenden, je nachdem mit was du am besten klar kommst.
    Ebenso, ist es zwar nett, dass du ihn deinen Code zeigt, wie du ihn hast, nur bringen tut ihn es auch nichts, wenn er davon recht wenig Ahnung hat.


    MfG ;)

  • Beitrag von Gideon ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ich habe dir das doch gestern per Teamviewer gemacht Oo
    Würdest du aufgepasst haben, würdest du jetzt wissen wie das Gehen würde.
    Aber daran merkt man natürlich, hauptsache jemand anders scriptet für mich da muss ich ja nicht aufpassen.
    Nun gut, da sieht man dass ja :)