Запускает/Отключает плагины по времени.

Запускает/Отключает плагины по времени. 1.1

DENZEL519

Работаю через AI !
Сообщения
534
Реакции
390
  • Автор ресурса
  • #1
DENZEL519 добавил(а) новый ресурс:

Запускает/Отключает плагины по времени. - Запускает / отключает плагины по времени, дням неделям.

Данный плагин будет запускать/останавливать плагины по времени и дням неделям, которые вы выставите. Так же работает с выгрузкой сразу много плагинов.

Описание:
1.
Работает по времени
2. Работает по дням неделям
3. Работает c подпапками
4. Работает c мульти плагинами
5. Вывод инфы когда ближайшая сработка через консоль команду
6. Сохраняет плагины включёнными или выключенными даже после смены карт.

Узнать больше об этом ресурсе...
Сообщения автоматически склеены:

Если кто проверит на других source играх, напишите в теме пожалуйста.
 
Последнее редактирование:

DENZEL519

Работаю через AI !
Сообщения
534
Реакции
390
  • Автор ресурса
  • #2
DENZEL519 обновил(а) ресурс Запускает/Отключает плагины по времени. новой записью:

Что было исправлено в плагине TimedLoader

1. Проверки таймеров​

  • Убраны лишние проверки, оставлена только необходимая проверка наличия таймера.

2. Безопасная работа со строками​

  • Исправлены небезопасные операции со строками, которые могли вызывать сбои.
  • Теперь используется безопасный способ обрезки строк с проверкой длины.

3. Автоматическое создание папок​

  • Добавлена проверка и автоматическое создание папки data/, если её нет...

Узнать больше об этом обновлении...
Сообщения автоматически склеены:

Timed Plugin Loader v1.1

Автор: DENZEL519&AI​




Описание плагина

Timed Plugin Loader — это плагин для SourceMod, который позволяет автоматически загружать и выгружать другие плагины по расписанию. Плагин работает по времени сервера и может выполнять действия в определенные дни недели.




Основные возможности

  • Автоматическая загрузка/выгрузка плагинов — плагины загружаются и выгружаются в указанное время
  • Гибкое расписание — настройка времени в формате ЧЧ:ММ и выбор дней недели
  • Уведомления администраторов — автоматическое уведомление за 5 минут до события
  • Сохранение состояния — плагин запоминает состояние плагинов между сменами карт
  • Проверка операций — автоматическая проверка успешности загрузки/выгрузки с повторными попытками
  • Множественные плагины — возможность указать несколько плагинов для одного события




Установка

  1. Скомпилируйте файл TimedLoader.sp в TimedLoader.smx
  2. Скопируйте TimedLoader.smx в папку addons/sourcemod/plugins/
  3. Создайте файл конфигурации addons/sourcemod/configs/timed_plugins.cfg (см. раздел "Настройка")
  4. Перезагрузите сервер или выполните sm plugins load TimedLoader




Настройка

Плагин использует файл конфигурации: addons/sourcemod/configs/timed_plugins.cfg

Формат конфигурационного файла:

C-подобный:
"TimedPlugins"
{
    "Event1"
    {
        "time"        "12:00"        // Время в формате ЧЧ:ММ (24-часовой формат)
        "days"        "all"          // Дни недели (см. ниже)
        "action"      "1"            // 1 = загрузить, 0 = выгрузить
        "plugin"      "example"      // Имя плагина (без .smx) или несколько через запятую
    }
 
    "Event2"
    {
        "time"        "18:30"
        "days"        "weekdays"     // Только будние дни
        "action"      "0"
        "plugin"      "plugin1, plugin2, plugin3"
    }
 
    "Event3"
    {
        "time"        "20:00"
        "days"        "mon,wed,fri"  // Конкретные дни
        "action"      "1"
        "plugin"      "myplugin"
    }
}

Параметры конфигурации:

ПараметрОписаниеПримеры
timeВремя выполнения события в формате ЧЧ:ММ (24-часовой формат)"12:00", "18:30", "00:15"
daysДни недели для выполнения события"all", "weekdays", "weekend", "mon,wed,fri"
actionДействие: 1 = загрузить плагин, 0 = выгрузить плагин"1", "0"
pluginИмя плагина (без расширения .smx) или несколько плагинов через запятую"example", "plugin1, plugin2"

