RU/Resource:Missiontimer

From Multi Theft Auto: Wiki

Missiontimer - ресурс, используемый для создания простых таймеров, которые будут вести отсчет в прямом или обратном порядке внутри ваших ресурсов.

Обзор

Мод "deathmatch" - образец использования missiontimer. Он использует функцию "createMissionTimer" для создания таймера, по истечении которого срабатывает событие onMissionTimerElapsed:

    g_MissionTimer = exports.missiontimer:createMissionTimer (g_TimeLimit,true,"%m:%s",0.5,20,true,"default-bold",1,255,255,255)
    addEventHandler ( "onMissionTimerElapsed", g_MissionTimer, onTimeElapsed )
 

Затем используется функция onTimeElapsed, прикрепленная к обработчику в конце таймера.

Аргументы для createMissionTimer следующие:

createMissionTimer ( duration, countdown, format, x, y, bg, font, scale, r, g, b )
  • duration - Время в миллисекундах
  • countdown - Булевая переменная, отвечающая за направление отсчета таймера. Установка ее на true будет вести отсчет в обратном от duration направлении, false - наоборот (последнее пока не протестировано)
  • format - Строковая переменная, используемая для указания формата таймера. Вы можете выбирать, показывать ли минуты, секунды или их сотые доли через указание следующих 3 значений:
    •  %m - минуты
    •  %s - секунды
    •  %cs - сотые доли секунды

Это также позволяет добавлять и обычный текст над таймером, наряду с самим оставшимся временем (напр: "Осталось: %m:%s")

  • x,y - Поцизии на экране, используется "smart positioning" ("умное позиционирование"). Оно может быть относительным или абсолютным - мод deathmatch создает его на 0.5,20. Это значит, что положение по оси x - центр, положение по оси y - 20 пикселей от верхнего края. Если указать отрицательное значение, таймер будет рисоваться с противоположной стороны, т.е. -20 - 20 пикселей снизу, а не сверху. То же самое можно проделать и для позиции по оси x.
  • bg - Рисовать ли стандартный прямоугольник со скругленными концами позади таймера. Установление настройки на false его спрячет
  • font - Шрифт таймера. Лучше всего смотрится с default-bold
  • scale - Размер такста/фона.
  • r,g,b - RGB-цвет, отвечающий за цвет текста таймера (по умолчанию белый)


Есть также несколько экспортированных функций, которые могут вам понадобиться, а могут и не понадобиться:

setMissionTimerTime ( missionTimer, time )

Устанавливает отсчет таймера на указанное время (в миллисекундах)

getMissionTimerTime ( missionTimer )

Получает число, в данный момент показываемое на таймере (в миллисекундах)

setMissionTimerFrozen ( missionTimer, frozen )

Замораживает таймер (если true) или размораживает (если false)

isMissionTimerFrozen ( missionTimer )

Проверка, заморожен ли таймер

setMissionTimerHurryTime ( missionTimer, time )

Устанаваливает время, при котором счетчик сменит цвет на красный (в миллисекундах) (т.е.: чтобы показать, что времени осталось мало)

setMissionTimerFormat ( missionTimer, format )

Устанавливает формат текста таймера


Чтобы убрать missiontimer с экрана, воспользуйтесь функцией destroyElement.


Missiontimer работает начиная только с MTASA версии 1.0.