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

Страниц (26): В начало « ... 10 11 12 13 [14] 15 16 17 18 ... » В конец
 

131. 10970 - 08 Октября, 2020 - 08:05:41 - перейти к сообщению
ясно. Я вас понимаю.
Не рабочий скрипт на донорах, успешно работает на мамке. Не рабочий скрипт НЕ находит картинок в темпе,а значит работает с картинками из папки откуда их собирали. Переносим папку с картинками на донора, и скрипт работает. Кстати уже 3й час как работает с такой модернизацией. Еслиб были в скрипте ошибки записи или указания пути сохранения картинок, Он бы не работал на мамке. То что скрипт распаковывает ВСЕ нужные файлы в темп я вам показал. Почему в дальнейшем скрипт НЕ видит распакованных картинок, Но видит их в папке якобы откуда они должны упаковываться, это конечно же моя проблема. Спасибо.
По моему бред какойто. Ясно же что в киборе чтото не так. Я не ругаю програму, она абалденно замечательная. Но это же факт? Скрипт написаный и скомпилированый 4 месяца назад работает.Тот же скрипт но скомпилировный вчера НЕ работает. Чудеса. Мне что теперь под каждую версию надо переделывать все програмы?
Файлы НАХОДЯТСЯ, УПАКОВЫВАЮТСЯ, И РАСПАКОВЫВАЮТСЯ, так как им и положено. А то что в последствии кибор не может их найти там куда распокавал, канеш, там просто запятой не хватает...
Жесть
132. Kibor - 08 Октября, 2020 - 08:21:29 - перейти к сообщению
string temp_fold=tempfolder();
messagebox (temp_fold);
что пишет?
133. 10970 - 08 Октября, 2020 - 08:24:42 - перейти к сообщению
выводит путь папки темп
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться)
134. Kibor - 08 Октября, 2020 - 08:29:52 - перейти к сообщению
Код блока RESOURSE выложите
135. 10970 - 08 Октября, 2020 - 08:34:16 - перейти к сообщению
в личку скинул
136. Kibor - 08 Октября, 2020 - 08:49:00 - перейти к сообщению
Все пары
CODE:
unpack("C:\Image_0.bmp", temp_fold+"Image_0.bmp", 1);
loadimage (#Image_0_KIB[0][0], temp_fold+"Image_0.bmp");

замените на
CODE:
messagebox (unpack("C:\Image_0.bmp", temp_fold+"Image_0.bmp", 1));
messagebox (loadimage (#Image_0_KIB[0][0], temp_fold+"Image_0.bmp"));


Должно возвращать 1 или больше.
137. 10970 - 09 Октября, 2020 - 12:07:22 - перейти к сообщению
Знаете, я проще решил. Мне чтоб эти танцы с бубнами на ровном месте не устраивать, я просто перенес все картинки и забыл.
Вот этот код снизу, выкидывает программу нахрен. А всего лиш поиск 2х цветов в определенном месте.

int color_KIB_5[2], sum_color_KIB_5[2];
color_KIB_5[0]=1974015; color_KIB_5[1]=2039807;
sum_color_KIB_5[0]=1; sum_color_KIB_5[1]=1;
int x_предохранитель , y_предохранитель;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;
int Image_0_KIB[14][10];

start_();

findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_предохранитель, #y_предохранитель);
m_KIB2: findheapcolor_(20, 20, 20, 20, 500, 0, 0, 13, 0, 0, -1, 0, 0, 500, -1, -1, 20, 1, x_предохранитель, y_предохранитель, x_предохранитель+100, ey_KIB, 2, 1, #sum_KIB, #x_KIB, #y_KIB, #color_KIB_5[0], #sum_color_KIB_5[0]);

goto m_KIB2;



function start_()
{
load_image_();
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}


function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int mov_m, int mov_x, int mov_y, int p3, int wait, int cycle, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
xs=xs+sx_KIB; ys=ys+sy_KIB; xf=xf+sx_KIB; yf=yf+sy_KIB;
int timKIB, sumKIB, xKIB, yKIB, tx, ty, tcycle=0;
sty: pause(p1);
sumKIB=0;
if (t!=0) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==10){mousedbl(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==11){mousedbl(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==12){mousedbl(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==13)mousemove(xs+xKIB+xm, ys+yKIB+ym);
hy: if (mov_m==1)mousemove(mov_x, mov_y);
if (m>0 && m<14)pause(p3);
if (wait!=-1)
{
for (int ttim=gettime(); gettime()-ttim<wait; sleep(20))
{
if (r==0 && p==100){if (findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, -1)==0)return sumKIB;}
else {if (findimage(1, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, -1)==0)return sumKIB;}
}
if (tcycle<cycle){tcycle++; goto sty;}
return 0;
}
return sumKIB;
}



function findheapcolor_(int onx, int ony, int oox, int ooy, int t, int p1, int p2, int m, int xm, int ym, int mov_m, int mov_x, int mov_y, int p3, int wait, int cycle, int r, int k, int xs, int ys, int xf, int yf, int all_col, int min_col, int#sum, int#x, int#y, int#color, int#sum_color)
{
xs=xs+sx_KIB; ys=ys+sy_KIB; xf=xf+sx_KIB; yf=yf+sy_KIB;
int timKIB, sumKIB, xKIB, yKIB, tx, ty, tcycle=0;
sty: pause(p1);
sumKIB=0;
if (t!=0) timKIB=gettime();
a: if (r!=0){sum=findheapcolor(k, #color[0], #sum_color[0], all_col, min_col, #x[0], #y[0], onx, ony, oox, ooy, xs, ys, xf, yf, r, r, r, r, r, r, -1); if (sum>0) goto e;};
else {sum=findheapcolor(k, #color[0], #sum_color[0], all_col, min_col, #x[0], #y[0], onx, ony, oox, ooy, xs, ys, xf, yf, -1); if (sum>0) goto e;};
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==10){mousedbl(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==11){mousedbl(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==12){mousedbl(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==13)mousemove(xs+xKIB+xm, ys+yKIB+ym);
hy: if (mov_m==1)mousemove(mov_x, mov_y);
if (m>0 && m<14)pause(p3);
if (wait!=-1)
{
for (int ttim=gettime(); gettime()-ttim<wait; sleep(20))
{
if (r!=0){if (findheapcolor(1, #color[0], #sum_color[0], all_col, min_col, #tx, #ty, onx, ony, oox, ooy, xs, ys, xf, yf, r, r, r, r, r, r, -1)==0)return sumKIB;}
else {if (findheapcolor(1, #color[0], #sum_color[0], all_col, min_col, #tx, #ty, onx, ony, oox, ooy, xs, ys, xf, yf, -1)==0)return sumKIB;}
}
if (tcycle<cycle){tcycle++; goto sty;}
return 0;
}
return sumKIB;
}




function load_image_()
{
string temp_fold=tempfolder();
unpack("D:\Кибор\Универсал\Значек предохранитель.bmp", temp_fold+"Значек предохранитель.bmp", 1);
loadimage (#Image_0_KIB[0][0], temp_fold+"Значек предохранитель.bmp"Подмигивание;
}


RESOURCE
{
"D:\Кибор\Универсал\Значек предохранитель.bmp";
}
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться) это какойто пипец, что бы это могло быть?
(Добавление)
возможно там не сделан выход если цвет не найден, сейчас проверю..
(Добавление)
нет, дело не в этом, просто после запуска кода кибор вылетает и все на этом.
(Добавление)
значек предохранитель, это как якорь для координат где нужно искать цвет. До этого пробовал найти картинку в этом же коде, все работало, перевел на поиск цвета, работало но не искало нужное. Я несколько раз поменял цвет, и теперь просто вылетает((
138. Kibor - 09 Октября, 2020 - 12:27:36 - перейти к сообщению
Все логично. Включенный отладчик с галкой сканировать переменные показал бы, что при вызове функции findheapcolor_ в переменных зоны поиска находится какая то фигня если не найдено изображение в findimage_
139. 10970 - 09 Октября, 2020 - 12:30:19 - перейти к сообщению
Ну эта фигня сформирована исключительно средствами кибора. Я не ставлю самостоятельно ни одной точки в коде.
(Добавление)
логика этого скрипта такова. Ищется цвет в районе указанных координат. по циклу. Если находит цвет, переводит туда мышку. ВСЕ. В чем тут могут быть проблемы? Скрипт в визуале из четырех квадратов. Сорри из 5ти))(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)(для просмотра ссылки Вам необходимо авторизоваться) ну и вот эта фигня на скрине.
140. Kibor - 09 Октября, 2020 - 12:37:24 - перейти к сообщению
 10970 пишет:
Ну эта фигня сформирована исключительно средствами кибора. Я не ставлю самостоятельно ни одной точки в коде.

Точку ставить не надо, а пару линий провести с блока поиска изображения все же не мешало бы.. Что бы при ненайденном не шло в поиск скученности с фиг его знает какой зоной.

Powered by ExBB FM 1.0 Final