Я буду использовать тему Регистрация на диалог системе
Для начала создадим переменные
В onPlayerJoin(playerid) { вставим

Код:
users[playerid].leader <- 0;
users[playerid].member <- 0;
users[playerid].rang <- 0;

Далее в onPlayerRegister(playerid,password)

Код:
iniFile.setKey("Stats", "Leader", "0");
iniFile.setKey("Stats", "Member", "0");
iniFile.setKey("Stats", "Rang", "0");

В onPlayerLogin(playerid,password)

Код:
users[playerid].leader = iniFile.getKey("Stats", "Leader").tointeger();
users[playerid].member = iniFile.getKey("Stats", "Member").tointeger();
users[playerid].rang = iniFile.getKey("Stats", "Rang").tointeger();

В savePlayers()

Код:
iniFile.setKey("Stats", "Leader", users[i].leader.tostring());
iniFile.setKey("Stats", "Member", users[i].member.tostring());
iniFile.setKey("Stats", "Rang", users[i].rang.tostring());

Сейчас сделаем команду чтобы дать лидерку
Для этого в onPlayerCommand(playerid, command)

Код:
if(cmd[0] == "/makeleader")
{
    if(users[playerid].admin != 5) return sendPlayerMessage(playerid, "[Ошибка] У Вас нет прав использовать эту команду",COLOR_RED);
    if(cmd.len() < 3) return sendPlayerMessage(playerid, "[Ошибка] Использовать /leader [id игрока] [id организации]",COLOR_RED);
    local id = cmd[1].tointeger();
    if(!isPlayerConnected(id)) return sendPlayerMessage(playerid, "[Ошибка] Игрока не подключен к серверу",COLOR_RED);
    if(users[id].leader != 0) return sendPlayerMessage(playerid, "[Ошибка] Игрок уже является лидером",COLOR_RED);
    if(users[id].leader == 0)
    {
    	local orgname, org = cmd[2].tointeger();
    	users[id].leader = org;
    	users[id].member = org;
    	users[id].rang = 5;
    	savePlayers();
    	if(org == 4) { orgname = "FDLC" }
         // else if(org == 1) { orgname = "PDLC" }
    	sendPlayerMessage(id, " Поздравляем вы стали лидером "+orgname, COLOR_LEMON);
    	sendPlayerMessage(playerid, " Вы назначили "+id+" лидером "+orgname, COLOR_LEMON);
    	onSpawn(id);
    }
}

Можно также сделать рацию

Код:
if(cmd[0] == "/r")
{
    local rang;
    local text = command.slice(cmd[0].len()+1, command.len());
    if(cmd.len() < 2) return sendPlayerMessage(playerid, "[Ошибка] Использовать /r [текст]",COLOR_RED);
    if(users[playerid].member == 4)
    {
    	switch(users[playerid].rang)
    	{
        case 0: rang = "Стажер";
        case 1: rang = "Рядовой";
        case 2: rang = "Сержант";
        case 3: rang = "Капитан";
        case 4: rang = "Майор";
        case 5: rang = "Полковник";
    	}
    	sendFamilyMessage(4, "[FF6347AA][R]["+rang+"]"+getPlayerName(playerid)+": [FFFFFFAA]"+text, COLOR_WHITE);
    }
}

Сделаем спавн в Пожарной части
В onPlayerSpawn(playerid)
Немного изменим код, после else if(Logged[playerid] == 1)

Код:
if(users[playerid].member == 4)
    {
    	setPlayerColorName(playerid);
    	setPlayerCoordinates(playerid, 1101.108887, 1735.013794, 10.531218);
    }
    else 
    {
    	setPlayerColorName(playerid);
    	setPlayerCoordinates(playerid, 1054.174438, -544.445007, 19.206417);
    }

Сделаем цвет фракции
Создадим функцию

Код:
function setPlayerColorName(playerid)
{
	switch(users[playerid].member)
	{
    case 0: return setPlayerColor(playerid, COLOR_WHITE);
    case 4: return setPlayerColor(playerid, COLOR_TOMATO);
	}
}

И в конце мода

Код:
function sendFamilyMessage(family, string, color)
{
	for(local i = 0; i < getPlayers().len(); i++) 
    { 
        if(users[i].member == family) sendPlayerMessage(i, string, color, true); 
    } 
}

Во второй части сделаем Автомобили и далее в третей работу(Случайные пожары)