Для получения таймера нужно:
1) OnUpdate функция
2) локальная переменная
На самом деле пункт 2 должен быть пунктом 1 т.к выполняться все будет с верху в низ
Создаем локальную переменную:
Назвать переменную можно как угодно.
local isTime = 0;
Создаем OnUpdate function:
В качестве аргумента self и elapsed, на самом деле назвать можно как угодно , я напишу так.
self - это фрейма ,к которой мы цепляем OnUpdate Handler.
elapsed - ну что бы много муры не писать пусть будет просто elapsed. Ну а если комуто реал интересено , если память не отшибает , то это время между обновлениями фреймы и высчитывает исходя из фпс. Можно назвать как угодно , но я назвал так , так как именно из за этого аргумента и будет "ити" наш будущий таймер.
print('флудим') - это наше "тело" , если спамит в чат , значит все ок и можно писать дальнейшие условия (текст который флудит видим только мы).
PHP код:
local f = CreateFrame('frame')
f:SetScript('OnUpdate', function(self, elapsed) print('флудим') end)
И так теперь когда все есть , собираем это все в кучу и создаем условия для начала отсчета нашего таймера.
Что бы таймер затикал ,нужно наращивать isTime внутри нашей функции. как это сделать :
PHP код:
local isTime = 0;
local f = CreateFrame('frame');
f:SetScript('OnUpdate', function(self, elapsed)
isTime = isTime + elapsed;
print(isTime);
end)
Таким образом мы "наращиваем" нашу локальную переменную. Теперь в чат будет флудить не просто фразу , а время в секундах , начиная с 0 и до бесконечности с шагом 1/фпс.
Если хотим включать\выключать наш таймер , то необходимо при достижении нужного промежутка времени в секундах обнулять OnUpdate , nil .
PHP код:
local isTime = 0;
local f = CreateFrame('frame', 'mytimer');
f:SetScript('OnUpdate', function(self, elapsed)
isTime = isTime + elapsed;
if isTime == 25 then
self:SetScript('OnUpdate', nil)
print(isTime);
isTime = 0;
end
end)
Теперь при прошествии 25 секунд после начала отсчета наш таймер остановится.
Как же его включать\выключать?
Та очень просто:
Что бы время пошло в чат ввести:
PHP код:
/run mytimer:Show()
И что бы время остановилось в чат
PHP код:
/run mytimer:Hide()