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

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

 Страниц (6): « 1 2 3 4 [5] 6 »   

> Без описания
Junior
Отправлено: 28 Мая, 2018 - 22:43:17
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2018  
Репутация: 0




 Цитата:
Вот снял короткое видео на котором показано как использовать фильтр динамики для этого.
Осваивайте инструментарий Кибор. Все это делается за минуты.


Я попробовал, проблема осталась, т.к. основная задача, не найти кнопку, а определить её состояние: вкл/выкл и если вкл, то выключить её, при том что кнопка полупрозрачная и фон меняется.

Появилась другая идея.

CODE:
int getc1, getc2, gcol1, gcol2, fp1=0, dif1, ob1, obcol1[3];
int getc3, getc4, gcol3, gcol4, fp2=0, dif2, ob2, obcol2[3];
int time1, time2, time3, time4, rzb1=20, rzb2==20;
int x1=799, y1=607, x2=850, y2=607;

starting:
pause(100);
//ñìîòðèì êàêîé öâåò ôîíà
getc1=getcolor(x1,y1);//ñìîòðèì öâåò íà êíîïêå
ob1=getcolor(799,593);
obcol1[0]=rvalue(ob1);
obcol1[1]=gvalue(ob1);
obcol1[2]=bvalue(ob1);
if (obcol1[0]>70) {gcol1=bvalue(getc1);}
else {gcol1=gvalue(getc1);}
//ñìîòðèì êàêîé öâåò ôîíà
getc3=getcolor(x2,y2);
ob2=getcolor(850,593);
obcol2[0]=rvalue(ob2);
obcol2[2]=gvalue(ob2);
obcol2[1]=bvalue(ob2);
if (obcol2[0]>70) {gcol3=bvalue(getc3);}
else {gcol3=gvalue(getc3);}
time1=gettime();
time2=time1;
a: if (time2-time1<4000){time2=gettime();

getc2=getcolor(x1,y1);
if (obcol2[0]>70) {gcol2=bvalue(getc2);}
else {gcol2=gvalue(getc2);}
dif1=gcol2-gcol1;
if ((dif1>rzb1||dif1<-1*rzb1)&&dif1!=0)
{fp1=1;textout(6, 799, 728, format(dif1), 1);}
textout(1, x1, y1+1, format(fp1), 1);
textout(2, 799, 628, format(getc2), 1);
textout(3, 799, 688, format(gcol1), 1);
textout(5, 799, 708, format(gcol2), 1);
if (dif1>20) textout(50, 799, 788, format(dif1), 1);
if (dif1<20) textout(51, 799, 808, format(dif1), 1);


getc4=getcolor(x2,y2);
if (obcol2[0]>70) {gcol4=bvalue(getc4);}
else {gcol4=gvalue(getc4);}
dif2=gcol4-gcol3;
if ((dif2>rzb2||dif2<-1*rzb2)&&dif2!=0)
{fp2=1; textout(14, 850, 728, format(gcol4-gcol3), 1);}
textout(10, x2, y2+1, format(fp2), 1);
textout(11, 850, 628, format(getc4), 1);
textout(12, 850, 688, format(gcol3), 1);
textout(13, 850, 708, format(gcol4), 1);
pause(10);
goto a;
}

if (fp1==1)
{textout(7, 799, 550, "Migaet", 1); fp1=0;
//mousemove(x1, y1);
//pause(100); mouse(LEFT, x1, y1);pause(100); mousemove(x1, y1-80);
pause(100);}
else {textout(7, 799, 550, "Ne migaet", 1);}

if (fp2==1)
{textout(8, 850, 550, "Migaet", 1); fp2=0;
//mousemove(x2, y2);
//pause(100); mouse(LEFT, x2, y2);pause(100); mousemove(x2, y2-80);
pause(100);}
else {textout(8, 850, 550, "Ne migaet", 1);}
goto starting;

