Я буду использовать тему Регистрация на диалог системе
Для начала создадим переменные
В 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); } }
Во второй части сделаем Автомобили и далее в третей работу(Случайные пожары)