Timer (Lua)

Материал из UoPilot
Версия от 21:44, 27 августа 2019; Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == Timer на луа - бесконечный цикл, выполняющий код через определённый промежуто...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Timer на луа - бесконечный цикл, выполняющий код через определённый промежуток времени. Если нужно закрывать всплывающие окна, время от времени, проверять потребности персонажа и так далее - то таймер не заменим. Можно в одной из вкладок пилота, написать такой код:

Синтаксис

Привязка к окну: Нет. <br>Работа со свернутым окном: Да.

--lua
local timer = 0
while timer < 1 do
  wait (5000) --ждём 5 секунд
  --тут код который нужно выполнять каждые пять секунд
end

это и есть таймер.

Примеры

// Пример 1, поиск картинки и клик по ней
--lua
local timer = 0
while timer < 1 do
  wait (5000) --ждём 5 секунд
  --всплывающие окна, погода, землетрясение и т.д.
  local startX, startY, endX, endY = 762, 170, 795, 200
  local patch_exit_msg = <nowiki>'C:.*exit_msg.bmp'</nowiki>
  local arr, a = findimage (startX, startY, endX, endY, {patch_exit_msg}, 2, 50, 20, 20)
  -- поиск картинки (второе значение менять надо и четвёртое)
  hint (a) --справа внизу отображается число
  if a > 0 then
   --если картинок 2 и более то, по массиву ищем
   --if arr > 0 then
     left (arr[1][1], arr[1][2])
  end
end--while

Если нужно несколько таймеров, то нужно использовать пользовательские функции.

// Пример 2, несколько таймеров
--первая функция
function timer_baff()
   wait (1000)
   msg ("die mfck!!!") --вызов функции, выводит сообщение
end
--вторая функция
function timer_click()
   msg ("clik!") --вызов функции, выводит сообщение
end
--таймер, внутри него названия функций
local timer = 0
while timer < 1 do
wait (2000)
  timer_click()
  timer_baff()
end

Смотрите также

if