Сделать таймер который будет сохраняться после смены карты

Тема в разделе "Программирование / Скриптинг", создана пользователем pokypka20, 8 авг 2014.

  1. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    Подскажите как можно сделать таймер который будет запоминать время игры игрока на сервере даже после смены карты и по исчетению времени выполнять команду.

    Идея такова нужно сделать бонус игроку который играет 1 час на сервере, простые таймеры сбиваются после смены карты. И можно ли сделать чтобы если больше 10 минут (в течении этого часа) игрока сидит в спекторах таймер анулируется?
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    pokypka20, обычный таймер просто не ставишь флага TIMER_FLAG_NO_MAPCHANGE
     
  3. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    Можно ли сделать чтобы при выходе игрока в спектора таймер сбивался? чтоб не просто игрок там сидел и наматывал время либо добавить какуюто проверку на активность. Только чтобы не сбивалось если он зашол в спектора после смены карты (случайно)
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    Отслеживай событие смены команды и убивай таймер такого игрока.
    Добавить переменную-блокиратор.
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    pokypka20, чтобы убивать таймер его нужно записывать в handle

    PHP:
    new Handle:g_hTimer[MAXPLAYERS+1] = {INVALID_HANDLE, ...};

    // Создание таймера
    g_hTimer[iClient] = CreateTimer(60.0Timer_FuncGetClientUserId(iClient));

    // Игрок вышел
    public OnClientDisconnect(iClient)
    {
        if(
    g_hTimer[iClient] != INVALID_HANDLE)
        {
            
    KillTimer(g_hTimer[iClient]);
            
    g_hTimer[iClient] = INVALID_HANDLE;
        }
    }
     
    pokypka20 нравится это.
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    AlmazON, с какой радости будут ошибки в логах?
     
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.566
    Симпатии:
    1.988
    R1KO, таймер сработал - всё нормально. Потом клиент выходит. А его встречает код:
    В итоге, у тебя убивается уже сработавший таймер. Уже плоховато.
    Ошибки зависят от того, где таймер применяется (его исток, повторные сработки/создание).
     
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.000
    Симпатии:
    2.992
    AlmazON, если ты про
    То да, но я не стал этого писать т.к. вопрос был не в этом, да и это и так должно быть ясно.