Question

Снова я. Проблема с /gmx решена. Осталась последняя просьба.

Нужно, чтобы за 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;
}

 

Share this post


Link to post

6 answers to this question

  • 0

@Покемон 

forward GameModeExitDelay();
public GameModeExitDelay()
{
	GameModeExit();
}

 

Share this post


Link to post
  • 0
Спойлер

{
        timerid = SetTimer("GameModeExitDelay", 1000*sec, false);
		format(string, sizeof(string), "*ВНИМАНИЕ: %s запустил таймер на технический перезапуск сервера (%d сек)", AdminName(playerid), sec);
		SendClientMessageToAll(COLOR_RED, string);
                GameTextForPlayer(i,"~r~Осталось до рестарта %d сек", sec);
                if(sec == 5) 
                {
		SaveAcc();
		SaveWarehouse();
                Kick(playerid);
                }
    }

Не уверен что сработает, если что сорян))

Edited by archiboy6

Share this post


Link to post
  • 0

@archiboy6 Замени 

GameTextForPlayer(i,"~r~Осталось до рестарта %d сек", sec);
    GameTextForPlayer(playerid,"~r~Осталось до рестарта %d сек", sec, 2, 3000);
    timerid = SetTimerEx("sec", 5000, false, "ii", playerid, sec-1);

 

Edited by archiboy6

Share this post


Link to post
  • 0

@archiboy6, нельзя так использовать функцию GameTextForPlayer.

Форматирование в этой функции не предусмотрено.

Share this post


Link to post
  • 0

@odosenok Я думаю, что что-то нужно в секундный таймер кидать. Напишите свой вариант кода?)

Share this post


Link to post
  • 0

Покажи GameModeExitDelay

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • whccompany
      By whccompany
      Rostov Role Play | Rostov RP | CRMP Mobile Project объявляет набор людей в свою команду: Нам требуются:
       
      1. Маппера:
      Сдельная оплата труда от 250 до 3000 рублей/ за 1 работу
       
      2. Специалист по Text Draw:
      Сдельная оплата труда от 400 до 3500 рублей/ за одну работу
       
      3. Pawn разработчик:
      Заработная плата от 10 000 рублей/месяц
       
      4. Программист для создания лаунчера и сайта UCP с автодонатом:
      Заработная плата от 10 000 рублей/месяц
       
      Контакты для связи:
       
      ВКонтакте
       
      Telegram
       
    • Talex
      By Talex
      Игровой сервер Life Game RolePlay
      Скачать файл Игровой сервер Life Game RolePlay
      Добавил Talex Добавлено 28.01.2024 Категория Моды Автор Неизвестно  
    • Talex
      By Talex
      Игровой сервер Life Game RolePlay
    • Владислав2
      By Владислав2
      Здравствуйте, при компиляции появляется ошибка,

      Ошибка:
      error 017: undefined symbol "REP_KUZIA_TD"

      Строки:
       
          REP_KUZIA_TD[0] = TextDrawCreate(7.499990, 314.444396, "REP: 1");
          TextDrawLetterSize(REP_KUZIA_TD[0], 0.400000, 1.600000);
          TextDrawAlignment(REP_KUZIA_TD[0], 1);
          TextDrawColor(REP_KUZIA_TD[0], -1);
          TextDrawSetShadow(REP_KUZIA_TD[0], 0);
          TextDrawSetOutline(REP_KUZIA_TD[0], 1);
          TextDrawBackgroundColor(REP_KUZIA_TD[0], 255);
          TextDrawFont(REP_KUZIA_TD[0], 1);
          TextDrawSetProportional(REP_KUZIA_TD[0], 1);
          TextDrawSetShadow(REP_KUZIA_TD[0], 0);
          REP_KUZIA_TD[1] = TextDrawCreate(6.249957, 330.518493, "ASK: 0");
          TextDrawLetterSize(REP_KUZIA_TD[1], 0.400000, 1.600000);
          TextDrawAlignment(REP_KUZIA_TD[1], 1);
          TextDrawColor(REP_KUZIA_TD[1], -1);
          TextDrawSetShadow(REP_KUZIA_TD[1], 0);
          TextDrawSetOutline(REP_KUZIA_TD[1], 1);
          TextDrawBackgroundColor(REP_KUZIA_TD[1], 255);
          TextDrawFont(REP_KUZIA_TD[1], 1);
          TextDrawSetProportional(REP_KUZIA_TD[1], 1);
          TextDrawSetShadow(REP_KUZIA_TD[1], 0);
          return 1;
      }

      Буду рад если кто-то поможет