Restart

Restart 2.0

Haseek

йфя
Сообщения
472
Реакции
79
C#:
int iTime;

public Plugin myinfo =
{
    name = "Restart",
    author = "Temlik & HolyHender",
    version = "2.0"
};

public void OnPluginStart()
{
    RegAdminCmd("sm_restart", Command_Restart, ADMFLAG_ROOT);
}

Action Command_Restart(int iClient, int iArgs)
{
    if(iArgs != 1)
    {
        ReplyToCommand(iClient, "Usage: sm_restart <seconds>");
    }
    else
    {
        char sTime[4];

        GetCmdArg(1, sTime, sizeof(sTime));
        iTime = StringToInt(sTime);

        if(iTime > 0)
        {
            iTime += 3;
            CreateTimer(1.0, Timer_Restart, _, TIMER_REPEAT);
        }
    }

    return Plugin_Handled;
}

Action Timer_Restart(Handle hTimer)
{
    iTime--;

    if(iTime > 0)
    {
        PrintCenterTextAll("Рестарт сервера через: %i сек.", iTime);
    }
    else
    {
        PrintCenterTextAll("Рестарт! Перезайдите на сервер");
        ServerCommand("exit");

        return Plugin_Stop;
    }

    return Plugin_Continue;
}
Идея была в том, чтобы после истечения времени, отображать второе сообщение несколько секунд. У тебя же к заданному времени просто прибавляется несколько сек.
 

Faya™

Жуестер
Сообщения
867
Реакции
457
Идея была в том, чтобы после истечения времени, отображать второе сообщение несколько секунд. У тебя же к заданному времени просто прибавляется несколько сек.
Сделать else if(iTime > -3) (как пример)
И вывести твое сообщение.
А вообще это доп сообщение должно вывестись игроку, и сервер должен выйти, т.е табличка должна висеть
 

Haseek

йфя
Сообщения
472
Реакции
79
Сделать else if(iTime > -3) (как пример)
И вывести твое сообщение.
А вообще это доп сообщение должно вывестись игроку, и сервер должен выйти, т.е табличка должна висеть
Да, норм вариант.
Но мне интересно почему время не отнимается, если оставить только iTimeDelay.

уменьшается:
    else if (iTimeDelay > 0)
    {
        PrintCenterTextAll("Рестарт! Перезайдите на сервер");
        iTime--;
        iTimeDelay--;
        return Plugin_Continue;
    }

не уменьшается:
    else if (iTimeDelay > 0)
    {
        PrintCenterTextAll("Рестарт! Перезайдите на сервер");
        iTimeDelay--;
        return Plugin_Continue;
    }
 

Faya™

Жуестер
Сообщения
867
Реакции
457
Да, норм вариант.
Но мне интересно почему время не отнимается, если оставить только iTimeDelay.

уменьшается:
    else if (iTimeDelay > 0)
    {
        PrintCenterTextAll("Рестарт! Перезайдите на сервер");
        iTime--;
        iTimeDelay--;
        return Plugin_Continue;
    }

не уменьшается:
    else if (iTimeDelay > 0)
    {
        PrintCenterTextAll("Рестарт! Перезайдите на сервер");
        iTimeDelay--;
        return Plugin_Continue;
    }
Потому что ты его присваиваешь этой переменной из iTime выше
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Года 4 назад писал себе такой плагин

Только он ещё рестартил сервер по прошествию времени установленного кваром при освобождении сервера от игроков (были квары для нижней и верхней границы времени перезагрузки).
Перед перезагрузкой плагин выводит в центре текст с обратным отсчётом.
Также присутствует команда для немедленной перезагрузки (флаг SLAY).
Ещё плагин должен был делать реконнект игроков.
Плагин на новом синтаксисе, кстати.

Надо бы переписать (чистка, оптимизация, все дела).
Ждем оптимизации) плагин хороший
 

Rimmer

Помогаю новичкам / Переводчик / Тестер / Заказчик
Сообщения
1,368
Реакции
753
Установил .smx
Загрузил плагин
Прописал sm_restart "10"
В итоге состояние сервера server quit и не запускается, хост Overhosting
 

Temlik

Участник
Сообщения
668
Реакции
174
  • Автор ресурса
  • #27
@Rimmer, у меня стоит на хостинге авторестарт при зависании, и сервер сам включается через несколько минут
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Rimmer, сервер убивается командой exit. Поэтому хостинг должен быть настроен так, чтобы сервак перезапускался после падения.
Можно поменять её на команду "_restart". Но хз как на это будет реагировать хостинг.

Вот чуток подновил код (ну и оставил комментарий где можно сменить команду).
 

Вложения

  • Restart 2.0_fix.sp
    1.1 КБ · Просмотры: 6
Сверху Снизу