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

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

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

> Описание: Помогите нубу разобраться в работе таймера
Ahillll84
Отправлено: 23 Июня, 2019 - 20:04:08
Post Id



Пользователь
Прохожий


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




Здравствуйте! Сделал бота для EVE-Online в визуальном редакторе, все нормально работает, но иногда по неизвестной причине (скорее всего глюк самой игры) при отзыве/выпускании дронов они сворачиваются. Чтобы было понятней вот так должно быть при работе бота [img](для просмотра ссылки Вам необходимо авторизоваться) /img], а вот так выглядят свернутые дроны [img](для просмотра ссылки Вам необходимо авторизоваться) /img].

Когда дроны свернуты, бот дальше не работает, так как многое завязано на эти изображения. Поэтому решил воспользоваться функцией таймера в Кибор, чтобы каждые, допустим, 10 секунд проверялось не свернуты ли дроны. Так вот, суть проблемы - без таймера все работает [img](для просмотра ссылки Вам необходимо авторизоваться) /img], а когда все это включаю в таймер, то нет [img](для просмотра ссылки Вам необходимо авторизоваться) /img] что я делаю не так?

вот код:

CODE:

int sum_KIB_T0, x_KIB_T0, y_KIB_T0;
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[11][9];

start_();

enabletimer (0);




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 findimage_T0(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_()
{
string temp_fold=tempfolder();
unpack("F:\BOTs\Kibor\BOTIMAGE\Drony_svernuty.bmp", temp_fold+"Drony_svernuty.bmp", 1);
loadimage (#Image_0_KIB[0][0], temp_fold+"Drony_svernuty.bmp");
}


CREATE_TIMER(0, 5000)
{

if (findimage_T0(#Image_0_KIB[0][0], 1000, 100, 0, 13, -15, 3, -1, 0, 0, 500, -1, -1, -1, 50, 97, 1, 1290, 700, 1600, 1042, #sum_KIB_T0, #x_KIB_T0, #y_KIB_T0)>0) goto m_KIB3_T0;
else goto m_KIB2_T0;
m_KIB2_T0:
goto exit_KIB_T0;
m_KIB3_T0: findimage_T0(#Image_0_KIB[0][0], 1000, 100, 0, 1, 3, 3, 1, 1232, 875, 500, -1, -1, -1, 50, 97, 1, 1290, 700, 1600, 1042, #sum_KIB_T0, #x_KIB_T0, #y_KIB_T0);
exit_KIB_T0:;
}


RESOURCE
{
"F:\BOTs\Kibor\BOTIMAGE\Drony_svernuty.bmp";
}
 
 Top
Dantes3000
Отправлено: 23 Июня, 2019 - 20:49:25
Post Id



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


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Ahillll84 , Таймер работает во время исполнения скрипта. В этом случае скрипт состоит из функции start(); и включения таймера. Больше нечего исполнять и скрипт завершается. Нужно поставить какой-то цикл.


Но я рекомендую в начало функции, которая работает с дронами, искать картинку со свёрнутой папкой, если нашли - открываем и дальше уже по плану.
 
 Top
Ahillll84
Отправлено: 23 Июня, 2019 - 21:07:22
Post Id



Пользователь
Прохожий


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




 Dantes3000 пишет:
Ahillll84 , Таймер работает во время исполнения скрипта. В этом случае скрипт состоит из функции start(); и включения таймера. Больше нечего исполнять и скрипт завершается. Нужно поставить какой-то цикл.


Но я рекомендую в начало функции, которая работает с дронами, искать картинку со свёрнутой папкой, если нашли - открываем и дальше уже по плану.


Спасибо, заработало) А насчет добавления в функцию подумаю, просто свернутся может в любой момент и не хотелось бы чтобы бот тупил пока пройдет весь цикл пока найдет картинку.
 
 Top
Dantes3000
Отправлено: 23 Июня, 2019 - 23:17:12
Post Id



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


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




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


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




Powered by