Das liegt daran, dass du, wenn der Spieler ein Admin ist, die Aktion doppelt ausführst. Mache es so:
ocmd:changername(playerid,params[])
{
if(PI[playerid][pLeader] >= 1 || PI[playerid][pAdmin] >= 3)
{
new str[128];
if(PI[playerid][pAdmin] >= 3)
{
new rang,name[25],fraktion;
if(sscanf(params,"dds[25]",fraktion,rang,name))return SCM(playerid,frot,"[FEHLER]: /changername [fraktion] [Rang] [Name]");
if(rang > 5 || rang < 1)return SCM(playerid,frot,"[FEHLER]: Der Rang muss zwischen 1 und 5 liegen!");
if(strlen(name) > 20)return SCM(playerid,frot,"[FEHLER]: Der Name darf maximal 20 Zeichen lang sein!");
if(rang == 1)format(FI[fraktion][rname1],25,name);
else if(rang == 2)format(FI[fraktion][rname2],25,name);
else if(rang == 3)format(FI[fraktion][rname3],25,name);
else if(rang == 4)format(FI[fraktion][rname4],25,name);
else if(rang == 5)format(FI[fraktion][rname5],25,name);
format(str,sizeof(str),"Der Admin %s hat den Namen des Ranges %d auf %s geändert!",GPlayerName(playerid),rang,name);
SendFrakMessage(fraktion,str);
}
else
{
new rang,name[25],frakid = PI[playerid][pLeader];
if(sscanf(params,"ds[25]",rang,name))return SCM(playerid,frot,"[FEHLER]: /changername [Rang] [Name]");
if(rang > 5 || rang < 1)return SCM(playerid,frot,"[FEHLER]: Der Rang muss zwischen 1 und 5 liegen!");
if(strlen(name) > 20)return SCM(playerid,frot,"[FEHLER]: Der Name darf maximal 20 Zeichen lang sein!");
if(rang == 1)format(FI[frakid][rname1],25,name);
else if(rang == 2)format(FI[frakid][rname2],25,name);
else if(rang == 3)format(FI[frakid][rname3],25,name);
else if(rang == 4)format(FI[frakid][rname4],25,name);
else if(rang == 5)format(FI[frakid][rname5],25,name);
format(str,sizeof(str),"Der Leader %s hat den Namen des Ranges %d auf %s geändert!",GPlayerName(playerid),rang,name);
SendFrakMessage(frakid,str);
}
return 1;
}
SCM(playerid,frot,"[FEHLER]: Du hast nicht den nötigen Fraktions/Admin Rang");
return 1;
}
Alles anzeigen