Рассмотрено СИСТЕМА ОСВОБОЖДЕНИЯ ОТ ДОЛЖНОСТИ ( /demote )

Статус
Закрыто для дальнейших ответов.
1. Ваш игровой ник: Zakhar_Extreme.
2. Улучшение по части(мод, карта, форум): мод.
3. Опишите Ваше улучшение: На данный момент команда /demote доступна организации Правительство и ФСБ с 9-го ранга.

Проблемы команды:

1. Нельзя уволить 1-е ранги.
2. Нельзя понизить / уволить 7 + ранги.
3. После 2-х использований появляется cooldown на 10 минут.
4. Можно понижать только сотрудников МВД / Армии.

Что же, мои рекомендации по улучшению изложены ниже.

- Теперь команда /demote сможет не только понижать, но и увольнять.
- Использование: /demote ( id ) ( Причина ) ( 1 - понизить / 2 - уволить )
- Команда /demote будет понижать / увольнять сотрудников с 1-ые по 8-е ранги ( Для 9-их рангов Правительства / ФСБ )
Примечание: Если команду использует лидер Правительства / ФСБ, то он может уволить 1-е - 9-е ранги.
- Команда /demote сможет уволить сотрудника любой организации. То есть, лидер / заместитель смогут понизить / уволить сотрудника Правительства / ФСБ включительно.

Почему вы должны добавить данное улучшение:
- Правительство / ФСБ приобретут власть и будут уполномочены наказывать нарушитель, не писав жалобу на нарушителя.

Пример кода:

pawn
#include <a_samp>

enum ePlayerData {
pRank,
pOrgType // 0 - правительство, 1 - ФСБ
}

new PlayerData[MAX_PLAYERS][ePlayerData];

// Команда /demote
public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp(cmdtext, "/demote", true) == 0) {
// Проверяем количество аргументов
new id, reason[128], action;
if (sscanf(cmdtext[8], "ii s[128]", id, action, reason)) {
SendClientMessage(playerid, COLOR_RED, "Использование: /demote (id игрока) (Причина) (1 - понизить, 2 - уволить)");
return 1;
}

if (id < 0 id >= MAX_PLAYERS) {
SendClientMessage(playerid, COLOR_RED, "Неверный ID игрока.");
return 1;
}

if (!IsPlayerConnected(id)) {
SendClientMessage(playerid, COLOR_RED, "Игрок не подключён.");
return 1;
}

// Проверяем, имеет ли игрок право использовать команду
if (!(PlayerData[playerid][pRank] == 9 PlayerData[playerid][pRank] == 10)) {
SendClientMessage(playerid, COLOR_RED, "У вас нет прав для использования этой команды.");
return 1;
}

// Проверяем ранг целевого игрока
if (action == 1) { // Понизить
if (PlayerData[id][pRank] > 1) {
PlayerData[id][pRank]--;
SendClientMessage(playerid, COLOR_GREEN, "Игрок понижен.");
} else { // Увольнение для 1 ранга
PlayerData[id][pRank] = 0; // Увольняется
SendClientMessage(playerid, COLOR_GREEN, "Игрок успешно уволен.");
}
} else if (action == 2) { // Увольнение
PlayerData[id][pRank] = 0; // Увольняется
SendClientMessage(playerid, COLOR_GREEN, "Игрок успешно уволен.");
} else {
SendClientMessage(playerid, COLOR_RED, "Неверное действие. Используйте 1 для понижения и 2 для увольнения.");
return 1;
}

// Здесь можно добавить код для логирования причины увольнения/понижения
format(string, sizeof(string), "Игрок %d был %s по причине: %s", id, (action == 1 ? "понижен" : "уволен"), reason);
SendClientMessageToAll(COLOR_YELLOW, string);

return 1;
}
return 0;
}

Поясню:
1. Проверка прав: Перед выполнением команд, код проверяет, имеет ли игрок право использовать /demote с помощью сравнения ранга.
2. Обработка аргументов: Используется sscanf для извлечения ID игрока, действия и причины.
3. Логика понижения/увольнения: Если выполняется понижение и игрок больше 1-го ранга, его ранг понижается. Если игрок 1-го ранга, он увольняется. Если выбирается увольнение, ранг устанавливается в 0.
4. Уведомление всех о действии: После изменения статуса игрока, сообщение отправляется всем игрокам.

4. Примеры реализации(фотографии, видео): -
 
Это предложение реализовано. Голоса больше не принимаются.

Shinobu_Roses

Пᴩᴏᴋуᴩᴀᴛуᴩᴀ Н.О
Player
Up
 

Realx_Secret

Из Secret Squad | Легендарный Secret
Player
Down, если есть конфликт лд право с 9 мвд, то он просто может уволить, для чего же на зама берет игрока, что бы потом его кто то уволил?
 

litvadevlin

Founder
Project Team
- Правительство / ФСБ приобретут власть и будут уполномочены наказывать нарушитель, не писав жалобу на нарушителя.
Мы не просто так не стали давать возможность "увольнять" сотрудников.
Игроки из другой фракции не должны так сильно влиять на другую фракцию.

1. Нельзя уволить 1-е ранги.
2. Нельзя понизить / уволить 7 + ранги.
Вы предлагаете дать возможность понизить заместителя фракции, а потом и вовсе уволить?
Если есть жалоба на старший состав фракции, то это должно решаться вместе с лидером или со следящей администрацией.

Сейчас оптимальный вариант использования команды /demote
 
Статус
Закрыто для дальнейших ответов.
Верх