Свою задачу он выполняет, но есть момент, который меня просто вымораживает и я хочу его устранить.
Суть кода такая: запоминаем начальные состояния 2ух соседних кнопок(по 1му пикселу на кнопку), запускаем таймер и внутри него спамим и запоминаем гетколор для каждой кнопки(по очереди), затем получаем разницу полученного ранее и полученного внутри таймера, если разница превышает определённое значение, то кнопка мигает и выводим на дисплей "1", если разница = 0, то выводим "0". Как я уже сказал, механизм работает, но есть нюанс... почему то первая кнопка постоянно проседает, в том плане, что даже если она мигает у неё проскакивает периодически 0(в показаниях), при том, что разница не нулевая(чисто визуально, по бегающим цифрам Улыбка), а вот вторая кнопка работает идеально. даёт только "1", когда мигает и "0", когда выключена. Пробовал, менять положение камеры, чтобы цвет фона был другим, менял блоки кнопок местами, из второй кнопки(работает идеально) делал первую. Результат, один - в кнопку 1 проскакивает "0".

Помогите найти ошибку.
 
 Top
Kibor
Отправлено: 29 Мая, 2018 - 00:21:28
Post Id



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


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




Все такие задачи можно решать исключительно работая с изображением.
Только так можно найти оптимальное решение. И уверен оно не будет сложным.
 
 Top
Zireael
Отправлено: 29 Мая, 2018 - 01:44:17
Post Id



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


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




CODE:
int rzb2==20

Один знак = должен быть.
Что за игра?
 
 Top
Junior
Отправлено: 30 Мая, 2018 - 03:50:05
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2018  
Репутация: 0




 Zireael пишет:
CODE:
int rzb2==20

Один знак = должен быть.
Что за игра?


EVE онлайн


Использовал постоянно pause, пока не узнал, что ещё есть sleep. Чем они отличаются, в каких случаях нужно каждую из них использовать?
 
 Top
Dantes3000
Отправлено: 30 Мая, 2018 - 15:00:18
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




Junior , pause(1000) это то же самое, что sleep(500); sleep(500);
(Добавление)
потому что во время sleep(10000000), например, кибор несокрушимый Ctrl+Shift+Z
 
 Top
Kibor
Отправлено: 30 Мая, 2018 - 15:17:08
Post Id



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


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




Слип использовать до 500 мсек для точных замеров.
 
 Top
Zireael
Отправлено: 31 Мая, 2018 - 12:38:42
Post Id



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


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




 Цитата:
EVE онлайн

https://drive.google.com/open?id...9ABN575G0FBZZ2WV
В архиве видео, как сделать картинку и как определить мигает кнопка или нет.
Код, который использовался (Отобразить)

Тут не проверяется есть ли вообще картинка на экране. Если надо добавляйте поиск с меньшей разбежностью.
 
 Top
Kibor
Отправлено: 31 Мая, 2018 - 13:28:53
Post Id



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


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




 Zireael пишет:
В архиве видео, как сделать картинку

Это проще делается. Не надо выделять попиксельно. Надо выделить всю область и в меню правой кнопки выбрать (снять выделение с динамики). Останется только не динамичная область выделенной.
 
 Top
Junior
Отправлено: 31 Мая, 2018 - 18:49:56
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2018  
Репутация: 0




Это гениально Улыбка И код простой(небольшой), у меня же огромная портянка получилась Улыбка Завтра попробую, когда высплюсь.
 
 Top
Junior
Отправлено: 02 Июня, 2018 - 03:51:33
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2018  
Репутация: 0




Но не сработало Недовольство, огорчение Постоянно пишет вкл, если разбег выкрутить меньше 100, то постоянно пишет выкл, при 100% совпадении даже если разбег крутить от 0 до бесконечности, всё равно пишет вкл. как у тебя получилось ? Улыбка
 
 Top
Страниц (6): « 1 2 3 4 [5] 6 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by