Gormit |
Отправлено: 23 Ноября, 2021 - 23:29:07
|
Наблюдатель
Покинул форум
Сообщений всего: 44
Дата рег-ции: Нояб. 2020
Репутация: 0
|
Повтор при поиске изображения не работает, а при поиске скучности цветов, повтор осуществляется со смещением.
Описание проблемы:
В визуальном редакторе 3 блока - Старт, поиск изображения и поиск скучности цветов. Привязка к контролу приложения с активным указателем.
В поиске изображения я даже по коду не вижу количество повторов поиска и время ожидания исчезновения изображения.
В поиске по скучности цветов - есть, но исполняет повтор каждого нажатия со смещением примерно на 20 пикселей по оси Y. Если поставить 5 повторов - последнее нажатие смещается по оси Y до упора Экрана, т.е выходит за рамки контрола до самой нижней точки экрана.
CODE:
function FindImage(int ew, int #Scr, win #w, int v_x, int v_y, int #image, int kol, int Sort, int sortx, int sorty, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int cf, int r, int proc, int g1, int ignor, string mas_ignor, int p2, string m, int smx, int smy, int p3, int per_m, int per_x, int per_y)
function FindHeapcolor(int ew, int #Scr, win #w, int v_x, int v_y, int Obl_n_x, int Obl_n_y, int Obl_o_x, int Obl_o_y, int #col, int #kol, int k_col, int kol_col, int k, int Sort, int sortx, int sorty, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int r, int ignor, string mas_ignor, int p2, string m, int smx, int smy, int p3, int per_m, int per_x, int per_y, int p4, int povtor)
Полный код нет возможности отправить - размер превышает 6 кб.(Отредактировано автором: 23 Ноября, 2021 - 23:38:31) |
|
|
Kibor |
Отправлено: 24 Ноября, 2021 - 06:57:47
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Gormit пишет: Разрешено, и использую шаблоны с сервера.
Шаблон с сервера генерирует такой код:
FindImage(0, #Screen[0][0], #W_Kib, W_Kib.leftclient, W_Kib.topclient, #Image0[0][0], 1, 0, 0, 0, #K_Kib, #X_Kib[0], #Y_Kib[0], 0, 0, eX_Kib, eY_Kib, 0, 0, -1, 0, 100, 0, 0, "0, 0, 0, 0", 0, "Бездействие", 0, 0, 0, 0, 5, 5, 0, 0);
function FindImage(int ew, int #Scr, win #w, int v_x, int v_y, int #image, int kol, int Sort, int sortx, int sorty, int #mK, int #mX, int #mY, int ex1, int ey1, int ex2, int ey2, int p1, int t, int cf, int r, int proc, int g1, int ignor, string mas_ignor, int p2, string m, int smx, int smy, int p3, int per_m, int per_x, int per_y, int p4, int povtor)
(Добавление)
Ага..
Вы используете галку Ресурсы..
Исправлю..
(Добавление)
Исправил.
Шаблон должен обновиться. |
|
|
Gormit |
Отправлено: 24 Ноября, 2021 - 16:13:37
|
Наблюдатель
Покинул форум
Сообщений всего: 44
Дата рег-ции: Нояб. 2020
Репутация: 0
|
Повтор поиска картинки появился, но так же появился глюк со смещением как был и остался в поиске по скучности цветов.
Проблема вот тут:
CODE:
FindImage ( 1 , # Screen'-842150451' [ 0 ] [ 0 ] , # W_Kib , W_Kib.leftclient'10' , W_Kib.topclient'37' , # Image0'1709332' [ 0 ] [ 0 ] , 1 , 0 , 0 , 0 , # K_Kib'-842150451' , # X_Kib'-842150451' [ 0 ] , # Y_Kib'-842150451' [ 0 ] , 0 , 0 , eX_Kib'1459' , eY_Kib'821' , 0 , 3000 , - 1 , 0 , 90 , 0 , 0 , " 0 " + formatic ( 44 ) + " 0 " + formatic ( 44 ) + " 0 " + formatic ( 44 ) + " 0 " , 0 , " Левую клик " , 20 , 20 , 1000 , 0 , 5 , 5 , 1000 , 3 )
pause ( p1'0' )
int pvt = 0
if ( t'3000' == 0 )
looptime ( t'3000' )
if ( ew'1' == 0 )
if ( ew'1' == 1 )
mK = findimage ( SWIFT * g1'0' , kol'1' , # image'1709332' [ 0 ] [ 0 ] , cf'-1' , # mX'-842150451' [ 0 ] , # mY'-842150451' [ 0 ] , v_x'10' + ex1'0' , v_y'37' + ey1'0' , v_x'10' + ex2'1459' , v_y'37' + ey2'821' , r'0' , r'0' , r'0' , r'0' , r'0' , r'0' , proc'90' , 1 , - 1 )
if ( ew'1' == 2 )
if ( ew'1' == 3 || ew'1' == 4 )
if ( mK'1' > 0 )
if ( mK'1' < 1 )
if ( ew'1' == 3 || ew'1' == 4 )
for ( int n = 0 ; n'-842150451' < mK'1' ; n'-842150451' ++ )
mX [ n'0' ] = mX'677' [ n'0' ] + ex1'0'
mY [ n'0' ] = mY'352' [ n'0' ] + ey1'0'
if ( ignor'0' )
if ( Sort'0' )
pause ( p2'0' )
if ( ew'1' == 0 || ew'1' == 3 || ew'1' == 1 )
if ( ew'1' == 1 )
smx = v_x'10' + smx'20' // тут в переменную смещения оси х + W_Kib.leftclient
smy = v_y'37' + smy'20' // тут в переменную смещения оси y + W_Kib.topclient
if ( m'Левую клик' == " Левую клик " )
mouse ( LEFT , smx'30' + mX'677' [ 0 ] , smy'57' + mY'352' [ 0 ] )
if ( m'Левую клик' != " Бездействие " )
pause ( p3'1000' )
if ( per_m'0' )
if ( p4'1000' > 0 )
looptime ( p4'1000' )
if ( ew'1' == 0 )
if ( ew'1' == 1 )
if ( findimage ( SWIFT * g1'0' , 1 , # image'1709332' [ 0 ] [ 0 ] , cf'-1' , # tX'-842150451' , # tY'-842150451' , v_x'10' + ex1'0' , v_y'37' + ey1'0' , v_x'10' + ex2'1459' , v_y'37' + ey2'821' , r'0' , r'0' , r'0' , r'0' , r'0' , r'0' , proc'90' , 1 , - 1 ) == 0 )
if ( ew'1' == 2 )
if ( ew'1' == 3 || ew'1' == 4 )
sleep ( 5 )
if ( povtor'3' > 0 && pvt'0' < povtor'3' )
if ( ew'1' == 0 )
if ( ew'1' == 1 )
if ( findimage ( SWIFT * g1'0' , 1 , # image'1709332' [ 0 ] [ 0 ] , cf'-1' , # tX'677' , # tY'352' , v_x'10' + ex1'0' , v_y'37' + ey1'0' , v_x'10' + ex2'1459' , v_y'37' + ey2'821' , r'0' , r'0' , r'0' , r'0' , r'0' , r'0' , proc'90' , 1 , - 1 ) == 1 )
pvt'0' ++
if ( t'3000' == 0 )
looptime ( t'3000' )
if ( ew'1' == 0 )
if ( ew'1' == 1 )
mK = findimage ( SWIFT * g1'0' , kol'1' , # image'1709332' [ 0 ] [ 0 ] , cf'-1' , # mX'677' [ 0 ] , # mY'352' [ 0 ] , v_x'10' + ex1'0' , v_y'37' + ey1'0' , v_x'10' + ex2'1459' , v_y'37' + ey2'821' , r'0' , r'0' , r'0' , r'0' , r'0' , r'0' , proc'90' , 1 , - 1 )
if ( ew'1' == 2 )
if ( ew'1' == 3 || ew'1' == 4 )
if ( mK'1' > 0 )
if ( mK'1' < 1 )
if ( ew'1' == 3 || ew'1' == 4 )
for ( int n = 0 ; n'1' < mK'1' ; n'1' ++ )
mX [ n'0' ] = mX'677' [ n'0' ] + ex1'0'
mY [ n'0' ] = mY'352' [ n'0' ] + ey1'0'
if ( ignor'0' )
if ( Sort'0' )
pause ( p2'0' )
if ( ew'1' == 0 || ew'1' == 3 || ew'1' == 1 )
if ( ew'1' == 1 )
smx = v_x'10' + smx'30' // тут уже искаженные данные
smy = v_y'37' + smy'57' // тут уже искаженные данные
при повторном нажатии клик происходит со смещением х+10, у+37
(Добавление)
И еще вопрос немного не по этой теме: Надо ли менять в новом редакторе (как в старом), переменные координат в таймерах? На пример K_Kib_T0.
(Добавление)
Пока воткнул костыль, не знаю правильно ли.
int smx1=smx;
int smy1=smy;
if (ew==0 || ew==3 || ew==1)
{
if (ew==1){smx=v_x+smx; smy=v_y+smy;}
if (m=="Левую клик"{mouse(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю клик"{mouse(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую клик"{mouse(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левую нажать"{mousedown(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю нажать"{mousedown(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую нажать"{mousedown(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левую отпустить"{mouseup(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Среднюю отпустить"{mouseup(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правую отпустить"{mouseup(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Левая двойной клик"{mousedbl(LEFT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Средняя двойной клик"{mousedbl(MIDDLE, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Правая двойной клик"{mousedbl(RIGHT, smx+mX[0], smy+mY[0]); goto hy;}
if (m=="Переместить"{mousemove(smx+mX[0], smy+mY[0]); goto hy;}
}
if (ew==2 || ew==4)
{
if (m=="Левую клик"{sendmouse(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю клик"{sendmouse(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую клик"{sendmouse(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левую нажать"{sendmousedown(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю нажать"{sendmousedown(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую нажать"{sendmousedown(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левую отпустить"{sendmouseup(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Среднюю отпустить"{sendmouseup(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правую отпустить"{sendmouseup(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Левая двойной клик"{sendmousedbl(LEFT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Средняя двойной клик"{sendmousedbl(MIDDLE, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Правая двойной клик"{sendmousedbl(RIGHT, smx+mX[0], smy+mY[0], w); goto hy;}
if (m=="Переместить"sendmousemove(smx+mX[0], smy+mY[0], w);
}
hy: if (m!="Бездействие"
{
smx=smx1;
smy=smy1;(Отредактировано автором: 24 Ноября, 2021 - 16:17:11) |
|
|
|