Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: внутри...
ivantu
Отправлено: 14 Августа, 2019 - 09:51:51
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Друзья по умолчанию, в визуальном редакторе есть функция поиска картинки, и там можно указать время для ожидания появления изображения на экране, пытался изучить код, чтоб повторить без ненужных настроек, но там такая каша....

Может кто то подсказать как сделать время ожидания появления картинки, т.е. пока идет время ищем, нашли не дожидаемся указанного времени продолжаем скрипт, либо ждем пока время не вышло, а затем так же продолжаем скрипт.
 
 Top
Kibor
Отправлено: 14 Августа, 2019 - 09:54:17
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8224
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




CODE:
looptime(5000)
{
if (findimage(1, .....)==1) break;
}
 
 Top
ivantu
Отправлено: 14 Августа, 2019 - 09:58:17
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




У Вас немного другая реализация, через

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


Оно не лучше ?

(Отредактировано автором: 14 Августа, 2019 - 09:58:32)

 
 Top
Kibor
Отправлено: 14 Августа, 2019 - 10:00:03
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8224
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Не лучше.
То шаблон и тогда не было looptime и там не только по времени можно
 
 Top
ivantu
Отправлено: 14 Августа, 2019 - 10:05:04
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Спасибо Владимир!
(Добавление)
Что то туплю..., ругается на отсутсвие переменной "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;
}
}
 
 Top
Kibor
Отправлено: 14 Августа, 2019 - 10:52:29
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8224
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Потому что она не объявлена.
И вообще параметры не совпадают в функции что передаете.(для просмотра ссылки Вам необходимо авторизоваться) почитайте про функцию.
 
 Top
Zireael
Отправлено: 14 Августа, 2019 - 11:12:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
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);
 
 Top
ivantu
Отправлено: 14 Августа, 2019 - 11:17:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Спасибо всем за помошь, разобрался, захожу чтоб отписаться об этом 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);
}
}

(Отредактировано автором: 14 Августа, 2019 - 11:27:42)

 
 Top
Zireael
Отправлено: 14 Августа, 2019 - 11:30:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017  
Репутация: 585




В looptime добавьте sleep, чтобы проц не грузило.
 Цитата:
messagebox("5 секунд прошло... " );

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

Указатель на окно тоже можно передавать. Кстати, поиска окна нет, а в findimage последним параметром используется указатель на окно.
 
 Top
ivantu
Отправлено: 14 Августа, 2019 - 11:40:09
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




 Zireael пишет:
Кстати, поиска окна нет


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

CODE:
function func1 () {

func2();
func3();

}

(Отредактировано автором: 14 Августа, 2019 - 11:45:33)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by