Irgendwie ist dein Befehl nicht ganz durchdacht. Zunächst vergisst du ein paar ( und ) Klammern, dann rufst du 2 mal den Namen von demjenigen ab, der den Befehl eingegeben hat einmal als playername und einmal als teamsetter.
Dann gibst du dem Inviter die Mitteilung das er jemanden eingeladen hat, und zwar sich selber, und dem eingeladen schreibst du, dass er aus der Familie gekickt wurde. Wo ist da der Sinn?
Dann ist da noch ein Punkt, du verwendest sehr oft den gleichen string. Das geht auf die dauer nicht gut.
BSP:
format(string, sizeof(string),"Fraktions/%s.sav",playername);
...
case 1: format(string,sizeof(string),"%s hat dich zum Member der Grove Street Families gemacht!",playername);
Das geht so nicht wenn du den später nochmal abrufst.
Mach das dann lieber so:
format(string, sizeof(string),"Fraktions/%s.sav",playername);
dini_IntSet(string, "Fraktion", pInfo[playerid][Fraktion]);
Dann kannst du den string gerne wieder überschreiben, solange du das was vorher drin gespeichert war nicht mehr brauchst.