Es darf kein Leerzeichen zwischen der Variable und dem Array sein.
GetPlayerName gibt keinen Wert zurück, deshalb kannst du es nicht einfach zuweisen, es speichert es in den Parameter den du mit angibst.
Außerdem kannst du nicht den Namen eines Spielers hohlen, den du garnicht kennst.
Wenn du mit sscanf Parameter herausfiltern willst musst du diese speichern.
Neben rang brauchst du also auch die andere Spieler ID
new str[256], rang,id;
new giveadmin[MAX_PLAYER_NAME];
GetPlayerName(playerid, giveadmin, MAX_PLAYER_NAME);
if(sscanf(params,"ui", getadmin, rang))return SendClientMessage(playerid, 0x00FF78FF, "Benutzung:/makeadmin [ID] [RANG]");
new getadmin[MAX_PLAYER_NAME];
GetPlayerName(id, getadmin, MAX_PLAYER_NAME);
format(str, sizeof(str), "[ADMIN]:%s hat %s zu einem %s -Admin befördert!", giveadmin, getadmin, rang);