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

 
Ответить в эту темуОткрыть новую тему
> Помогите разобраться findimage
ZaArazkin
сообщение 20.2.2019, 9:12
Сообщение #1


**

Neophyte
Сообщений: 10
Регистрация: 4.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.220



есть скрипт
Код

set #handle workwindow         // найти окно эмулятора
set workwindow #handle                    // сделать его рабочим

wait 2s
if 850, 405 7502588
    kleft 885, 356
else
    set $b findimage (592, 115  1238, 682  (E:\UOpilot\Гадалка\img\energy.bmp) %brr 2)
    if $b > 80
        kleft 1050 678  //начать
        wait 2000
        kleft 1046 355
        wait 1500
        kleft 892 355
        wait 1500
        kleft 722 359
        wait 1500
       kleft 673 670 //сдаться
        wait 100
        kleft 635 491 //ОК
    else $b < 79
        kleft 648, 673  //сдаться
        kleft 641, 491   //ок
    end_if
end_if

по которому ищем картинку. но она то находиться то нет.
Привязку к окну сделал (CTRL+a)


Прикрепленные файлы
Прикрепленный файл  где_ищем.bmp ( 2,56 мегабайт ) Кол-во скачиваний: 156
Прикрепленный файл  energy.bmp ( 60,38 килобайт ) Кол-во скачиваний: 126
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 20.2.2019, 11:11
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27707
Пользователь №: 11.279



Цитата
Привязку к окну сделал (CTRL+a)

Привязываете каждый раз?
Цитата
set #handle workwindow // найти окно эмулятора
set workwindow #handle // сделать его рабочим

Абсолютно бессмысленный кусок кода. Если его выкинуть - ничего не изменится.
Вы не ищите окно эмулятора, а записываете в переменную текущее рабочее окно в переменную, потом из этой переменной обратно же и записываете.
a = b
b = a
Это то, что вы написали. b в итоге останется тем же самым.
Цитата
по которому ищем картинку. но она то находиться то нет.

Либо с окнами косячите, либо изображение "плавает". Можно попробовать указать deviation 2-5. Так же у вас очень большгое искомое изображение - на результат не повлияет, но ищется оно очень долго. Можно обрезать до 5*5-10*10.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ZaArazkin
сообщение 20.2.2019, 11:37
Сообщение #3


**

Neophyte
Сообщений: 10
Регистрация: 4.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.220



Цитата(DarkMaster @ 20.2.2019, 11:11) *

Привязываете каждый раз?

Абсолютно бессмысленный кусок кода. Если его выкинуть - ничего не изменится.
Вы не ищите окно эмулятора, а записываете в переменную текущее рабочее окно в переменную, потом из этой переменной обратно же и записываете.
a = b
b = a
Это то, что вы написали. b в итоге останется тем же самым.
Либо с окнами косячите, либо изображение "плавает". Можно попробовать указать deviation 2-5. Так же у вас очень большгое искомое изображение - на результат не повлияет, но ищется оно очень долго. Можно обрезать до 5*5-10*10.


с привязкой точно все нормально. проверял через F. он показывает какую картинку делает скриншот
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.2.2019, 11:47
Сообщение #4


**********

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



Картинку сделайте меньшего размера и добавьте параметр deviation.
Код
set $b findimage (592, 115  1238, 682  (E:\UOpilot\Гадалка\img\energy.bmp) %brr 2 80 1 5)  // последний параметр погрешность в цвете.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.2.2019, 12:51
Сообщение #5


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Если результат поиска (переменная $b) будет 80, ничего делаться не будет, сдвиньте один из параметров в ту или иную сторону.

Сорри, извиняюсь, ещё else не доглядел. Просто он там лишний. В общем исправить надо. Возможно результат поиска, что маловероятно конечно, равен 80.

Цитата
$b < 79
Вот это убрать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ZaArazkin
сообщение 20.2.2019, 13:37
Сообщение #6


**

Neophyte
Сообщений: 10
Регистрация: 4.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.220



Цитата(sutra @ 20.2.2019, 12:51) *

Если результат поиска (переменная $b) будет 80, ничего делаться не будет, сдвиньте один из параметров в ту или иную сторону.

Сорри, извиняюсь, ещё else не доглядел. Просто он там лишний. В общем исправить надо. Возможно результат поиска, что маловероятно конечно, равен 80.

Вот это убрать.



эммм где там лишнее else?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.2.2019, 15:12
Сообщение #7


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
else $b < 79
Вот здесь, надо убрать $b < 79, так правильно. Ну или удалять else и делать ещё один ИФ: if $b < 81 , соответственно добавлять ещё один end_if

И вообще я не понял, а почему у Вас строка $b ?? Я конечно не проверял, может и так работает?? Но надо ставить #b - это число, вот его и надо сравнивать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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