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

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

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

> Описание: неправильная работа
Kutuz_off
Отправлено: 21 Октября, 2020 - 10:23:09
Post Id



Пользователь
Наблюдатель


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




Ошибка чудная.

readtext то ищет то не ищет, и зависит его успех от других верно-написанных строчек кода.

Так, например, используя эту функцию, если закомментировать вывод rectangle, то вторая функция readtext заработает нормально, а первая все еще будет глючить находя всего 1 символ в довольно сложной области.

Я не знаю с чего начинать описывать проблему! readtext то работает - то не работает, но прямой зависимости нет! Могу только сказать что есть зависимость от других строчек кода - но код большой, и отследить проблему сложно. Сейчас пробую вынести все самое важное для работы readtext в отдельный лист, что бы попробовать отследить проблему. Может кто-то сталкивался с подобным? readtext находит один символ величиной с область поиска и все, что-то меняю в кожде независимое от readtext - вдруг начинает работать верно. ::blink.gif::

////////////////////////////DISPLAY///////////////////////////
// // // // // // // // // // // // // // // // ПЕРЕМЕННЫЕ
// // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // ////////////////////////////////////////////////////////

//битность и разрешение экрана X/Y
int col_display, x_display, y_display;

//Область экрана
int s_disp_standart=1219; double s_d, d_disp; //коэфциент отклонениния от заданного разрешения

//Область игры
int S_X0=0, S_Y0=0,
S_X1=1920, S_Y1=1080;


//определение области игры
int AoP_X0[998], AoP_Y0[998], AoP_X1[998], AoP_Y1[998], LAoP_X0=0, LAoP_Y0=0, LAoP_X1=0, LAoP_Y1=0;
int LS_X0, LS_Y0, LS_X1, LS_Y1;

int Smbl_X0[1024], Smbl_Y0[1024], Smbl_w1[1024], Smbl_h1[1024];


