Guten Tag
Ich wollte mal fragen wie ich es mache das ein Admin alle Befehle nutzen darf also 100% alle
Admin soll alle Befehle benutzen können.
- xTheMeniacx
- Geschlossen
- Erledigt
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
-
-
hi,
um dir die frage beantworten zu können brauchen wir mehr informationen
soll der Admin eine art "Projektleiter" sein?
oder Rcon eingeloggt?hast du bereits ein AdminSystem drinne mit ranking?
LG
-
Beitrag von PermanenT ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Du müsstest jeden einzelnen Befehl editieren, bzw. eine Adminabfrage einfügen.
Dann wird beispielsweise aus:
if(IsGangMember(playerid)) { /* bla c: */}
==
if(IsGangMember(playerid) || isAdmin(playerid,5)) { /* bla c: */} -
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? -
bitte formatiere den code richtig (mit firefox oder pastebin einfügen)
da wir das kaum lesen können
-
Pastebin; http://pastebin.com/phAiNknB
-
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 -
die abfrage dazu währe dann
Wo bitte nimmst du jetzt die Variable "alevel" her?
Der ganze stock wird so kaum funktionieren, da bei ihn es über SetPVar etc. abläuft.
Was soll es dann genau bringen? O_oWenn dann so:
Spoiler anzeigen stock isAdmin(playerid,a_level)
{
if(GetPVarInt(playerid,"Adminlevel") >= a_level) return 1;
return 0;
}MfG
-
Wo bitte nimmst du jetzt die Variable "alevel" her?
ich habs im enum gespeichert. da ich mit mysql arbeite wird das level in sInfo[playerid][alevel] gespeichert -
-
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. -
Ja soweit verstanden also bei Jeden Befehl muss ich das einfügen das das nur admins können und ab welchen level?
-
Ja soweit verstanden also bei Jeden Befehl muss ich das einfügen das das nur admins können und ab welchen level?
Ja. Da es bei jedem Befehl ein unterschiedliches Level sein kann, muss es bei jedem Befehl explizit angegeben werden. -
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?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 -
breadfish.de
Hat das Thema geschlossen.