Данный скрипт будет перезапускать ваш сервер в указанное вами время.
Функционал:
Оповещение об рестарте за Х секунд до рестарта.
Оповещение об рестарте при самом рестарте.
Поддержка большого количества рестартов.
Все основные параметры редактируются через .ini файл.
Хорошее, на мой взгляд, качество скрипта. Я думаю, у вас будет точно такое же мнение :bf:.
Как использовать скрипт:
Админ-команда "/reload_r" перезагрузит базу данных скрипта. Это можно использовать, например, при изменении базы данных. Скрипт управляется через базу данных - файл AutoRestarter.ini Ключ базы данных countdown отвечает за время отсчета до рестарта в секундах. Ключ базы данных countdown_message отвечает за сообщение, которое отправится в чат всем игрокам, когда до рестарта сервера останется Х секунд (Х - значение countdown). Ключ базы данных restart_message отвечает за то сообщение, которое отправится в чат всем игрокам при рестарте. Ключ базы данных system_state является ключем безопасности, который предотвращает повторный рестарт при совпадении времени. Ключ базы данных restart_time_X содержит в себе время рестарта номер Х, имеет формат "Час:Минута", X - идентификатор от 0 до лимита.
Пример базы данных:
C такой базой данных сервер будет перезапускаться дважды: в полночь и в 12:35 по времени машины, на которой стоит сервер. В чат будут отправлены соответствующие сообщения.
*/ //Компоненты #include /*Скрипт AutoRestarter by BRICS*/<a_samp> #include <mxINI>//by MX_MASTER //Лимиты #define MAX_RESTART_TIMES 10 //максимальное количество поддерживаемых рестартов #define MAX_LINE_STR 16 //максимальная длинна символов в линии загрузки //Ключи базы данныъ #define STATE_NAME "system_state" //название строчки состояния #define INTERVALS_NAME "restart_time_%d" //название строчки интервалов #define COUNTDOWN_NAME "countdown"//название строчки обратного отсчета #define RM_NAME "restart_message"//название строчки сообщения при рестарте #define CM_NAME "countdown_message"//название строчки сообщения обратного отсчета //Параметры чтения #define FILE "AutoRestarter.ini"//файлик с рестартами #define HOUR_MINUTES_SEPERATOR ':'//разделитель часа и минуты //Различные сообщения и оповещения, а также команды #define RESTART_X_MESSAGE " [AutoRestarter]: Рестарт № %d будет выполняться в %d часов %d минут" #define RESTARTS_LOADED " [AutoRestarter]: загружено %d рестартов" #define BAD_VALUE_ERROR " [AutoRestarter]: Время в строке %d задано не правильно. \n Данное время будет проигнорировано" #define RestartMessageStd "{00ff00}[AutoRestarter]: {ffffff}Сервер перезапускается" #define CountdownMessageStd "{00ff00}[AutoRestarter]: {ffffff}Сервер будет перезапущен через %d секунд" #define DATABASE_CREATED " [AutoRestarter]: База данных была создана согласно параметру \"FILE\"" #define DATABASE_NOTFOUND " [AutoRestarter]: База данных не найдена" #define RELOAD_DB_CMD "/reload_r"//команда для перезагрузки базы данных с рестартами #define RELOAD_MSG "{00ff00}[AutoRestarter]: {ffffff}Команда перезагрузки базы данных была отправлена на сервер" //Интервалы #define CheckTimerI 10*850//интервал таймера проверки рестарта. При интервале выше 60000 система будет работать неправильно. #define CountDown_Std 10 //обратный отсчет до рестарта (в сек) 0 - моментальный рестарт //Дефайны как параметры #define FALSE 0 #define TRUE 1