• Добро Пожаловать к нам на Форум Гость! Если вы еще не зарегистрировались просим вас зарегистрироваться!

  • Для того что бы скачивать с нашего форума, нужно зарегистрироватся!

  • Скачати Counter-Strike 1.6 by Five STARS
  • Цены на серверах: Админка 100 грн/мес Випка 50 грн/мес.

[Плагин] Управление админами

qpi3ik

Создатель
Команда форума
Гл.Администратор
Лучшие ответы
0
Плагин управления Админами

Это переделка стандартного плагина amxbans_core

Отличительные особенности:
- совместная работа с базой данных и файлом users.ini (квар amxbans_use_admins_file "3")
1. amxbans_use_admins_file 0 - работает с БД стандарт
2. amxbans_use_admins_file 1 - работа с файлом стандарт
3. amxbans_use_admins_file 2 - админы отключены стандарт
4. amxbans_use_admins_file 3 работа с БД и файлом одновременно добавлен
Ранее, для работы с БД устанавливался квар "0". Теперь, можно ставить "3", если есть смысл (если есть админы в файле)

- добавление админов командой amx_addadmin. Место хранения- в зависимости от квара amxbans_use_admins_file
Формат команды (консоль, флаг ADMIN_RCON): amx_addadmin "ник или steamid" "пароль" "флаги доступа" "тип авторизации (name или steam)" "кол-во дней".
Плагин сам определит тип авторизации в зависимости от формата ника. т.е. не получится случайно установить ник вместо steamID и наоборот, а также, установит время истечения админки, если кол-во дней больше "0".

- создание дампа админов в файл (квар amxbans_dump_sql 0/1). При недоступности БД, админы будут загружены из дампа (если он есть). Если Вы не добавляете админов по несколько штук в день, то квар можно не включать (даже, желательно). В этом случае создайте дамп: включить amxbans_dump_sql 1 и перезагрузить (сменить) карту и вернуть amxbans_dump_sql в "0"

- переключение на users.ini, если БД недоступна и нет админов в дампе и др.. Другими словами: если админы где-то прописаны, то они обязательно будут загружены при возникновении проблем с их хранилищами (если указаны соответствующие настройки)

- при изменении количества дней в users.ini вручную, дата истечения пересчитывается

- распознает 2 типа паролей: простой пароль и md5 (как в БД, так и в users.ini)

- добавлен натив для отображения срока действия админки
Для успешной компиляции сторонних плагинов с использованием натива, необходимо добавить строку native days_left_info(id); в инклюд (например, в amxmodx.inc)

- автоматическое удаление истекших аккаунтов из Базы Данных и users.ini.
Управление функцией: квар amxbans_expadmins_delete
Через сколько дней после истечения админки удалить запись из БД. "0" - не удалять
Если к базе привязаны несколько серверов:
достаточно включить квар на любом из серверов (включение квара на всех серверах- не имеет смысла), т.к истекшие аккаунты удаляются для всех серверов одновременно
Удаление из users.ini физически не происходит. Выполняется комментирование строки.

Вариант 1- срок действия- бессрочно
Ник (steamID) / пароль / флаги / тип авторизации
"nickname" "pass" "abc" "ab"

Вариант 2 - с указанием времени действия
Ник (steamID) / пароль / флаги / тип авторизации / время (дней)
"nickname" "pass" "abc" "ab" "0"

Если время = 0, срок действия- бессрочно. При указании времени >0 появляется колонка "дата истечения"- ее трогать не нужно.
Результат после указания времени больше 0:(добавилась колонка №5, время установилось =0)
Ник (steamID) / пароль / флаги / тип авторизации / время (дней) / дата истечения
"nickname" "pass" "abc" "ab" "0" "1438510885"

Для изменения даты истечения- укажите новый срок в колонке "Время" (отсчет- с текущего дня). Новая дата истечения изменится сама.

Если время и дата истечения = 0, срок действия- бессрочно
Если время = 0, а дата истечения > 0, срок действия- до даты истечения
После наступления даты истечения, админ будет отключен автоматически:
;"nickname" "pass" "abc" "ab" "0" "1438510885"
Дата истечения в формате Unix

Можете воспользоваться командой amx_addadmin
Компилировать локально. Для успешной компиляции необходимо добавить строку
native days_left_info(id);
в инклюд (например, в amxmodx.inc)
PHP:
Расширять Коллапс Копировать
displayMenu(id, pos)
{
   if (pos < 0)
      return
   new menuBody[512]
   new b = 0
   new start = pos * MENUITEMSPERPAGE
//добавляем блок
   new exp = days_left_info(id)
   new left[32]
   if (exp == 0)
   format(left, 31, "Бессрочная")
   else num_to_str(exp, left, 31)
////
   if (start >= g_menusNumber)      // MENUS_NUMBER
      start = pos = g_menuPosition[id] = 0
   new len = format(menuBody, 511,
//заменяем строку
   //g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^n\w^n" : "AMX Mod X Menu %d/%d^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))
//на
   g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^nАдминка истекает через, дн.: %s^n^n" : "AMX Mod X Menu %d/%d^nАдминка истекает через,  дн: %s.^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0), left)
image.png

image.png

[DOUBLEPOST=1437589370,1437588979][/DOUBLEPOST]Удалять истекшие Админки через месяц.

Строка 659
PHP:
Расширять Коллапс Копировать
AND ((`PREFIX_amxadmins`.`expired` < UNIX_TIMESTAMP(NOW())) AND (`PREFIX_amxadmins`.`days` > '0')));")
замените на
PHP:
Расширять Коллапс Копировать
AND (((`PREFIX_amxadmins`.`expired` + '2629743')< UNIX_TIMESTAMP(NOW())) AND (`PREFIX_amxadmins`.`days` > '0')));"
[DOUBLEPOST=1437960847][/DOUBLEPOST]Исправление
Устранено падение некоторых серверов.
 

Вложения

Назад
Сверху