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

4 страниц V < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> Findimage?, покажите, как это работает?
cirus
сообщение 25.3.2017, 18:14
Сообщение #41


**********

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



Код
if #a > 0
    log %image [#i] совпала
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 25.3.2017, 18:51
Сообщение #42


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(cirus @ 25.3.2017, 18:14) *

Код
if #a > 0
    log %image [#i] совпала
end_if



Спасибо, то что надо.
Еще можно ли найденной картинке переменную присвоить?

типа так, только не присваивается почему-то

if #i = 3
set $a 00
end_if
log $a
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.3.2017, 19:13
Сообщение #43


**********

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



Код
for #i 1 #size 1 // цикл для поиска картинок
    set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
    if  #a > 0
        log %image [#i] совпала
        if #i = 3        // если найдена 3-я картинка
            set $aa 00
        end_if
    end_if
end_for

log $aa
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 25.3.2017, 21:09
Сообщение #44


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



if %image [#i] = 0
set $a 00
end_if

вот так получилось нормально.

Еще вопросик:

set #startX 0
set #startY 0
set #endX 1920
set #endY 1080
set $path "C:\Program Files\UOPilot\images\" // путь к картинкам
set %image [1] картинка1 // имя изображения
set %image [2] картинка2 // имя второго изображения
set %image [3] картинка3 // третьего
set %image [4] карти // имена могут быть любыми

set #size size(%image) // всего картинок
hint Всего картинок #size

:metka
for #i 1 #size 1 // цикл для поиска картинок
set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
if #a > 0
истина
else
log Картинка не найдена a #i
end_if
end_for
wait 300 // ждать 3 секунды
goto metka

Этот цикл METKA выполняется бесконечно если картинка не найдена.
Если я впишу в else чтото то этот цикл только 1 картинку просканирует.
Как сделать чтобы цикл метка сканировал максимум 4 раза (4 картинки) и потом останавливался
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.3.2017, 21:28
Сообщение #45


**********

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



Код
if %image [#i] = 0
set $a 00
end_if

Зачем сравнивать имя картинки с 0?
Цитата
Этот цикл METKA выполняется бесконечно если картинка не найдена.

Он выполняется независимо от того что внутри, нашлась картинка, не нашлась или поиска нет вовсе. Метку вообще можно убрать.
Цитата
Если я впишу в else чтото то этот цикл только 1 картинку просканирует.

Смотря что написать.
Цитата
Как сделать чтобы цикл метка сканировал максимум 4 раза (4 картинки) и потом останавливался

Код
repeat 4     // повторить 4 раза
    for #i 1 #size 1 // цикл для поиска картинок
        set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
        if  #a > 0
            log истина
        else
            log Картинка не найдена a #i
        end_if
    end_for
    wait 300 // ждать 3 секунды
end_repeat
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 25.3.2017, 21:39
Сообщение #46


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Он выполняется независимо от того что внутри, нашлась картинка, не нашлась или поиска нет вовсе. Метку вообще можно убрать.

Во спасиб, а я его зацикливаю, чтоб он все картинки прогнал)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 0:04
Сообщение #47


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Код

wait 1125 + random (157)
// поиск нескольких картинок
// перед запуском скрипта не забываем привязать скрипт к рабочему окну (Ctrl+A)
// #a $a Валюта a
// #b $b Валюта b
// #c $c Валюта c

set #startXa 1162
set #startYa 396
set #endXa 1183
set #endYa 404

set #startXb 1116
set #startYb 396
set #endXb 1146
set #endYb 404

set #startXc 1081
set #startYc 393
set #endXc 1107
set #endYc 409

set $path "\img\" // путь к картинкам
set %image [1] 0 // имя изображения
set %image [2] 1 // имя изображения
set %image [3] 2 // имя изображения
set %image [4] 3 // имя изображения
set %image [5] 4 // имя изображения
set %image [6] 5 // имя изображения
set %image [7] 6 // имя изображения
set %image [8] 7 // имя изображения
set %image [9] 8 // имя изображения
set %image [10] 9 // имя изображения

//------------------------------------------------------------------------------
for #AA 1 #size 1 // цикл для поиска картинок
    set #a findimage (#startXa #startYa #endXa #endYa ($path%image[#AA].bmp) %arra 2 80)
    if  #a > 0
        log Картинка a %image [#AA] совпала
        goto peremenkia
    else
        log Картинка не найдена a  #AA
    end_if
end_for
wait 10
:peremenkia
if  %image [#AA] = 0
    set %image [#AA] 00
end_if
if  %image [#AA] = 1
    set %image [#AA] 01
end_if
if  %image [#AA] = 2
    set %image [#AA] 02
end_if
if  %image [#AA] = 3
    set %image [#AA] 03
end_if
if  %image [#AA] = 4
    set %image [#AA] 04
end_if
if  %image [#AA] = 5
    set %image [#AA] 05
end_if
if  %image [#AA] = 6
    set %image [#AA] 06
end_if
if  %image [#AA] = 7
    set %image [#AA] 07
end_if
if  %image [#AA] = 8
    set %image [#AA] 08
end_if
if  %image [#AA] = 9
    set %image [#AA] 09
end_if
wait 300
//------------------------------------------------------------------------------
for #BB 1 #size 1 // цикл для поиска картинок
    set #b findimage (#startXb #startYb #endXb #endYb ($path%image[#BB].bmp) %arrb 2 80)
    if  #b > 0
        log Картинка b %image [#BB] совпала
        goto peremenkib
    else
        log Картинка не найдена b  #BB
    end_if
end_for
wait 10
:peremenkib
if  %image [#BB] = 0
    set %image [#BB] 00
end_if
if  %image [#BB] = 1
    set %image [#BB] 01
end_if
if  %image [#BB] = 2
    set %image [#BB] 02
end_if
if  %image [#BB] = 3
    set %image [#BB] 03
end_if
if  %image [#BB] = 4
    set %image [#BB] 04
end_if
if  %image [#BB] = 5
    set %image [#BB] 05
end_if
if  %image [#BB] = 6
    set %image [#BB] 06
end_if
if  %image [#BB] = 7
    set %image [#BB] 07
end_if
if  %image [#BB] = 8
    set %image [#BB] 08
end_if
if  %image [#BB] = 9
    set %image [#BB] 09
end_if
wait 300
//------------------------------------------------------------------------------
:ccc
for #CC 1 #size 1 // цикл для поиска картинок
    set #c findimage (#startXc #startYc #endXc #endYc ($path%image[#CC].bmp) %arrc 2 80)
    if  #c > 0
        log Картинка c %image [#CC] совпала
        goto peremenkic
    else
        log Картинка не найдена c  #CC
    end_if
end_for
wait 10
:peremenkic
if  %image [#CC] = 0
    set %image [#CC] 00
end_if
if  %image [#CC] = 1
    set %image [#CC] 01
end_if
if  %image [#CC] = 2
    set %image [#CC] 02
end_if
if  %image [#CC] = 3
    set %image [#CC] 03
end_if
if  %image [#CC] = 4
    set %image [#CC] 04
end_if
if  %image [#CC] = 5
    set %image [#CC] 05
end_if
if  %image [#CC] = 6
    set %image [#CC] 06
end_if
if  %image [#CC] = 7
    set %image [#CC] 07
end_if
if  %image [#CC] = 8
    set %image [#CC] 08
end_if
if  %image [#CC] = 9
    set %image [#CC] 09
end_if

set clipboard %image [#AA]%image [#BB]%image [#CC]    //  Копируем в буфер 3 переменных ABC

if  %image [#CC] = not or %image [#BB] = not or %image [#AA] = not
    log Пропуск
end_if

get clipboard $d                  //  Получаем число из буфера в переменную  D
log Переменная %image [#AA] / %image [#BB] / %image [#CC] / $d

end_script


Помогите ошибку найти. Скрипт находит первую картинку а остальные нет.
Если эмулирую и делаю первые 4 картинки неверными, то находит только 5 картинку и снова дальше не находит 6,7,8, и 9

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


**********

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



Цитата
for #AA 1 #size 1 // цикл для поиска картинок

Перед этим добавить:
Код
set #size size(%image)

Или сразу использовать:
Код
for #AA 1 size(%image) 1


Можно сделать проще и короче.
Код
for #AA 1 size(%image) 1 // цикл для поиска картинок
    set #a findimage (#startXa #startYa #endXa #endYa ($path%image[#AA].bmp) %arra 2 80)
    if  #a > 0
        log Картинка a %image [#AA] совпала
        set %resultA [1] 0#i
        break
    else
        log Картинка не найдена a  #AA
    end_if
end_for
   // Также для остальных поисков.

set clipboard %resultA [1]%resultB [1]%resultC [1]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.3.2017, 0:48
Сообщение #49


**********

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



Зачем использовать буфер. Можно сразу переменной присвоить значения.
Код
set $d %image [#AA]%image [#BB]%image [#CC]
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 0:58
Сообщение #50


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Код
set #size size(%image) 

стояло в коде, я просто сюда кусками копировал и его не захватил)
и по прежнему не работает, после нахождения первой картинки, другие сканирует но не находит
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.3.2017, 1:04
Сообщение #51


**********

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



Цитата
set #startXa 1162
set #startYa 396
set #endXa 1183
set #endYa 404

Область поиска не слишком маленькая указана? 21*8 пикселей.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 1:11
Сообщение #52


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(cirus @ 26.3.2017, 1:04) *

Область поиска не слишком маленькая указана? 21*8 пикселей.

Картинки чуть меньшего размера

http://i.yapx.ru/HKQL.bmp

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


**********

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



Ну эта картинка больше чем область поиска.
Самое простое, проверить находятся ли вообще картинки по отдельности.
Код
set #a findimage (0 0 1920 1080 (картинка.bmp) %arra 2 80)
log #a
end_script

Также можно добавить параметр погрешность оттенка.
Код
set #a findimage (0 0 1920 1080 (картинка.bmp) %arra 2 80 -1 3)   // 3 -  это % отклонения в цвете
log #a
end_script

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 2:07
Сообщение #54


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Код
set #a findimage (1162 396 1183 404 (\img\0.bmp) %arra 2 80)
log #a
set #b findimage (1081 396 1110 404 (\img\0.bmp) %arra 2 80)
log #b
end_script


простой проверкой картинки находятся
100
100
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 26.3.2017, 2:18
Сообщение #55


**********

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



А в скрипте что выдаёт?
Код
set #a findimage (#startXa #startYa #endXa #endYa ($path%image[#AA].bmp) %arra 2 80)
log #a
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 2:20
Сообщение #56


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(cirus @ 26.3.2017, 2:18) *

А в скрипте что выдаёт?
Код
set #a findimage (#startXa #startYa #endXa #endYa ($path%image[#AA].bmp) %arra 2 80)
log #a


-4
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 2:34
Сообщение #57


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(dron4938 @ 26.3.2017, 2:20) *

-4


проблема решена- нельзя файлы картинок называть только числами

Код
set $path "\img\" // путь к картинкам
set %image [1] 0 // имя изображения
set %image [2] 1 // имя изображения
set %image [3] 2 // имя изображения
set %image [4] 3 // имя изображения
set %image [5] 4 // имя изображения
set %image [6] 5 // имя изображения
set %image [7] 6 // имя изображения
set %image [8] 7 // имя изображения
set %image [9] 8 // имя изображения
set %image [10] 9 // имя изображения


Код
set $path "\img\" // путь к картинкам
set %image [1] name0 // имя изображения
set %image [2] name1 // имя изображения
set %image [3] name2 // имя изображения
set %image [4] name3 // имя изображения
set %image [5] name4 // имя изображения
set %image [6] name5 // имя изображения
set %image [7] name6 // имя изображения
set %image [8] name7 // имя изображения
set %image [9] name8 // имя изображения
set %image [10] name9 // имя изображения


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


**********

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



Цитата
нельзя файлы картинок называть только числами

Можно. Никогда не было проблем.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 2:53
Сообщение #59


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(cirus @ 26.3.2017, 2:45) *

Можно. Никогда не было проблем.

Да правильно можно, но только не нулём)))
У меня 1 из файлов назывался нулём и из-за этого трабл
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 26.3.2017, 3:04
Сообщение #60


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(dron4938 @ 26.3.2017, 2:53) *

Да правильно можно, но только не нулём)))
У меня 1 из файлов назывался нулём и из-за этого трабл


Нет, сейчас перепроверил и вроде бы трабл в следующем:

set $path "\img\" // путь к картинкам
set %image [1] 10 // имя изображения
set %image [2] 20 // имя изображения
set %image [3] 30 // имя изображения
set %image [4] 40 // имя изображения
set %image [5] 50 // имя изображения
set %image [6] 60 // имя изображения
set %image [7] 70 // имя изображения
set %image [8] 80 // имя изображения
set %image [9] 90 // имя изображения
set %image [10] 0 // имя изображения
set %image [11] 0 // имя изображения
set %image [12] 0 // имя изображения

set #size size(%image) // всего картинок

т.к. 3 разных поиска то нужно сюда 3 раза 1 и тот же файл писать
Походу если картинка ноль найдена то она блочится, и второй поиск ее уже не найдет.
как то так

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

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

 

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