Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Поиск Изображения с ожиданием

Страниц (2): [1] 2 »
 

1. ivantu - 14 Августа, 2019 - 01:51:51 - перейти к сообщению
Друзья по умолчанию, в визуальном редакторе есть функция поиска картинки, и там можно указать время для ожидания появления изображения на экране, пытался изучить код, чтоб повторить без ненужных настроек, но там такая каша....

Может кто то подсказать как сделать время ожидания появления картинки, т.е. пока идет время ищем, нашли не дожидаемся указанного времени продолжаем скрипт, либо ждем пока время не вышло, а затем так же продолжаем скрипт.
2. Kibor - 14 Августа, 2019 - 01:54:17 - перейти к сообщению
CODE:
looptime(5000)
{
if (findimage(1, .....)==1) break;
}
3. ivantu - 14 Августа, 2019 - 01:58:17 - перейти к сообщению
У Вас немного другая реализация, через

CODE:
if (t!=0) timKIB=gettime();


Оно не лучше ?
4. Kibor - 14 Августа, 2019 - 02:00:03 - перейти к сообщению
Не лучше.
То шаблон и тогда не было looptime и там не только по времени можно
5. ivantu - 14 Августа, 2019 - 02:05:04 - перейти к сообщению
Спасибо Владимир!
(Добавление)
Что то туплю..., ругается на отсутсвие переменной "X"

CODE:


findimage_(1, #Image_19[0][0], -1, #x[0], #y[0], 0, 0, 993, 554, 5000, wind);


function findimage_ (int #Image, int fon, int #x, int #y, int xs, int ys, int xf, int yf, int t_wait) {

looptime(t_wait)
{
if findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, wind)>0);
messagebox("Нашли картинку выходим не дожидаясь");
break;
}
}
6. Kibor - 14 Августа, 2019 - 02:52:29 - перейти к сообщению
Потому что она не объявлена.
И вообще параметры не совпадают в функции что передаете.(для просмотра ссылки Вам необходимо авторизоваться) почитайте про функцию.
7. Zireael - 14 Августа, 2019 - 03:12:27 - перейти к сообщению
 Цитата:
findimage_(1
function findimage_ (int #Image

Первым параметром передаётся число, а принимается указатель на массив.
В функцию передаёся 11 параметров, а принимается 9.
 Цитата:
if findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, wind)>0);
messagebox("Нашли картинку выходим не дожидаясь" );
break;

Точка с запятой после if лишняя.
Отсутствуют фигурные скобки. Поэтому break сработает в любом случае.
Их можно не ставить если в условии только одно действие. В данном случае их 2, messagebox и break.
CODE:
if findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, wind)>0)
{
messagebox("Нашли картинку выходим не дожидаясь");
break;
}
sleep(10);
8. ivantu - 14 Августа, 2019 - 03:17:53 - перейти к сообщению
Спасибо всем за помошь, разобрался, захожу чтоб отписаться об этом Zireael уже все расписал, но гордость немного наполняет когда всетаки хватило мозгов самому разобраться )

вот рабочий код:

CODE:

win wind;
int x[512];int y[512];

loop(){
findimage_(#Image_20[0][0], -1, #x[0], #y[0], 0, 0, 993, 554, 5000);
messagebox("5 секунд прошло... ");
pause(500);
}

function findimage_ (int #Image, int fon, int #x, int #y, int xs, int ys, int xf, int yf, int time) {

looptime(time)
{
if (findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, wind)>0){
messagebox("Нашли картинку выходим не дожидаясь");
break;
}
textout(1, 10, 10, "Ждем картинку на экране "+ format(time), 0);
}
}

9. Zireael - 14 Августа, 2019 - 03:30:53 - перейти к сообщению
В looptime добавьте sleep, чтобы проц не грузило.
 Цитата:
messagebox("5 секунд прошло... " );

Это если картинка не найдётся. Иначе пройдёт меньше времени.
 Цитата:
win wind;

Указатель на окно тоже можно передавать. Кстати, поиска окна нет, а в findimage последним параметром используется указатель на окно.
10. ivantu - 14 Августа, 2019 - 03:40:09 - перейти к сообщению
 Zireael пишет:
Кстати, поиска окна нет


У меня оно указано забыл скопировать, спасибо большое за поправки.
(Добавление)
Еще последний вопросик, а сильно критично вызывать одну функцию из другой

CODE:
function func1 () {

func2();
func3();

}

Powered by ExBB FM 1.0 Final