voce acha mesmo que a funçao os.sleep faz um loop ate o tempo acabar? acho que nao hein
e ja que voce usou a funçao os.clock creio que voce saiba oq ela retorna
vejamos tente fazer isso:
for i = 1, 400000000 do
end
print("oi")
addEvent(print, 5000, "aee")
vai printar oi, e aee praticamente ao mesmo tempo
concerta seu script ai plz
Edit:
Whatever, pra acabar com esse seu argumento tosco de falar que eu to usando lib externa:
local Events = {}
function Events:new()
return setmetatable({} ,{__index = self})
end
function Events:add(func, time, ...)
table.insert(self, {func, time, arg})
end
function Events:check()
local n = os.clock()
while #self > 0 do
for i,x in ipairs(self) do
if os.clock()-n > x[2]/1000 then
x[1](unpack(x[3]))
table.remove(self, i)
end
end
end
end
Com isso voce adiciona eventos e no final do script voce bota o check, claro se voce botar um loop grande antes do check nao vai funcionar de acordo, eh o maximo que pode chegar sem nenhuma lib.
local events = Events:new()
events:add(print, 5000, "Aee")
events:add(print, 1000, "Oii")
events:check()