Spontan sehe ich hier einen Fehler 
ocmd:makeadmin(playerid,params[])
{
if(GetPVarInt(playerid,"Adminlevel") <= 5 || !IsPlayerAdmin(playerid))return SendClientMessage(playerid,ERROR_ROT,"Du bist kein Administrator.");
new pID, rank;
if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,0xE10000FF,"Nutze /makeadmin [ID] [Adminlevel]");
if(rank<1||rank>5)return SendClientMessage(playerid,0xE10000FF,"Bitte gültigen Rank angeben (1-6)");
SetPVarInt(pID,"Adminlevel",rank);
SpielerSpeichern(pID);
SendClientMessageToAll(0x00B9FFFF,"Es wurde jemand zum Admin gemacht.");
return 1;
}
@Dr.Brummer:
Das ist auch falsch, da die Abfrage falsch formuliert ist. D.h. man muss beides sein, was ja nicht nötig ist..
if(!isPlayerAnAdmin(playerid,6)&&!IsPlayerAdmin(playerid))return ...
Mein Code müsste eigentlich klappen, warum dein Adminlevel falsch abgespeichert wird, kann ich dir jedoch nicht sagen.