Функциональность данной панели:
- Увольнение в оффлайне
- Понижение/Повышение в оффлайне
- Выговоры в оффлайне
- Список всех сотрудников.
Ну что-же,приступим.
Код:
Ко всем командам: CMD:lmenu(playerid) // Сама команда { if(gPlayerLogged[playerid] == 0) return 1; // Проверка на авторизация игрока. (Поменяйте на свою) if(Player[playerid][pLeader] <= 0) return SendClientMessage(playerid, 0x009999FF, "Вы не являетесь руководителем"); // Проверка на лидерку (Поменяйте на свою) return ShowPlayerDialog(playerid, 5379, DIALOG_STYLE_LIST, "Меню лидера", "1. Список сотрудников в оффлайне\n2. Выдать выговор в оффлайне\n3. Уволить в оффлайне\n4. Понизить/Повысить в оффлайне", "Выбрать", "Закрыть"); // Диалог с функциями } В OnDialogResponse: //------------------------------------------------------------------------------ if(dialogid == 5379) { if(!response) return 1; switch(listitem) { case 0: new string[64],mysql_format(handle,string,sizeof(string),"SELECT * FROM `acc` WHERE `Team` = '%d'",Player[playerid][pTeam]),mysql_function_query(handle, string, true, "OFFmembers", "d",playerid); case 1: ShowPlayerDialog(playerid, 5380, DIALOG_STYLE_INPUT, "Меню лидера: Выговор", "Для того что-бы выдавать выговор,необходимо указать ник.\nУкажите Имя_Фамилия сотрудника:", "Выдать", "Закрыть"); case 2: ShowPlayerDialog(playerid, 5381, DIALOG_STYLE_INPUT, "Меню лидера: Увольнение", "Для того что-бы уволить,необходимо указать ник.\nУкажите Имя_Фамилия сотрудника:", "Выдать", "Закрыть"); case 3: ShowPlayerDialog(playerid, 5382, DIALOG_STYLE_INPUT, "Меню лидера: Повышение/Понижение", "Для того что-бы повысить/понизить,необходимо указать ник и ранг\nПример: Nick_Name,9\n\nУкажите Имя_Фамилия,Ранг:", "Выдать", "Закрыть"); } } //------------------------------------------------------------------------------ if(dialogid == 5380) { if(!response) return 1; if(!strlen(inputtext)) return SendClientMessage(playerid,-1,"Укажите Имя_Фамилия"),ShowPlayerDialog(playerid, 5380, DIALOG_STYLE_INPUT, "Меню лидера: Выговор", "Для того что-бы выдавать выговор,необходимо указать ник.\nУкажите Имя_Фамилия сотрудника:", "Выдать", "Закрыть"); new qstring[64]; format(qstring,sizeof(qstring), "SELECT * FROM "TABLE_ACCOUNT" WHERE `Name`='%s'", inputtext); mysql_function_query(handle, qstring, true, "VigovorOffline", "is", playerid, inputtext); } //------------------------------------------------------------------------------ if(dialogid == 5381) { if(!response) return 1; if(!strlen(inputtext)) return SendClientMessage(playerid,-1,"Укажите Имя_Фамилия"),ShowPlayerDialog(playerid, 5381, DIALOG_STYLE_INPUT, "Меню лидера: Увольнение", "Для того что-бы уволить,необходимо указать ник.\nУкажите Имя_Фамилия сотрудника:", "Выдать", "Закрыть"); new qstring[64]; format(qstring,sizeof(qstring), "SELECT * FROM "TABLE_ACCOUNT" WHERE `Name`='%s'", inputtext); mysql_function_query(handle, qstring, true, "UvalOffline", "is", playerid, inputtext); } //------------------------------------------------------------------------------ if(dialogid == 5382) { if(!response) return 1; if(!strlen(inputtext)) return SendClientMessage(playerid,-1,"Укажите Имя_Фамилия,Ранг"),ShowPlayerDialog(playerid, 5382, DIALOG_STYLE_INPUT, "Меню лидера: Повышение/Понижение", "Для того что-бы повысить/понизить,необходимо указать ник и ранг\nПример: Dmitriy_Grishin,9\n\nУкажите Имя_Фамилия,Ранг:", "Выдать", "Закрыть"); new qstring[64],name, rang; if(sscanf(inputtext, "p<,>si", name, rang)) return SCM(playerid,-1,"Укажите Имя_Фамилия,Ранг через запятую"),ShowPlayerDialog(playerid, 5382, DIALOG_STYLE_INPUT, "Меню лидера: Повышение/Понижение", "Для того что-бы повысить/понизить,необходимо указать ник и ранг\nПример: Dmitriy_Grishin,9\n\nУкажите Имя_Фамилия,Ранг:", "Выдать", "Закрыть"); format(qstring,sizeof(qstring), "SELECT * FROM "TABLE_ACCOUNT" WHERE `Name`='%s'", name); mysql_function_query(handle, qstring, true, "PonPovOffline", "isi", playerid,name,rang); } //------------------------------------------------------------------------------ В конец мода: forward OFFmembers(playerid); public OFFmembers(playerid) { new rows, fields,i,string2[64],string[1256],name[MAX_PLAYER_NAME]; cache_get_data(rows, fields); for(i = 0; i < rows; i++) { cache_get_field_content(i, "Name", string2),strmid(name, string2, 0, strlen(string2), MAX_PLAYER_NAME); // Достём имя Name,у Вас может быть подругому. new rang = cache_get_field_content_int(i, "Rang"); // У Вас в БД Rang может означаться подругому (Ранг) new vigovor = cache_get_field_content_int(i, "Fwarns"); // У Вас в БД Fwarns может означаться подругому (Выговоры) new time = cache_get_field_content_int(i, "PlayerDTimers"); // У Вас в БД Rang может означаться подругому (Отыграно за день) format(string,sizeof(string),"%s | Ранг: %d | Выговоры: %d/3 | За день: %d мин\n%s",name,rang,vigovor,time,string); // Форматируем диалог ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Меню лидера: Сотрудники",string, "", "Закрыть"); // Выводим диалог } return true; } //------------------------------------------------------------------------------ forward VigovorOffline(playerid,name[]); public VigovorOffline(playerid,name[]) { new query[128]; new teams = cache_get_field_content_int(0, "Team"); // У Вас в БД Team может означаться подругому (Организация) new vigovor = cache_get_field_content_int(0, "Fwarns"); // У Вас в БД Fwarns может означаться подругому (Выговоры) if(Player[playerid][pTeam] != teams) return SCM(playerid,-1,"Данный игрок не в Вашей фракции."); // Проверяем на фракцию if(vigovor >= 3) return SCM(playerid,-1,"У сотрудника больше 3-ёх выговоров."); // Проверка на выговоры mysql_format(handle,query,sizeof(query),"UPDATE `acc` SET `Fwarns` = (`Fwarns` + '1') WHERE `Name` = '%s'",name); // Форматируем запрос mysql_function_query(handle, query, true, "", ""); // Отправляем format(strcom, 156, "[R] Руководитель %s[%d] выдал выговор[%d/3] %s[OFFLINE]",Player[playerid][pName], playerid,vigovor+1,name); // Форматируем текст для всех SendRadioMessage(Player[playerid][pLeader], 0x429252FF, strcom); // Отправляем в чат организации (у Вас может быть подругому) return true; } //------------------------------------------------------------------------------ forward UvalOffline(playerid,name[]); public UvalOffline(playerid,name[]) { new query[128]; new teams = cache_get_field_content_int(0, "Team"); // У Вас в бд Team может быть подругому. (Организация) if(Player[playerid][pTeam] != teams) return SCM(playerid,-1,"Данный игрок не в Вашей фракции."); // Проверка на фракцию format(query,sizeof(query),"UPDATE "TABLE_ACCOUNT" SET `Leader` = '0',`Member` = '0',`Rang` = '0',`Team` = '0',`Fskin` = '0' WHERE `Name` = '%s'",name); // Обнляем все переменные. (Заменяем на свои) mysql_function_query(handle, query, true, "", ""); // Отправляем запрос выше format(strcom, 156, "[R] Руководитель %s[%d] уволил %s[OFFLINE]",Player[playerid][pName], playerid,name); // Форматируем текст для всех SendRadioMessage(Player[playerid][pLeader], 0x429252FF, strcom); // Отправляем в чат организации (у Вас может быть подругому) return true; } //------------------------------------------------------------------------------ forward PonPovOffline(playerid,name[],rang); public PonPovOffline(playerid,name[],rang) { new query[128]; new teams = cache_get_field_content_int(0, "Team"); // Достаём инфу о фракции if(Player[playerid][pTeam] != teams) return SCM(playerid,-1,"Данный игрок не в Вашей фракции."); // Проверка на фракцию if(rang >= Player[playerid][pRang]) // Проверяем на ранг { SendMes(playerid, COLOR_GRAD1, "{009999} Ранг не должен быть больше %d и меньше 0", Player[playerid][pRang]-1); return 1; } if(rang < 0) return SCM(playerid, 0x009999FF, "Ранг не должен быть меньше 0"); // Проверяем на ранг format(strcom, 156, "[R] Руководитель %s[%d] установил %d ранг для %s[OFFLINE]",Player[playerid][pName], playerid,rang,name); // Форматируем текст для всех SendRadioMessage(Player[playerid][pLeader], 0x429252FF, strcom); // Отправляем в чат организации (у Вас может быть подругому) format(query,sizeof(query),"UPDATE "TABLE_ACCOUNT" SET `Rang` = '%d' WHERE `Name` = '%s'",rang,name); // Форматируем запрос (Rang может быть подругому) mysql_function_query(handle, query, true, "", ""); // Отправляем запрос return true; }