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

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

 Страниц (4): « 1 2 [3] 4 »   

> Без описания
Dantes3000
Отправлено: 24 Декабря, 2017 - 23:49:38
Post Id



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


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




если так подумать, то при пустом ретурне просто не войдет в условие ==1.
Именно в том блоке кода где return надо просто выйти из функции. До этого там было пусто и такая же ошибка была.
 
 Top
Kibor
Отправлено: 24 Декабря, 2017 - 23:55:41
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




При пустом ретурне он пойдет на goto m_KIB8;
так почему бы не сделать как положено? вернуть например 0.

ну если примерное место найдено, то можно лог через каждую строку записать.
 
 Top
Dantes3000
Отправлено: 25 Декабря, 2017 - 00:01:12
Post Id



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


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




Этот участок кода очень редко выполняется. Только когда сумка заполнилась. Отключил таймер, посмотрю как будет теперь работать.
 
 Top
Kibor
Отправлено: 25 Декабря, 2017 - 00:04:54
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Dantes3000 пишет:
Этот участок кода очень редко выполняется

а сэмулировать? поставить рис который есть всегда.
 
 Top
Dantes3000
Отправлено: 25 Декабря, 2017 - 03:30:35
Post Id



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


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




 Kibor пишет:
а сэмулировать? поставить рис который есть всегда.

я не в том смысле...Даже эмулировать не надо, я знаю, что всё будет ок, ибо выполнялся этот участок всегда без сучка и задоринки.

Вот убрал я таймер вообще (точнее из таймера весь код убрал) и работает без сбоев уже 3 часа.
Поскольку все скрипты, которые я одновременно запускал, так же одновременно и вырубались, то мне кажется, что тут именно в киборе проблема. То ли массив какой-то переполняется...то ли еще что-то.
Повторюсь и уточню: вырубаются все почти одновременно,но немного при разных условиях. В первом случае- перс после функции "крест" находит "руку" над умершим мобом и всё. В другом - нажимает на трупик и так же выбивает. Ну...я сделаю нормальный лог и узнаю по-точнее.
(Добавление)
а еще поэксперементирую так: раньше код выполнялся раз в 1 сек и кибор падал спустя минут 40. Если поставить 500мсек и он упадет раньше, то тут уж точно что-то не то с кибором.
 
 Top
Kibor
Отправлено: 25 Декабря, 2017 - 11:31:54
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Мне так не кажется. Использую таймеры активно.
(Добавление)
Вот акракадабра с применением таймера, переходов, остановки запуска его в цикле.
Но код составлен правильно и нигде нет ошибок.
Не падает, хоть таймер быстро зациклен.

CODE:
int Image_0[26][20];
int Image_1[22][20];

int PosX_0[512];int PosY_0[512];
int PosX_1[512];int PosY_1[512];
int a=0;
int b=0;
int r=0;
loadimage (#Image_0[0][0], "C:\Users\Вова\Desktop\Image_0.bmp");
loadimage (#Image_1[0][0], "C:\Users\Вова\Desktop\Image_1.bmp");
enabletimer(1);

loop()
{
e:;
r++;
if (r>10){r=0; disabletimer(1);}
if (findimage(-1, #Image_1[0][0], 0, #PosX_1[0], #PosY_1[0], 0, 0, 1366, 768, -1)>0)
{
SD();
goto e:;
}
enabletimer(1);
sleep(10);
}

function SD()
{
b=0;
enabletimer(1);
}


CREATE_TIMER(1, 20)
{
if (findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1366, 768, -1)>0)a++;
if (a>1000)a=0;
b++;
if (b>10){b=0; goto e;}
}
 
 Top
Kutuz_off
Отправлено: 25 Декабря, 2017 - 13:27:24
Post Id



Пользователь
Наблюдатель


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




textout warning!
Не один час однажды потратил на поиск такой же "рандомной" ошибки - когда все решилось банальным закоментированием всех текстаутов в коде!
 
 Top
Kibor
Отправлено: 26 Декабря, 2017 - 03:40:37
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Dantes3000 ,
просмотрел код...

что делают переменные sum_KIB_T1, x_KIB_T1, y_KIB_T1 в функции цикл?
к вылету это конечно не приведет в этом случае, но неверную работу может создать если код таймера вклинится таким образом:

CODE:
function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, 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;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, w_KIB); 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, w_KIB); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e:


//сюда, так как sum; x[0]; y[0] это указатели на переменные sum_KIB_T1, x_KIB_T1, y_KIB_T1 будут в этом случае
// а если сюда вклинится таймер то они перепишутся функцией поика в таймере.




sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){sendmouse(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==2){sendmouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==3){sendmouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==4){sendmousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==5){sendmousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==6){sendmousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==7){sendmouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==8){sendmouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==9){sendmouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==10){sendmousemove(xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
return sumKIB;
}


дальше..

на кой вызывать два раза функцию старт? что бы 2 раза грузить изображения?

я понимаю что подразумевалось получить в переменные ex_KIB, ey_KIB новые рамеры окна после
CODE:
win wars;
getmouse(x_id, y_id);
wars=getwindow(1, x_id, y_id);
wars.width=740;
wars.height=740;
movewindow(wars);


но зачем? если мы и так их указываем..
только правильнее будет
 Цитата:
wars.widthclient=740;
wars.heightclient=740;
moveclient(wars);

или так не меняется?

С какой опцией собирается код?
фоновый режим.. окно или контрол?

если окно, то в ex_KIB, ey_KIB после такой смены размера останутся прежние размеры, несмотря на то что мы их программно сменили перед этим.
только при втором запуске они заимеют реальные размеры окна.


CODE:
movewindow(wars);
start_();
messagebox (ex_KIB);


что там показывает?
 
 Top
Dantes3000
Отправлено: 26 Декабря, 2017 - 16:58:34
Post Id



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


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




 Kibor пишет:
что делают переменные sum_KIB_T1, x_KIB_T1, y_KIB_T1 в функции цикл?

Просто из таймера в функцию перекинул. По сути это ничего не поменяло, т.к таймера как такового уже нет. Единственный поиск "взять" в таймере посылает по метке и там не нужны эти переменные.

 Kibor пишет:
на кой вызывать два раза функцию старт?

Я бы и не против ее 1 раз вызвать, но для того чтобы функции в виз редакторе работали - они должны получить указатель в переменную w_KIB. Привязка по контролу.

 Kibor пишет:
но зачем? если мы и так их указываем..

Это старое решение) А сюда скопировал только чтобы размер изменить.Не знаю как иначе сделать. Работает же

 Kibor пишет:
что там показывает?


показывает 734

(Отредактировано автором: 26 Декабря, 2017 - 16:59:40)

 
 Top
Kibor
Отправлено: 26 Декабря, 2017 - 17:15:05
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Dantes3000 пишет:
т.к таймера как такового уже нет

как это нет?
есть. и там эти переменные.
какой может быть конфликт я показал. К вылету конечно не приведет.

Ну а вообще я не знаю что сказать. Запустить не могу. Эмуляция работы с таймерами к вылету не привела. Не могу тут помочь, так как не знаю в чем причина.
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by