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

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

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

> Описание: ошибка в коде
1ekt0r
Отправлено: 29 Октября, 2020 - 18:22:48
Post Id



Пользователь
Участник


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




Здравствуйте. Написал простенький кликер, который должен работать в NOX эмуляторе в фоновом режиме! Суть в том, что при нажатии на кнопку 1 на клавеатуре, бот запоминает координаты мыши в окне эмулятора. При нажатии на кнопку 9 бот начинает производить клики по запомненым координатам. Бот зациклен, и при запуске может пройти 10 и более кругов без ошибок, но в какой-то момент(может прям на первом круге цикла, может и на пятидесятом) начинает кликать непонятно куда и ломает круг, что приводит его эфективность к нолю! Делал через визуальный редактор


Так выглядит бот в визуальном редакторе:[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

так выглядит сам код:
CODE:
int e=0, n=0;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;

start_();

enabletimer (0);

m_KIB0:
if (getkeystate(49)==1) goto m_KIB1;
else goto m_KIB3;
m_KIB1: int x[999], y[999];
win wind=window ("NoxPlayer", "Qt5QWindowIcon", -1);
getmouse(x[e], y[e], window ("NoxPlayer", "Qt5QWindowIcon", -1));
e++;
n++;
sleep(1000);
goto m_KIB0;
m_KIB3: sleep(100);
goto m_KIB0;



function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(0, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}


function mouse_(int p1, int m, int xm, int ym, int p2)
{
pause(p1);
if (m==1) sendmouse(LEFT, xm, ym, w_KIB);
if (m==2) sendmouse(MIDDLE, xm, ym, w_KIB);
if (m==3) sendmouse(RIGHT, xm, ym, w_KIB);
if (m==4) sendmousedown(LEFT, xm, ym, w_KIB);
if (m==5) sendmousedown(MIDDLE, xm, ym, w_KIB);
if (m==6) sendmousedown(RIGHT, xm, ym, w_KIB);
if (m==7) sendmouseup(LEFT, xm, ym, w_KIB);
if (m==8) sendmouseup(MIDDLE, xm, ym, w_KIB);
if (m==9) sendmouseup(RIGHT, xm, ym, w_KIB);
if (m==10) sendmousedbl(LEFT, xm, ym, w_KIB);
if (m==11) sendmousedbl(MIDDLE, xm, ym, w_KIB);
if (m==12) sendmousedbl(RIGHT, xm, ym, w_KIB);
if (m==13) sendmousemove(xm, ym, w_KIB);
pause(p2);
}

function бот()
{

m_KIB5: e=0;

m_KIB1: mouse_(0, 1, x[e], y[e], 500);
sleep(6000);

e++;


if (e>=n) goto m_KIB5;
else goto m_KIB1;
}


CREATE_TIMER(0, 100)
{


if (getkeystate(57)==1) goto m_KIB2_T0;
else goto m_KIB3_T0;
m_KIB3_T0: enabletimer (0);
goto exit_KIB_T0;
m_KIB2_T0: disabletimer (0);
бот();

exit_KIB_T0:;
}


Помогите разобраться, в чем может быть ошибка! И подскажите решение
 
 Top
Zireael
Отправлено: 30 Октября, 2020 - 00:54:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
в чем может быть ошибка

В том что нет ожидания когда клавиша будет отпущена.
CODE:
while (getkeystate(49)==0)sleep(10); // ждать когда будет нажата клавиша 1
messagebox("Нужные действия");

CODE:
loop()
{
if(getkeystate(49)) // если нажата клавиша 1
{
while (getkeystate(49))sleep(10); // ждать пока она нажата
messagebox("Нужные действия");
}
sleep(10);
}
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by