--// таблица для хранения функций и переменных
local tTimeCallback={[1]={},[2]={}}
--// формируем таблицу
--[[аргументы:
sName -имя функции, которую нужно вызвать по таймеру - пишется так: "имя_файла.имя_функции" - кавычки обязательны
sType - тип времени для таймера: 'y' -годы, 'm' - месяцы, 'd' - день, 'h'- часы, 'min' - минуты, 's'- секунды, 'ms' - миллисекунды
bGame -необязательный параметр - использовать реальное или игровое время.
ПО умолчанию скрипт использует реальное время и передавать в bGame ничего не требуется,
при указании данного параметра как true скрипт будет назначать таймеру игровое время.
Есть возможность передавать время как строку вида "02/01/2012 12:12:12" --
то есть именно в указанное здесь время таймер вызовет нужную функцию.
В этом случае передавать аргументы sType, bGame не требуется.
]]
function StartTime(sName, iTime, sType, bGame)
if type(iTime)=="number" then
tTimeCallback[1][sName] = AddTime(sType, iTime, bGame)
elseif type(iTime)=="string" then
tTimeCallback[1][sName] = iTime
end
tTimeCallback[2][sName] = function() if tTimeCallback[1][sName] and tTimeCallback[1][sName] ==GetStringFullTime() then
local module, file = ParseString(sName)
_G[module][file]() -- если true вызываем нужную нам функцию
tTimeCallback[1][sName] = nil
tTimeCallback[2][sName] = nil
end
end [[это безымянная функция проверяющая условие - параметры функции передаются в момент вызова StartTime(аргументы) из нужного участка кода - функция записывается в массив и постоянно вызывается ]]
end
-- а вот это вызывалось определенно число раз в секунду
function CallF()
GetStringFullTime()
for k, v in pairs(tTimeCallback[2]) do
v() -- а вот здесь мы перебираем наш массив таймеров и вызываем все функции из массива подряд
end
end