RU/Resource:Missiontimer
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.