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

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

1. Aliena - 07 Декабря, 2020 - 11:15:26 - перейти к сообщению
Доброго времени суток.
Задача: сделать простого бота, который будет перемещать мышку и нажимать в определенных местах окна кнопки, повторяя последовательность, пока на экране есть картинка (кнопка продать, всегда в одном и том же месте).

Скрипт

int Im[66][20];
int X0[7], Y0[7];

loadimage (#Im[0][0], "E:\Бот\продать\Продать_стат.bmp"Подмигивание;

while (findimage(-1, #Im[0][0], 0, #X0[0], #Y0[0], 653, 326, 1332, 839, wind)!=0)
(
//Продать
mouse_(0, 1, 1227+rand(20, 0), 457+rand(5, 0), 1500);

mouse_(0, 1, 692+rand(30, 30), 508+rand(3, 3), 1500);
//-1
mouse_(0, 1, 631+rand(2, 2), 631+rand(2, 2), 200);
//-2
mouse_(0, 1, 631+rand(2, 2), 631+rand(2, 2), 2000);

mouse_(0, 1, 896+rand(10, 10), 714+rand(3, 3), 500);



function mouse_(int p1, int m, int xm, int ym, int p2)
{
pause(p1);
if (m==1) mouse(LEFT, xm, ym);
if (m==2) mouse(MIDDLE, xm, ym);
if (m==3) mouse(RIGHT, xm, ym);
if (m==4) mousedown(LEFT, xm, ym);
if (m==5) mousedown(MIDDLE, xm, ym);
if (m==6) mousedown(RIGHT, xm, ym);
if (m==7) mouseup(LEFT, xm, ym);
if (m==8) mouseup(MIDDLE, xm, ym);
if (m==9) mouseup(RIGHT, xm, ym);
if (m==10) mousedbl(LEFT, xm, ym);
if (m==11) mousedbl(MIDDLE, xm, ym);
if (m==12) mousedbl(RIGHT, xm, ym);
if (m==13) mousemove(xm, ym);
pause(p2);
}
)

Сообщение об ошибке:

2. Zireael - 07 Декабря, 2020 - 16:52:37 - перейти к сообщению
CODE:
int Im[66][20];
int X0[7], Y0[7];

loadimage (#Im[0][0], "E:\Бот\продать\Продать_стат.bmp");

while (findimage(7, #Im[0][0], 0, #X0[0], #Y0[0], 653, 326, 1332, 839, -1)!=0)
{
//Продать
mouse_(0, 1, 1227+rand(20, 0), 457+rand(5, 0), 1500);

mouse_(0, 1, 692+rand(30, 30), 508+rand(3, 3), 1500);
//-1
mouse_(0, 1, 631+rand(2, 2), 631+rand(2, 2), 200);
//-2
mouse_(0, 1, 631+rand(2, 2), 631+rand(2, 2), 2000);

mouse_(0, 1, 896+rand(10, 10), 714+rand(3, 3), 500);
}


function mouse_(int p1, int m, int xm, int ym, int p2)
{
pause(p1);
if (m==1) mouse(LEFT, xm, ym);
if (m==2) mouse(MIDDLE, xm, ym);
if (m==3) mouse(RIGHT, xm, ym);
if (m==4) mousedown(LEFT, xm, ym);
if (m==5) mousedown(MIDDLE, xm, ym);
if (m==6) mousedown(RIGHT, xm, ym);
if (m==7) mouseup(LEFT, xm, ym);
if (m==8) mouseup(MIDDLE, xm, ym);
if (m==9) mouseup(RIGHT, xm, ym);
if (m==10) mousedbl(LEFT, xm, ym);
if (m==11) mousedbl(MIDDLE, xm, ym);
if (m==12) mousedbl(RIGHT, xm, ym);
if (m==13) mousemove(xm, ym);
pause(p2);
}

В цикле while нужно использовать фигурные скобки, а не круглые.
 Цитата:
while()
{
// нужные действия
}
3. Aliena - 07 Декабря, 2020 - 18:04:19 - перейти к сообщению
Тот же результат и та же ошибка с любым видом скобок.
4. Zireael - 07 Декабря, 2020 - 18:37:35 - перейти к сообщению
 Цитата:
Тот же результат и та же ошибка

Потому что кроме скобок исправлены и другие ошибки.
Переменная wind, которая нигде не объявлена.
Функция mouse_ вынесена за пределы цикла.
5. Aliena - 08 Декабря, 2020 - 03:32:27 - перейти к сообщению
Zireael , спасибо за помощь!

Powered by ExBB FM 1.0 Final