Wie kann ich scripten, dass wenn ein Admin einen anderen Admin der Adm Level 1338 oder höher besitzt nicht bannen kann, also dass dann da steht, Du bist nicht befugt oder so. Mir gehts hauptsächlich nur darum, dass er ihn dann nicht bannen kann.
Anti-Admin-Ban
- iroh99
- 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
-
-
Wie hast du den dein Admin System gemacht?
Mit gAdmin? -
Mit gAdmin auf jeden Fall nicht, ich kann das nicht genau sagen, da ich den Script nur gedownloadet und editiert habe. Und bin halt kein Meister im scripten^^. Musst du das wissen?
-
so machen:hmm du könntest es so machen
//zb bei einem cmd:machste eine if abfrage rein:
if(name == admin1name || name == admin2name
{
}
else
{
ban(pid//die id die bei diesem befehl zb /ban [playerid] übergeben wurde);
}ISt jetzt nicht sehr schön geschrieben
-
hm also ich stelle mal das jetzige /ban rein vlt. hilfts ja
if(strcmp(cmd, "/ban", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ban [playerid/PartOfName] [reason]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 2)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ban [playerid/PartOfName] [reason]");
return 1;
}
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "UserBan: %s wurde von %s gebannt!, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);format(string, sizeof(string), "UserBan: %s wurde von %s gebannt!, Grund: %s", giveplayer, sendername, (result));
SendClientMessageToAll(COLOR_LIGHTRED, string);
PlayerInfo[giveplayerid][pLevel] = -999;
PlayerInfo[giveplayerid][pAdmin] = PlayerInfo[giveplayerid][pLevel];
Ban(giveplayerid);
return 1;
}
}//not connected
}
else
{
format(string, sizeof(string), " %d Ist kein Aktiver Spieler.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
} -
Ich glaub du hast es mit enum.
if(strcmp.....
{
if(PlayerInfo[playerid][pAdmin] == ......
{
if(IDdesZubannendenSpieler == IDeinesAdmins)
{
return SendClientMessage(playerid,FARBE,"Du kannst kein Admin Bannen");
}
ban(IDdesZubannendenSpieler);
}
return 1;
} -
if(PlayerInfo[playerid][Admin] <= PlayerInfo[playerid2][Admin])
{
return SendClientMessage(playerid, Farbe, "Du bist dazu nicht befugt."
}
else
{
// Ban
}
Mit dieser Abfrage kann man nur Leute bannen, die ein niedrigeres Adminlvl haben. -
Ganz einfach.
if(PlayerInfo[giveplayer oder wie das heisst][pAdmin] < 1) { Aktion Abbrechen } return 1;
-
Mal ehrlich, muss man es jeden einzeln sagen?
[ ALLGEMEIN ] Wichtige Informationen zum Forenbereich Server-Hilfe