Автор: yohohox 6.11.2019, 13:09
Добрый день товарищи.
Подскажите пожалуйста в чем может быть проблема.
Нужно чтобы цикл проходил 3 раза, проверял нужный цвет и нажималась клавиша.
А тут в лог выводит "Цвет не найден" 3 раза, а клик на клавишу не происходит.
Код
local count = 0
while true do
count = count + 1
if color (964, 378, handle) == 65535 then
log ("Цвет найден")
else
log ("Цвет не найден")
send217 ("Down")
end
if count == 3 then
break
end
end
Автор: yohohox 7.11.2019, 14:12
пробовал и через repeat и for тоже не то, что не так?
всего лишь нужно что бы условие повторилось несколько раз после чего цикл прекратил работу.
Автор: Levo222 7.11.2019, 14:25
Цитата(yohohox @ 7.11.2019, 18:12)
пробовал и через repeat и for тоже не то, что не так?
всего лишь нужно что бы условие повторилось несколько раз после чего цикл прекратил работу.
паузу хотя бы 0 поставить, и некоторые send217 не воспринимают, нужно или sendex писать или Send()
Автор: yohohox 7.11.2019, 14:34
Цитата(Levo222 @ 7.11.2019, 14:25)
паузу хотя бы 0 поставить, и некоторые send217 не воспринимают, нужно или sendex писать или Send()
Дело в том что все работает прекрасно, только вот не выходит у меня ограничить кол-во повторов цикла.
Автор: Levo222 7.11.2019, 14:38
Цитата(yohohox @ 7.11.2019, 18:34)
Дело в том что все работает прекрасно, только вот не выходит у меня ограничить кол-во повторов цикла.
А чему равно true?
Код
if count == 3 then
return false
end
или почему не сделать while count < 3 do?
Автор: yohohox 7.11.2019, 14:58
Цитата(Levo222 @ 7.11.2019, 14:38)
А чему равно true?
или почему не сделать while count < 3 do?
true ни чему не равна, это чтоб бесконечный цикл был.
если делаю while count < 3 do. тогда нет проверки по цвету и кликов, только в лог 3 раза сообщения выводится "Click"
Видимо задачу нужно подробнее описать.
Есть такой прямоугольник, серая полоска перемещается туда = обратно по оси х.
нужно отслеживать когда серая полоса перекрывает желтую и делать клик. и так повторять N-ое кол-во раз.
что собственно безуспешно пытаюсь сделать. вроде бы задача должна быть не трудная)
Автор: Levo222 7.11.2019, 15:11
Цитата(yohohox @ 7.11.2019, 18:58)
нужно отслеживать когда серая полоса перекрывает желтую и делать клик
дак клик или "send217 ("Down")"?
Цитата(yohohox @ 7.11.2019, 18:58)
и так повторять N-ое кол-во раз.
тогда не while а for
тогда нужно отслеживать не желтую полосу а серую и ставить счетчик внутрь найденного
Код
if color (964, 378, handle) == "серый цвет" then -- серый цвет на месте желтой полосы или неравенство желтого ~= "желтый цвет"
log ("Цвет найден")
kleft (964, 378) -- мышью, или
send217(клавиша)
count = count + 1
else
log ("Цвет не найден")
end
Автор: yohohox 7.11.2019, 15:47
Цитата(Levo222 @ 7.11.2019, 15:11)
тогда нужно отслеживать не желтую полосу а серую и ставить счетчик внутрь найденного
Действительно, Вы правы. Спасибо Вам большое!
Теперь работает как надо