Chick |
Отправлено: 09 Июня, 2020 - 11:04:57
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Добрый день. Может быть, шалит не findimage, а я шалю, но мне определенно нужна помощь. Опишу всё, что заметил по пунктам:
1. Зарегистрировал полную версию на сутки.
2. попробовал сохранение и поиск картинки - ничего не получилось. Пока смотрел видосы и курил форум, сутки закончились
3. попробовал поиск картинки на демо-версии, всё отлично нашлось и кликнулось.
4. Приобрел максимальную версию.
5. Поиск картинки тут же снова сломался...
Ключевые моменты:
1. Вин7х64
2. Картинка вырезана с того же окна, в котором ищется.
3. Поиск был сделан с помощью визуального редактора кода, т.е. ошибки в синтаксисе, думаю, можно исключить...
4. Код:
Спойлер (Отобразить)
CODE:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[4][5];
start_();
m_KIB1: if (findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, -1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB2;
else goto m_KIB3;
m_KIB2: sleep(1000);
goto m_KIB1;
m_KIB3: messagebox("Дрова закончились");
function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}
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)
{
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 load_image_()
{
loadimage (#Image_0_KIB[0][0], "E:\kibor\zfbot\Image_0.bmp");
}
Помогите новичку плиз!(Отредактировано автором: 09 Июня, 2020 - 11:08:34) |
|
|
Chick |
Отправлено: 09 Июня, 2020 - 11:39:13
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Zireael пишет: Картинки могут отличаться. Это видно только при увеличении.
Для начала попробуйте найти картинку не в игре, а на рабочем столе и ещё где-то.
Также можно использовать параметр разбежность в цвете.
Забыл написать. После того, как я не смог найти дрова в игрушке, я попытался найти кнопку "Пуск". Результат тот же.
С параметрами (дров, не Пуска) игрался до безумия (20% совпадение, 200 разбежность) - результат нулевой.
Вот прямо сейчас попробовал поискать "Пуск" - нет его
П.С. Изменил размер картинки для пуска и заработало. Но только для него... Сейчас попытаюсь цветоразбежность поменять...
П.П.С. Заново скопировал картинку. Не менял ни положение, ни масштаб, поставил параметры:
CODE:findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 120, 50, -1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0)
Результат нулевой - не находит картинку (Отредактировано автором: 09 Июня, 2020 - 11:49:20) |
|
|
Kibor |
Отправлено: 09 Июня, 2020 - 11:53:24
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Chick пишет: m_KIB1: if (findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, -1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB2;
Плохо вы смотрели видео.
Что у вас ищется не одно изображение, а сколько есть, а в виде приемника координат указатели не на массивы?
findimage_ вернул ошибку, поскольку частей экрана с разбежностью (20% совпадение, 200 разбежность)! там наверно очень много. |
|
|
Chick |
Отправлено: 09 Июня, 2020 - 11:58:16
|
Наблюдатель
Покинул форум
Сообщений всего: 33
Дата рег-ции: Июнь 2020
Репутация: 0
|
Kibor пишет: Chick пишет: m_KIB1: if (findimage_(#Image_0_KIB[0][0], 1000, 0, 0, 1, 0, 0, -1, 0, 0, 0, -1, -1, -1, 0, 100, -1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB2;
Плохо вы смотрели видео.
Что у вас ищется не одно изображение, а сколько есть, а в виде приемника координат указатели не на массивы?
findimage_ вернул ошибку, поскольку частей экрана с разбежностью (20% совпадение, 200 разбежность)! там наверно очень много.
И правда я шалю Поставил 1 вместо -1 и всё заработало!!! Спасибо и +1 к репутации за терпение с моими детскими вопросами! |
|
|
|