Перейти к содержанию
Авторизация  
Supreme228

Рестарт сервера

Рекомендуемые сообщения

Supreme228

Доброго времени суток. Требуется помощь )0)

Нужно, чтобы за 5 секунд до момента отключения мода (перезагрузки), произошло сохранение аккаунтов + кик всех игроков. Я тут пытался с этим пошаманить - безуспешно. Так же, нужен текст (gametextforplayer), который будет обновляться. В тексте будет написано "Рестарт сервера через %d секунд", надпись по середине экрана. И, соответственно, по мере уменьшения времени, обновляется и этот текст, чтобы люди знали, сколько времени осталось до рестарта. С этим тоже пытался что-то сделать, но результат аналогичный. Ниже прикреплю код команды. Помогите, люди добрые.

CMD:gmx(playerid, params[])
{
    if(PI[playerid][pAdmin] < 8) return 1;
    else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);

    if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]");
	new string[128];
    new sec;
    if(sscanf(params, "d", sec)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]");
    else if(!(5 <= sec <= 300) && sec != 0) return SCM(playerid, COLOR_WHITE, "Время от 5 до 300 секунд, либо 0");

    static timerid;
    if(sec == 0)
    {
        KillTimer(timerid);
        SendMesAll(COLOR_RED, "*ВНИМАНИЕ: %s отменил технический перезапуск сервера", AdminName(playerid));
    }
    else
    {
        timerid = SetTimer("GameModeExitDelay", 1000*sec, false);
		format(string, sizeof(string), "*ВНИМАНИЕ: %s запустил таймер на технический перезапуск сервера (%d сек)", AdminName(playerid), sec);
		SendClientMessageToAll(COLOR_RED, string);
		SaveAcc();
		SaveWarehouse();
    }
    return 1;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DREZZ

Хм...Могу посоветовать вот это (с мода gamenix)

Но дальше сам добавь то что ты хочешь.

 

CMD:gmx(playerid, params[])
{
if(PlayerInfo[playerid][pAdminn] >= 6)
{
    if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "• {ffcf00}[ Подсказка ] {ffffff}Введите: /gmx  [1 - рестарт][2 оффнуть]");
    if(params[0] == 1)
    {
for(new i=0;i<MAX_PLAYERS;i++) // MAX_PLAYERS
{
    if(IsPlayerConnected(i))
    {
        HideDialog(i);
    SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SendClientMessage(i, COLOR_GREY, " ");
SetPlayerInterior(i,0);
SetPlayerCameraPos(i, -137.4942, 448.6020, 70.0440);
SetPlayerCameraLookAt(i, -138.4485, 448.9140, 69.1091);
TogglePlayerControllable(i,false);
}
}
SaveAcc();
SetTimer("GMX", 3000, 0);
GameTextForAll("~g~Њo›aћyќc¦a, Јoљo›љњ¦e", 5000, 5);
}
if(params[0] == 2)
    {
SendClientMessageToAll(CINFO,"Сервер временно выключен администрацией");
SendClientMessageToAll(CINFO,"Администрация Gamenix Role Play приносит извинения за неудобства");
            SaveAcc();
SetTimer("EXIT", 3000, 0);
}
  }
return 1;
}

Если будут варнинги или ошибки...Кидай,я тебе докину код.


Если нужна помощь,обращайся.Свяжусь и помогу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Sharaga

Возьми сохранение с паблика выхода с серва, и вставь в этот код

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Supreme228

@#Sharaga,Вы, видимо, не поняли. Как делается сохранение - знаю. Мне нужно сделать функцию, чтобы происходило всё это за 5 секунд до рестарта сервера. С этим вот я и мучаюсь. 

GameTextForAll может как-то через таймер можно сделать, не знаю даже. Через сток/паблик. Ждем скриптеров ))0)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DREZZ

@Supreme228,Ну тогда создай таймер....Пропиши ему время,вставь его в свою команду перед киком...И выведи секунды до рестарта в чат! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Supreme228

@DREZZ,Легко сказать)) И не в чат, а в gametextforall. Принять участие в помощи не желаете? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Supreme228

Никто не поможет?

UP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
DREZZ

@Supreme228,Я имел ввиду, что бы в чат выводилось время до рестарта.А то что куда вставлять,это я давно знаю. 


@Supreme228,давай помогу,можешь отписаться в л/с форума. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MOP TTEX

[spoiler=текст]

 

new GMXTimer; new GMXSecond; CMD:gmx(playerid, params[]) { if(PI[playerid][pAdmin] < 8) return 1; else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin); if(isnull(params)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); new string[128]; new sec; if(sscanf(params, "d", sec)) return SCM(playerid, COLOR_WHITE, "• {66CC00}[ Подсказка ] {ffffff}Введите: /gmx [0 - 300 секунд]"); else if(!(5 <= sec <= 300) && sec != 0) return SCM(playerid, COLOR_WHITE, "Время от 5 до 300 секунд, либо 0"); if(sec == 0) { KillTimer(GMXTimer); GMXSecond = 0; SendMesAll(COLOR_RED, "*ВНИМАНИЕ: %s отменил технический перезапуск сервера", AdminName(playerid)); } else { GMXTimer= SetTimer("GameModeExitDelay", 1000, true); format(string, sizeof(string), "*ВНИМАНИЕ: %s запустил таймер на технический перезапуск сервера (%d сек)", AdminName(playerid), sec); SendClientMessageToAll(COLOR_RED, string); SaveAcc(); ?GMXSecond = sec; SaveWarehouse(); } return 1; } public GameModeExitDelay() { new str[4]; format(str, 4, "%d", GMXSecond); GameTextForAll(str, 1000, 3); GMXSecond--; for(new i = 0; i < MAX_PLAYERS; i++) { //сохранение } if(GMXSecond == 0) { KillTimer(GMXTimer); SendRconCommand("gmx"); } return 1; }

 

 

Изменено пользователем MOP TTEX
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.