Hier mal so paar Codeschnipsel 
enum pInfo{
pLeader,
pMember,
pRank
};
new Stats[MAX_PLAYERS][pInfo];
if(strcmp(cmd, "/gründen", true) == 0)
{
if(Stats[playerid][pRank] == 0)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT,"Gang gründen","Gib den Namen deiner Gang ein:","Bestätigen","Abbrechen");
}
return 1;
}
//In dem entsprechendem Callback
if(dialogid == 1)
{
if(strlen(inputtext) > 0 && response == 1)
{
new string[128], name[24];
GetPlayerName(playerid, name, sizeof name);
format(string, sizeof string,"Spieler %s hat die Gang %s gegründet !",name,inputtext);
SendClientMessageToAll(0xFFFFFF, string);
Stats[playerid][pLeader] = 1;
Stats[playerid][pRank] = 6;
//Dann einfach noch den Gangnamen speichern mit Dini und vorher abfragen ob es diese Gang schon gibt
}
}
So ein paar Schnipsel, der Rest ist wie bei einem Standart Fraktionssystem 
mfg. 