Цитата(cirus @ 16.4.2021, 15:53)
Код
--lua
log 'clear' log 'mode compact'
while true do
if color(338, 493) == 5384704 then -- если цвет совпадает
local t = os.clock() + 6 -- ожидать цвет 6 секунд
while os.clock() < t and color(338, 493) == 5384704 do -- пока не вышло время и цвет совпадает
log('Цвет совпадает ' .. tostring(t - os.clock()) )
wait (100)
end
if os.clock() >= t then break end -- если прошло заданное количество времени, то выход из цикла
end
wait (10)
end
Тут вопрос вот в чём. У меня уже внутренний цикл прописан во внешнем. Т.е. дальше при разрыве этого цикла идут некоторые действия, поэтому внутри заново писать их это усложнение кода. Но проходя каждый раз через
Код
if color(338, 493) == 5384704 then -- если цвет совпадает
local t = os.clock() + 6
скрипт заново присваевает t + 6 секунд, и он никогда не заканчивается, поэтому возникла необходимость использования дополнительных переменных, а так
os.clock() < t
Что-то я не подумал что от времени можно переменную отнять.
Но при проверке этих переменных какая-то сложность возникает: Если "Переменная = 1" это вызывает ошибку.
Т.е., теперь, если я пишу
Код
while 1==1 do
if color (1, 1) == 0 then
timeout = os.clock()
Timeleft = 0
elseif (color (1, 1) ~= 0 and Timeleft = 0) then
timeout = os.clock() + 6
Timeleft = 1
else
end
end
if os.clock() > timeout then
break
else
end
end
То скрипт вызывает ошибку на строке
elseif (color (1, 1) ~= 0 and Timeleft = 0) then
Т.е. скрипту не нравится именно формат записи Timeleft = 0, хотя если я писал Timeleft ~= 0 или Timeleft == 0 это не имело никакого эффекта.
Локальные переменные в данном случае не использую, потому что насколько я помню они не в области видимости за пределами внутреннего цикла.