Варианты параметра "days":

  • "all" — все дни недели
  • "weekdays" — будние дни (понедельник — пятница)
  • "weekend" — выходные дни (суббота, воскресенье)
  • "mon,tue,wed,thu,fri,sat,sun" — конкретные дни (можно указывать несколько через запятую)

Примеры конфигурации:

C-подобный:
"TimedPlugins"
{
    // Загружать плагин "funplugin" каждый день в 10:00
    "MorningLoad"
    {
        "time"        "10:00"
        "days"        "all"
        "action"      "1"
        "plugin"      "funplugin"
    }
 
    // Выгружать плагин "eventplugin" в будние дни в 18:00
    "EveningUnload"
    {
        "time"        "18:00"
        "days"        "weekdays"
        "action"      "0"
        "plugin"      "eventplugin"
    }
 
    // Загружать несколько плагинов в выходные в 20:00
    "WeekendLoad"
    {
        "time"        "20:00"
        "days"        "weekend"
        "action"      "1"
        "plugin"      "plugin1, plugin2, plugin3"
    }
 
    // Загружать плагин только по понедельникам, средам и пятницам в 15:30
    "SpecificDays"
    {
        "time"        "15:30"
        "days"        "mon,wed,fri"
        "action"      "1"
        "plugin"      "specialplugin"
    }
}




Команды

Все команды доступны только администраторам с флагом ROOT (z).

КомандаОписание
sm_timedloader_reloadПерезагружает конфигурационный файл и показывает время следующего запланированного события
sm_timedloader_statusПоказывает время следующего запланированного события и сколько времени осталось до него
sm_timedloader_resetstateСбрасывает все сохраненные состояния плагинов (все плагины будут считаться включенными)




Как работает плагин

  1. При запуске плагин читает конфигурационный файл timed_plugins.cfg
  2. Плагин вычисляет время следующего запланированного события на основе текущего времени и дней недели
  3. Каждую секунду плагин проверяет, не наступило ли время для выполнения события
  4. За 5 минут до события администраторы получают уведомление в чат
  5. В указанное время плагин выполняет действие (загрузка или выгрузка) для всех указанных плагинов
  6. Плагин проверяет успешность операции и при необходимости повторяет попытку
  7. Состояние плагинов сохраняется в файл data/timed_plugins_state.cfg
  8. При смене карты плагин восстанавливает сохраненные состояния

Особенности работы:

  • Плагин использует окно допуска ±64 секунды для выполнения событий (учитывает неточность таймеров)
  • Если плагин не удалось загрузить, плагин автоматически повторяет попытку через 2 секунды, затем через 5 секунд
  • Уведомления отправляются только администраторам с флагом ADMFLAG_GENERIC (a) или выше
  • Состояния плагинов сохраняются между сменами карт, но удаляются при выгрузке самого TimedLoader




Файлы плагина

  • addons/sourcemod/plugins/TimedLoader.smx — скомпилированный плагин
  • addons/sourcemod/configs/timed_plugins.cfg — конфигурационный файл (создается вручную)
  • addons/sourcemod/data/timed_plugins_state.cfg — файл состояний (создается автоматически)




Устранение неполадок

Плагин не загружается/выгружается в указанное время:

  • Проверьте правильность формата времени в конфигурации (ЧЧ:ММ)
  • Убедитесь, что указаны правильные дни недели
  • Проверьте, что имя плагина указано без расширения .smx
  • Используйте команду sm_timedloader_status для проверки следующего события
  • Проверьте логи сервера на наличие ошибок

Ошибка "Plugin file not found":

  • Убедитесь, что плагин существует в папке addons/sourcemod/plugins/
  • Проверьте правильность имени плагина (регистр важен на Linux-серверах)
  • Убедитесь, что имя указано без расширения .smx

Плагин не сохраняет состояние между картами:

  • Проверьте права доступа к папке addons/sourcemod/data/
  • Убедитесь, что папка data существует




Техническая информация

  • Версия плагина: 1.1
  • Требования: SourceMod 1.10+
  • Префикс уведомлений: [TimedLoader]
  • Окно допуска времени: ±64 секунды
  • Максимум плагинов на событие: 32
 
Последнее редактирование:
Сверху Снизу