- Регистрация
- 23 Июн 2017
- Сообщения
- 981
- Лучшие ответы
- 38
- Репутация
- 364
Система предназначена для помощи младшей администрации. Игрок в админ чат посылает запрос и высвечивается старшей администрации, одобрить или нет. Делал под себя, так-что измените, что надо. Нам понадобится foreach, Pawn.CMD
В начало мода.
Ко всем командам.
В OnPlayerKeyStateChange
В начало мода или ко всем итераторам
При добавлении/заходе администратора
При выходе/снятии администратора
Сток для отправки сообщения администраторам
У кого не грузит:
Буду рад увидеть конструктивную критику, а так-же идеи для следующей версии.
Автор: Я
Админ-бот v.2: https://pawno-info.ru/threads/319233-%D0%90%D0%B4%D0%BC%D0%B8%D0%BD-%D0%B1%D0%BE%D1%82-v-2?p=2000056#post2000056
В начало мода.
PHP:
const
MAX_BOT_REQUEST = 3, // Максимальное кол-во запросов для бота
MAX_BOT_REQUEST_LENGTH = 8; // Максимальная длина запросов
new
ADMIN_BOT_SUPPORT[MAX_BOT_REQUEST][MAX_BOT_REQUEST_LENGTH] = // Сами запросы
{
"/mute",
"/prison",
"/jail"
},
ADMIN_BOT_TEXT[128]; // Массив с хранением полного запроса (причина/ник)
PHP:
CMD:admin(playerid, params[])
{
if(/*проверка на администратора*/)
{
if(!(0 < strlen(params) < 90))
return SendClientMessage(playerid, -1, !"Используйте больше 1 символа и меньше 90");
new
string[128];
format(string, sizeof(string), "[A] %s [%d]: %s", /*Массив с ником админа*/, playerid, params);
SendAdminMessage(-1, string);
new
strFindPos;
for(new k = MAX_BOT_REQUEST-1; k != -1; k--) // Перебираем все существующие запросы
{
if((strFindPos = strfind(params, ADMIN_BOT_SUPPORT[k], true)) != -1) // Смотрим, присутствуют ли в тексте
{
strdel(params, 0, strFindPos); // Если да, то удаляем всё, до найденного запроса
strcat(ADMIN_BOT_TEXT, params); // Сохраним запрос в массив
strcat(ADMIN_BOT_TEXT, " // ");
strcat(ADMIN_BOT_TEXT, /*Массив с ником админа*/);
strcat((string[0] = EOS, string), /*Массив с ником админа*/);
strcat(string, " запросил помощь о выдаче наказания. Одобрить Y, отказать N");
SendAdminMessage(-1 , string); // Отправим текст администраторам.
break; // Обрываем цикл, после найденного запроса.
}
}
}
return 1;
}
alias:admin("a");
PHP:
if(newkeys & KEY_YES) // Если нажали Y
{
if(ADMIN_BOT_TEXT[0] != '\0')
{
if(/*Проверка на администратора*/)
{
PC_EmulateCommand(playerid, ADMIN_BOT_TEXT); // Отправим запрос
ADMIN_BOT_TEXT[0] = EOS; // Обнулим массив.
}
}
}
else if(newkeys & KEY_NO) // Если нажали N
{
if(ADMIN_BOT_TEXT[0] != '\0')
{
if(/*Проверка на администратора*/)
{
new
string[(48 + MAX_PLAYER_NAME + 1) - 2];
strcat(string, "[A] Администратор ");
strcat(string, /*Массив с ником админа*/);
strcat(string, " отказал в запросе о помощи");
SendAdminMessage(-1, string);
ADMIN_BOT_TEXT[0] = EOS;
}
}
}
PHP:
new
Iterator:Connect_Admin<MAX_PLAYERS>; // Итератор , где будем хранить всех администраторов
PHP:
if(!Iter_Contains(Connect_Admin, /*админ*/)) Iter_Add(Connect_Admin, /*админ*/);
PHP:
if(Iter_Contains(Connect_Admin, /*админ*/)) Iter_Remove(Connect_Admin, /*админ*/);
PHP:
stock SendAdminMessage(color, const string[])
{
foreach(new i : Connect_Admin)
{
SendClientMessage(i, color, string);
}
return 1;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Буду рад увидеть конструктивную критику, а так-же идеи для следующей версии.
Автор: Я
Админ-бот v.2: https://pawno-info.ru/threads/319233-%D0%90%D0%B4%D0%BC%D0%B8%D0%BD-%D0%B1%D0%BE%D1%82-v-2?p=2000056#post2000056
Последнее редактирование: