Помощь - Поиск - Пользователи - Календарь
Полная версия: Цикл While, пропуск действия
UoKit.com Форумы > Кликер > UO Pilot
yohohox
Добрый день товарищи.
Подскажите пожалуйста в чем может быть проблема.
Нужно чтобы цикл проходил 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
пробовал и через repeat и for тоже не то, что не так?
всего лишь нужно что бы условие повторилось несколько раз после чего цикл прекратил работу.
Levo222
Цитата(yohohox @ 7.11.2019, 18:12) *

пробовал и через repeat и for тоже не то, что не так?
всего лишь нужно что бы условие повторилось несколько раз после чего цикл прекратил работу.

паузу хотя бы 0 поставить, и некоторые send217 не воспринимают, нужно или sendex писать или Send()
yohohox
Цитата(Levo222 @ 7.11.2019, 14:25) *

паузу хотя бы 0 поставить, и некоторые send217 не воспринимают, нужно или sendex писать или Send()

Дело в том что все работает прекрасно, только вот не выходит у меня ограничить кол-во повторов цикла.
Levo222
Цитата(yohohox @ 7.11.2019, 18:34) *

Дело в том что все работает прекрасно, только вот не выходит у меня ограничить кол-во повторов цикла.

А чему равно true?

Код

if count == 3 then
           return false
        end

или почему не сделать while count < 3 do?
yohohox
Цитата(Levo222 @ 7.11.2019, 14:38) *

А чему равно true?

или почему не сделать while count < 3 do?

true ни чему не равна, это чтоб бесконечный цикл был.
если делаю while count < 3 do. тогда нет проверки по цвету и кликов, только в лог 3 раза сообщения выводится "Click"
Видимо задачу нужно подробнее описать.

Нажмите для просмотра прикрепленного файла
Есть такой прямоугольник, серая полоска перемещается туда = обратно по оси х.
нужно отслеживать когда серая полоса перекрывает желтую и делать клик. и так повторять N-ое кол-во раз.

что собственно безуспешно пытаюсь сделать. вроде бы задача должна быть не трудная)
Levo222
Цитата(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
Цитата(Levo222 @ 7.11.2019, 15:11) *
тогда нужно отслеживать не желтую полосу а серую и ставить счетчик внутрь найденного

Действительно, Вы правы. Спасибо Вам большое!
Теперь работает как надо
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.