function AreaOfPlay2()
{
int i_AoP, AoP_sum;

if (er2>1) log(ind+".AreaOfPlay2 ..strt");
getdisplay(col_display, x_display, y_display);
log("resolution Display x/y= "+ format(x_display) +"/" + format(y_display));

if (er4>1) rectangle(999, 1, 1, x_display-2, y_display-2, 0, 2, 772211, -1, 0, 0);



log("wait.. ");
AoP_sum=FHC_LocalObjects(80, 1, 777888, 5567888, 2, 2, x_display-1, y_display-1, #AoP_X0[0], #AoP_Y0[0], #LAoP_X0, #LAoP_Y0, #LAoP_X1, #LAoP_Y1);
log("topframe_sum= "+ format(AoP_sum) );


// sleep(5555);


if (AoP_sum>0){
//loadsymbolbase (pathfolder()+"aop_frm_ext.sib");
S_X0=AoP_X0[AoP_sum-1]-AoP_X0[AoP_sum-1]/6;
S_Y0=AoP_Y0[0]-100; if (S_Y0<10) S_Y0=10;
S_X1=AoP_X0[AoP_sum-1]+AoP_X0[AoP_sum-1]/6; if (S_X1>x_display-1) S_X1=x_display-1;
S_Y1=AoP_Y0[0]+35;
int FS_sum =FS_LocalSymbols(1, 777888, 5567888, S_X0, S_Y0, S_X1, S_Y1, #Smbl_X0[0], #Smbl_Y0[0], #Smbl_w1[0], #Smbl_h1[0], #LS_X0, #LS_Y0, #LS_X1, #LS_Y1); //#AoP_smbl_width[0], #AoP_smbl_height[0], #correct[0]..

int FSc_Xmax=0;
for (i_AoP=0; i_AoP<FS_sum; i_AoP++){
if (symbolcorrect(i_AoP)>=0.37){
if (Smbl_X0[i_AoP]>FSc_Xmax) FSc_Xmax=i_AoP;
} //if
}
int smbl_ext_X0=Smbl_X0[FSc_Xmax], smbl_ext_Y0=Smbl_Y0[FSc_Xmax]-Smbl_h1[FSc_Xmax];


S_X0=AoP_X0[AoP_sum-1];
S_Y0=AoP_Y0[0]-100; if (S_Y0<10) S_Y0=10;
S_X1=AoP_X0[AoP_sum-1]+AoP_X0[AoP_sum-1]/6; if (S_X1>x_display-1) S_X1=x_display-1;
S_Y1=AoP_Y0[0]+35;
FS_sum =FS_LocalSymbols(1, 777888, 5567888, S_X0, S_Y0, S_X1, S_Y1, #Smbl_X0[0], #Smbl_Y0[0], #Smbl_w1[0], #Smbl_h1[0], #LS_X0, #LS_Y0, #LS_X1, #LS_Y1); //#AoP_smbl_width[0], #AoP_smbl_height[0], #correct[0]..

FSc_Xmax=0;
for (i_AoP=0; i_AoP<FS_sum; i_AoP++){
if (symbolcorrect(i_AoP)>=0.37){ //ïðîâåðêà êîððåêòíîñòè
if (Smbl_X0[i_AoP]>FSc_Xmax) FSc_Xmax=i_AoP;
} //if
}

int smbl_frm_X0=Smbl_X0[FSc_Xmax], smbl_frm_Y0=Smbl_Y0[FSc_Xmax]-Smbl_h1[FSc_Xmax];

}

}





function FS_LocalSymbols(int _i_SL, int _col_Sfrm1, int _Lcol_Sfrm1, int _FSL_X0, int _FSL_Y0, int _FSL_X1, int _FSL_Y1, int#_Smbl_X0, int#_Smbl_Y0, int#_Smbl_w1, int#_Smbl_h1, int#_LS_X0, int#_LS_Y0, int#_LS_X1, int#_LS_Y1)
{
int i_1SL, i_2SL, SL_time0, SL_time9;
//symbol_sum=readtext (RU| MARK, #Textt, 12, 1, -1, -1, -1, -1, -1, 0, -1, _FSL_X0, _FSL_Y0, _FSL_X1, _FSL_Y1, -1);
//messagebox (Textt);
//SL_time9=gettime(); //подсчет

//if ( er9>0) {log(ind+".find_LocalSymbols ..strt");}
//if ( er9>1) { rectangle(998, _FSL_X0, _FSL_Y0, _FSL_X1, _FSL_Y1, 0, 1, col_preli, -1, 0, 0);}

//for (i_1SL=0; i_1SL<_i_SL; i_1SL++){ //циклы, до удачного поиска
SL_time0=gettime(); //отсчет
symbol_sum=readtext (RU| MARK, #Textt, 12, 1, -1, -1, -1, -1, -1, 0, -1, _FSL_X0, _FSL_Y0, _FSL_X1, _FSL_Y1, -1);
SL_time9=gettime(); //подсчет
if ( er9>1) log("symbol_SUM= "+format(symbol_sum) +" || "+format(SL_time9-SL_time0) +"ms" );
log("Textt= " +Textt);
if (symbol_sum>997 && symbol_sum<0) symbol_sum=997;
for (i_2SL=0; i_2SL<symbol_sum; i_2SL++){
if (symbolcorrect(i_2SL)>=0.37){ //проверка корректности
correct_symbol[i_2SL]=symbolcorrect(i_2SL);
_Smbl_X0[i_2SL]=symbolxpos(i_2SL);
_Smbl_Y0[i_2SL]=symbolypos(i_2SL); //(i_2SL) - Возвращает позицию символа по X от начала зоны поиска. Левый- нижний угол
_Smbl_w1[i_2SL]=symbolwidth(i_2SL); // - Возвращает ширину символа
_Smbl_h1[i_2SL]=symbolheight(i_2SL); // - Возвращает высоту символа

if (er9>2){
log("symbol correct"+format(i_2SL) +"= "+format(correct_symbol[i_2SL]) );
log("symbol X0_"+format(i_2SL) +"= "+format(_Smbl_X0[i_2SL]) );
log("symbol Y0_"+format(i_2SL) +"= "+format(_Smbl_Y0[i_2SL]) );
log("symbol w1_"+format(i_2SL) +"= "+format(_Smbl_w1[i_2SL]) );
log("symbol h1_"+format(i_2SL) +"= "+format(_Smbl_h1[i_2SL]) );
rectangle(997-i_2SL, _FSL_X0 +_Smbl_X0[i_2SL], _FSL_Y0 +_Smbl_Y0[i_2SL]-_Smbl_h1[i_2SL], _FSL_X0+_Smbl_X0[i_2SL]+_Smbl_w1[i_2SL], _FSL_Y0+_Smbl_Y0[i_2SL], 0, 1, _col_Sfrm1, -1, 0, 0);
}

} //if
}

messagebox (Textt);//тест



//}//end.. for i_1SL


//m_ext_gw: ;

if (er9>1) {sleep(222*er9_slp); disable_item("rectangle", 998);} // выкл обл объктов

if (er9>2 && FHC_sum>0){
for (i_2SL=0; i_2SL<FHC_sum; i_2SL++) { // выкл найд объектов
disable_item("rectangle", 997-i_2SL);
} }


if (er9>0) log(ind+"!end");
return(FHC_sum);
}
(Добавление)
Может кто-то поможет с целым исходником за профит?
(Добавление)
короче закоментировал rectangle, вызываемый из draw.dll от Zirael, и сделал повторный запуск 1 поиска. Теперь readtext первый раз отрабатывает в холостую, неправильно, а второй и третий, ищет что нужно...

(Отредактировано автором: 21 Октября, 2020 - 10:43:09)

 
 Top
Kutuz_off
Отправлено: 21 Октября, 2020 - 16:44:37
Post Id



Пользователь
Наблюдатель


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




Разобрался.

Если используется draw.dll, нужно следить что бы невидимое окно для отрисовок не перекрывало работу функции readtext.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by