Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

  • 30.10.2013, 12:59

    Автоматический рестарт сервера

    Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?
    Ко всем forward'aм

    PHP код:

    forward AutoRestart(); 
    В public OnGameModeInit

    PHP код:

        SetTimer("AutoRestart", 60000, 1); // каждые 60 секунд вызываем паблик AutoRestart ( 1 сек. = 1000) 
    В самый низ мода

    PHP код:

    public AutoRestart()
    {
      new string[128];
      new h, m, s;
      gettime(h, m, s); // Узнаем время
       if(h == 1 && m == 25) // Если 1 час 25 минут (Можно заменить время на свое)
       {
        format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
            SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
       }
       if(h == 1 && m == 30) // Если 1 час 30 минут (Можно заменить время на свое)
       {
        SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
        format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
            SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
        SendRconCommand("gmx"); // Делаем рестарт
      }

  • 1 пользователь сказал cпасибо onix96 за это полезное сообщение:

     (31.10.2013)

  • 30.10.2013, 13:28

    ЦитатаСообщение от onix96 Посмотреть сообщение Доброго времени суток, сейчас я расскажу вам о "Автоматическом рестарте". Я думаю многие видели на серверах в определенное время происходит рестарт сервера, при этом администрации не приходится вводить команду. Сервер делает это автоматически. Как это сделать?
    Ко всем forward'aм

    PHP код:

    forward AutoRestart(); 
    В public OnGameModeInit

    PHP код:

        SetTimer("AutoRestart", 60000, 1); // каждые 60 секунд вызываем паблик AutoRestart ( 1 сек. = 1000) 
    В самый низ мода

    PHP код:

    public AutoRestart()
    {
      new string[128];
      new h, m, s;
      gettime(h, m, s); // Узнаем время
       if(h == 1 && m == 25) // Если 1 час 25 минут (Можно заменить время на свое)
       {
        format(string, 128, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); // Тест, отправляемый в чат
            SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
       }
       if(h == 1 && m == 30) // Если 1 час 30 минут (Можно заменить время на свое)
       {
        SaveAccounts(); // Замените эту строчку на функции сохранения у вас в моде (С помощью вашей команды рестарта можно их найти (там они будут написаны))
        format(string, 128, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); // Тест, отправляемый в чат
            SendClientMessageToAll(COLOR_WHITE, string);// Выводим сообщение в общий чат
        SendRconCommand("gmx"); // Делаем рестарт
      }

    зачем тут форматирование текста?
    Вполне достаточно

    PHP код:

     SendClientMessageToAll(COLOR_WHITE, "Уважаемые игроки, через 5 минут произойдет АвтоРестарт."); 

    PHP код:

     SendClientMessageToAll(COLOR_WHITE, "Происходит автоматический рестарт сервера, подождите 10-15 секунд..."); 
    и теперь не надо занимать стек переменной string которая тут в принципе не нужна
    так-же у кого нибудь может не быть
    макроса COLOR_WHITE
    опять ничего полезного в уроке не увидел

    Последний раз редактировалось _[Bupyc]_; 30.10.2013 в 13:30.

    Мои работы:
    [Include][ALL]
    [Include][ALL]
    [Include][ALL]
    В очередной раз убеждаюсь, что П-И сборище профессионалов. © Tracker1

  • 30.10.2013, 16:19

    У меня получилось вот так..

    PHP код:

    CMD:restart(playerid, params[])
    {
        if(Player[playerid][pAdmin] == 4)
         {
         gettime(hours, minutes, seconds);
           if(hours == 19 && minutes == 19 && seconds == 30) return SendClientMessageToAll(COLOR_LIGHTRED, "Âíèìàíèå!×åðåç 30 ñåêóíä ïðîèçîéäåò Ðåñòàðò Ñåðâåðà!");
           if(hours == 19 && minutes == 20)
           {
        SavePlayer(playerid);
        SendClientMessageToAll(COLOR_WHITE, "Ïðîèñõîäèò Ðåñòàðò Ñåðâåðà!");
        SendRconCommand("gmx");
         }
         }
         return 1;

    Писал в команде...
  • 30.10.2013, 16:33

    ЦитатаСообщение от Steve_Johnson Посмотреть сообщение У меня получилось вот так..

    PHP код:

    CMD:restart(playerid, params[])
    {
        if(Player[playerid][pAdmin] == 4)
         {
         gettime(hours, minutes, seconds);
           if(hours == 19 && minutes == 19 && seconds == 30) return SendClientMessageToAll(COLOR_LIGHTRED, "Âíèìàíèå!×åðåç 30 ñåêóíä ïðîèçîéäåò Ðåñòàðò Ñåðâåðà!");
           if(hours == 19 && minutes == 20)
           {
        SavePlayer(playerid);
        SendClientMessageToAll(COLOR_WHITE, "Ïðîèñõîäèò Ðåñòàðò Ñåðâåðà!");
        SendRconCommand("gmx");
         }
         }
         return 1;

    Писал в команде... Команда работать не будет

    PHP код:

    CMD:restart(playerid, params[]) 
    {
        if(Player[playerid][pAdmin] == 4)
        {
            SavePlayer(playerid); 
            SendRconCommand("gmx");
        }
        return 1; 

  • 30.10.2013, 16:36

    Хорошо

    Лучше:
    К forward:

    PHP код:

    forward Rhymed(); 
    В public OnGameModeInit():

    PHP код:

    SetTimer("Rhymed", 1000, 1); 
    Где нибудь в конце мода:

    PHP код:

    public Rhymed()
    {
        new hour, minute, second; gettime(hour, minute, second);
            if(hour == 07 && minute == 00 && second == 00)
        {
            SendClientMessageToAll(-1, "Происходит рестарт сервера. Время рестарта: 07:00");
            return SendRconCommand("gmx");
        }
        return 1;

    Вывод: каждый день в 07:00 (время можно изменить же) по серверу будет происходить автоматический рестарт.
  • 2 пользователей сказали cпасибо Rhymed32 за это полезное сообщение:

     (30.10.2013),  (31.10.2013)

  • 30.10.2013, 16:42

    Вопрос на засыпку, а нафиг он вообще нужен, если мод не обновляли и т.п.?

  • 30.10.2013, 16:44

    ЦитатаСообщение от Seregamil Посмотреть сообщение

    Вопрос на засыпку, а нафиг он вообще нужен, если мод не обновляли и т.п.?

    Если в моде переполнение стека то надо перезагружать или начинает глючить, утечки памяти и т.п
  • 30.10.2013, 17:51

    ЦитатаСообщение от Steve_Johnson Посмотреть сообщение У меня получилось вот так..

    PHP код:

    CMD:restart(playerid, params[])
    {
        if(Player[playerid][pAdmin] == 4)
         {
         gettime(hours, minutes, seconds);
           if(hours == 19 && minutes == 19 && seconds == 30) return SendClientMessageToAll(COLOR_LIGHTRED, "Âíèìàíèå!×åðåç 30 ñåêóíä ïðîèçîéäåò Ðåñòàðò Ñåðâåðà!");
           if(hours == 19 && minutes == 20)
           {
        SavePlayer(playerid);
        SendClientMessageToAll(COLOR_WHITE, "Ïðîèñõîäèò Ðåñòàðò Ñåðâåðà!");
        SendRconCommand("gmx");
         }
         }
         return 1;

    Писал в команде... Ты будешь сохранять лишь аккаунт того игрока, который использовал эту команду.
  • 11.11.2013, 12:39

    Давно искал, пытался сам замутить, но преблемы были...
    Спасибо вообщем, жирный + за старание

  • 11.11.2013, 14:08

    ЦитатаСообщение от Rhymed32 Посмотреть сообщение Лучше:
    К forward:

    PHP код:

    forward Rhymed(); 
    В public OnGameModeInit():

    PHP код:

    SetTimer("Rhymed", 1000, 1); 
    Где нибудь в конце мода:

    PHP код:

    public Rhymed()
    {
        new hour, minute, second; gettime(hour, minute, second);
            if(hour == 07 && minute == 00 && second == 00)
        {
            SendClientMessageToAll(-1, "Происходит рестарт сервера. Время рестарта: 07:00");
            return SendRconCommand("gmx");
        }
        return 1;

    Вывод: каждый день в 07:00 (время можно изменить же) по серверу будет происходить автоматический рестарт.

    PHP код:

    public Rhymed() 

        new hour, minute, second; gettime(hour, minute, second); 
            if(hour == 07 && minute == 00 && second == 00) 
        { 
            SendClientMessageToAll(-1, "Происходит рестарт сервера. Время рестарта: 07:00"); 
            return SendRconCommand("gmx"); 
        } 
        return 1; 

    Оптимизировать,смогешь?

Источник: http://pawno-info.ru/showthread.php?t=194279


Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп

Как сделать рестарт всего сервера самп