Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Проблема с поиском нескольких изображений
DikiiLoSb
сообщение 15.12.2021, 23:31
Сообщение #1


*

Registred
Сообщений: 3
Регистрация: 15.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.153
Возраст: 25



Проблема такая - Есть цикл while , который ждет появления определенной картинки. Как только она появляется, скрипт определяет ее координаты и делает по ней клик - с этим все понятно вот рабочий пример :
Пример
while_not #w > 0 // цикл - ждем кнопку принять.
wait 100
set #w FindImage (1, 1 471, 473 (images\Prinyat.bmp) %crds 2)
continue
end_while
if #w > 0
left %crds[1 1] %crds[1 2]
for #w = 0
end_for
end_if


Тут идет поиск одной картинки и никаких проблем. Проблемы начинаются когда нужно найти ДВЕ картинки. Сначало цикл находит одну картинку и клацает по ней несколько раз, после этого на ее месте через рандомное кол-во раз появляется другая картинка, нужно заставить цикл определить вторую картинку и кликать уже по ней. Взять предъидущие найденные координаты и клацать по ним не пойдет, т.к картинка меняется и цикл опять пытается найти первую картинку. Я попытался заставить цикл искать сразу 2 картинки и при появлении любой из них определять координаты и клацать по найденой.
Поиск 2 картинок(не работает)
while_not #w > 0
wait 100
set $path "D:\Desctop\Pilots\images" // путь к картинкам
set %image [1] nogaigrok.bmp // имя изображения
set %image [2] sel.bmp
for #i 0 2 1
set #w findimage (1, 1 471, 473 ($path%image[#i].bmp) %arr 2)
log #w
continue
end_while
if #w > 0
left %arr[1 1] %arr[1 2]
for #w = 0
end_for
end_if



подскажите как заставить это работать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.12.2021, 23:46
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Код
while 1 = 1   // бесконечный цикл
    set #w FindImage (1, 1 471, 473 (images\Prinyat.bmp) %crds 2)  
    if  #w > 0   // если найдена первая картинка
        while 1 = 1   // бесконечный цикл
            left %crds[1 1] %crds[1 2]        // клик по первой картинке
            wait (1000)                       // пауза 1 сек.
            set #w FindImage (1, 1 471, 473 (images\nogaigrok.bmp) %crds2 2)  
            if  #w > 0    // если найдена вторая картинка
                left %crds2[1 1] %crds2[1 2]     // клик по второй картинке
                wait (1000)
                break  // выход из цикла
                // break 2 // или выход из первого цикла если нужно
            end_if
        end_while
    end_if
    wait 100
end_while
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DikiiLoSb
сообщение 16.12.2021, 0:35
Сообщение #3


*

Registred
Сообщений: 3
Регистрация: 15.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.153
Возраст: 25



Цитата(cirus @ 15.12.2021, 23:46) *

Код
while 1 = 1   // бесконечный цикл
    set #w FindImage (1, 1 471, 473 (images\Prinyat.bmp) %crds 2)  
    if  #w > 0   // если найдена первая картинка
        while 1 = 1   // бесконечный цикл
            left %crds[1 1] %crds[1 2]        // клик по первой картинке
            wait (1000)                       // пауза 1 сек.
            set #w FindImage (1, 1 471, 473 (images\nogaigrok.bmp) %crds2 2)  
            if  #w > 0    // если найдена вторая картинка
                left %crds2[1 1] %crds2[1 2]     // клик по второй картинке
                wait (1000)
                break  // выход из цикла
                // break 2 // или выход из первого цикла если нужно
            end_if
        end_while
    end_if
    wait 100
end_while
end_script



Подскажите пожалуйста, как проще обнулить переменную?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.12.2021, 0:37
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Цитата
как проще обнулить переменную?

Код
set #w 789
log #w
set #w 0
log #w
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DikiiLoSb
сообщение 16.12.2021, 0:42
Сообщение #5


*

Registred
Сообщений: 3
Регистрация: 15.12.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.153
Возраст: 25



Цитата(cirus @ 16.12.2021, 0:37) *

Код
set #w 789
log #w
set #w 0
log #w
end_script



ахахха , а я дурак делал это через:
for #w = 0
end_for


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.4.2024, 5:18
Designed by Nickostyle