Guten Tag
Ich habe ein Admin system wo man admin 1-8 machen kann aber admin kann kein /Kick /ban /Freeze /unfreeze oder so machen
Admin System Bug
- 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
-
-
Mehr informationen wären schon angebracht, sodass wir dir helfen könnten
-
[pwn=170]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;
}ocmd@2:ac,adminchat(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new string[128],text[128];
if(sscanf(params,"s[128]",text))return SCM(playerid,COLOR_GRAU,"Info: /ac oder /adminchat [text]");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && GetPVarInt(i,"Adminlevel") >0)
{
format(string,128,"[Adminchat]: %s: %s",SpielerName(i),text);
SCM(i,COLOR_BLAU,string);
}
return 1;
}
return 1;
}ocmd:freeze(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new pID,grund[128];
new string[128];
if(sscanf(params,"us[128]",pID,grund))return SCM(playerid,COLOR_GRAU,"Info: /freeze [playerid/name] [grund]");
if(!IsPlayerConnected(pID))return SCM(playerid,COLOR_GRAU,"Info: Der Spieler ist zurzeit nicht Online!");
if(GetPVarInt(playerid,"Freeze") == 0)
{
format(string,128,"Du wurdest von Admin %s gefreezed, Grund: %s",SpielerName(playerid),grund);
SCM(pID,COLOR_ROT,string);
TogglePlayerControllable(playerid,0);
SetPVarInt(playerid,"Freeze",1);
}
else if(GetPVarInt(playerid,"Freeze") == 1)
{
format(string,128,"Du wurdest von Admin %s ungefreezed.",SpielerName(playerid));
SCM(pID,COLOR_ROT,string);
TogglePlayerControllable(playerid,1);
SetPVarInt(playerid,"Freeze",0);
}
return 1;
}ocmd:kick(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new string[128],grund[128],pID;
if(sscanf(params,"us[128]",pID,grund))return SCM(playerid,COLOR_GRAU,"Info: /kick [playerid/name] [grund]");
if(!IsPlayerConnected(pID))return SCM(playerid,COLOR_GRAU,"Info: Der Spieler ist zurzeit nicht Online!");
format(string,128,"Info: %s wurde von %S gekickt, Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SCMToAll(COLOR_ROT,string);
SCM(pID,COLOR_ROT,"Du wurdest gekickt!");
Kick(pID);
return 1;
}ocmd:ban(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new string[128],grund[128],pID;
if(sscanf(params,"us[128]",pID,grund))return SCM(playerid,COLOR_GRAU,"Info: /ban [playerid/name] [grund]");
if(!IsPlayerConnected(pID))return SCM(playerid,COLOR_GRAU,"Info: Der Spieler ist zurzeit nicht Online!");
format(string,128,"Info: %s wurde von %s gebannt, Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SCMToAll(COLOR_ROT,string);
SCM(pID,COLOR_ROT,"Du wurdest soeben Gebannt.");
SCM(pID,COLOR_ROT,"Sollte das ein nicht gültiger ban gewesen sein, wende dich bitte an den Admin der dich gebannt hat oder an ein High Admin.");
SetPVarInt(playerid,"Ban",1);
Kick(pID);
return 1;
}ocmd:veh(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new vID, color1,color2,string[128];
if(sscanf(params,"iii",vID,color1,color2))return SCM(playerid,COLOR_GRAU,"Info: /veh [vehicleID] [color1] [color2]");
if(IsPlayerInAnyVehicle(playerid))return SCM(playerid,COLOR_GRAU,"Du bist in einem Fahrzeug, du darfst diesen Befehl nicht ausführen!");
if(vID <400 vID >611)return SCM(playerid,COLOR_GRAU,"Bitte wähle ein Fahrzeug zwischen 400-611");
if(color1 <0 color1 >255)return SCM(playerid,COLOR_GRAU,"Wähle eine Farbe zwischen 0-255 aus.");
if(color2 <0 color2 >255)return SCM(playerid,COLOR_GRAU,"Wähle eine Farbe zwischen 0-255 aus.");
new Float:x,Float:y,Float:z,Float:r;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,r);
new cv = CreateVehicle(vID, x,y,z, r,color1,color2, -1);
format(string,128,"Du hast dir das Fahrzeug mit der ID %d erstellt.",vID);
SCM(playerid,COLOR_BLAU,string);
SCM(playerid,COLOR_GRAU,"Benutze '/dveh' um das Fahrzeug zu löschen.");
PutPlayerInVehicle(playerid,cv,0);
return 1;
}ocmd:dveh(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 0)return SCM(playerid,COLOR_GRAU,"Du bist nicht Eingeloggt.");
if(GetPVarInt(playerid,"Adminlevel") <1)return SCM(playerid,COLOR_GRAU,"Du bist nicht befugt diesen Befehl zu nutzen!");
new vID = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid,COLOR_GRAU,"Du bist in kein Fahrzeug!");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SCM(playerid,COLOR_GRAU,"Du bist nicht der Fahrer dieses Fahrzeuges!");
new string[128];
format(string,128,"Du hast das Fahrzeug mit der ID %d gelöscht.",vID);
SCM(playerid,COLOR_GRAU,string);
DestroyVehicle(vID);
return 1;
}[/pwn] -
Wenn du dich zum Admin machst und die Befehle dann ausführst Funktionieren sie dann?
Oder wenn du dich ausloggst speichert er dein/die Account's? -
ich meine jetzt wenn jemand admin ist und nicht in RCON Angemeldet kann er die Befehle nicht nutzen.
Und ja er Speichert die Accounts -
Geh mal Ingame, mach dich zum Admin und teste es dann erneut. Scheint mir ein Speicherfehler zu sein.
-
geht nicht und er Speichert ja den Admin
-
Ich würde an deiner Stelle generell lieber mit einem Enum für die Spieler arbeiten. Ich persönlich finde das viel einfacher, auch wenn dein Script irgendwann mal 20000 Zeilen hat.
-
Dein fehle müsste sein das du kein Adminlevel vergibst.
SetPVarInt(playerid,"Adminlevel",0);
Versuchs mal so
SetPVarInt(playerid,"Adminlevel",alevel); -
Dein fehle müsste sein das du kein Adminlevel vergibst.
SetPVarInt(playerid,"Adminlevel",0);
Versuchs mal so
SetPVarInt(playerid,"Adminlevel",alevel);
Doch vergibt er, wenn er /makeadmin ID 0 macht vergibt er den adminrang 0.
Aber sollte es nicht 0 sein vergibt er das schon richtig. -
Ohh dan tut es mir leid dan habe ich was falsches geschrieben.
-
ok hmm dann weis ichs auch nicht
-
Was ist denn eigentlich dein Fehler?
-
Gib dir mal Admin Level 1 und versuch es.
-
Ehh....versuch es mal so.
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(pID,"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(pID,"Adminlevel",alevel);
printf("Admin: %s | pID: %s | Adminlevel vergeben: %d",SpielerName(playerid),SpielerName(pID),alevel);
return 1;
} -
breadfish.de
Hat das Thema geschlossen.