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

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

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

> Без описания
AdryV
Отправлено: 21 Мая, 2016 - 15:49:55
Post Id



Пользователь
Специалист


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




как я понял никто не знает как исправить эту ошибку?(
 
 Top
Kibor
Отправлено: 21 Мая, 2016 - 16:30:54
Post Id



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


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




Не ошибку надо исправлять, а правильно логику писать...

Если клавиши жмутся не завися ни от чего то какие могут быть паузы до и после?? До чего? После чего?? Если они независимы?? пауза может быть между.. и все.
Вот код реализующий..
CODE:

int t[9], k[9], t1[9], kod[9];
int tim;
int n;
int n1;
int f=0;



t[0]=formatsn(getcontrol(EDIT_0));

t[1]=formatsn(getcontrol(EDIT_1));
t[2]=formatsn(getcontrol(EDIT_2));
t[3]=formatsn(getcontrol(EDIT_3));
t[4]=formatsn(getcontrol(EDIT_4));
t[5]=formatsn(getcontrol(EDIT_5));
t[6]=formatsn(getcontrol(EDIT_6));
t[7]=formatsn(getcontrol(EDIT_7));
t[8]=formatsn(getcontrol(EDIT_8));


/////////////////////////////////////////////////////////////

k[0]=getcontrol(CHECK_0);
k[1]=getcontrol(CHECK_1);
k[2]=getcontrol(CHECK_2);
k[3]=getcontrol(CHECK_3);
k[4]=getcontrol(CHECK_4);
k[5]=getcontrol(CHECK_5);
k[6]=getcontrol(CHECK_6);
k[7]=getcontrol(CHECK_7);
k[8]=getcontrol(CHECK_8);

////////////////////////////////


for(n1=0; n1<9; n1++){t1[n1]=gettime();}

kod[0]=65;
kod[1]=67;
kod[2]=69;
kod[3]=72;
kod[4]=75;
kod[5]=81;
kod[6]=85;
kod[7]=87;
kod[8]=91;

/////////////////////////////////////////////////////загрузка изображения полоски хп моба

int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB, tim_KIB;
int Image_0_KIB[84][1];

getdisplay(col_KIB, ex_KIB, ey_KIB);

loadimage (#Image_0_KIB[0][0], "D:\kibor\PoloskaHpMoba3.bmp");




//////////////////////////////////////////////////////
enabletimer(0);
loop()
{
if (findimage_(#Image_0_KIB[0][0], 100, 0, 0, 0, 0, 0, 0, -1, 0, 100, 1, #sum_KIB, #x_KIB, #y_KIB)==1)//ищем полоску хп мобов
{
if (f==0)
{
for(n1=0; n1<9; n1++){t1[n1]=gettime();}
f=1;
}
}
else f=0;
sleep(5);
}
////////////////////////////////////////////////////// паузы


CREATE_TIMER(0, 50)//Номер таймера, выполнение таймера через мсек.
{
if (f==1)
{
tim=gettime();
for(n=0; n<9; n++)
{
if (k[n]==1)
{
if (tim-t1[n]>=t[n]){key(kod[n]);t1[n]=tim;}
}
}
}
}


//функция поиска изображения
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#sum, int#x, int#y)
{
pause(p1);
sum_KIB=0;
if (t!=1) tim_KIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], 0, 0, ex_KIB, ey_KIB, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], 0, 0, ex_KIB, ey_KIB, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-tim_KIB<t){sleep(20); goto a;}
return 0;
e: sum_KIB=sum; x_KIB=x[0]; y_KIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==10){mousemove(x_KIB+xm, y_KIB+ym); pause(p3);}
return sum_KIB;
}


/////////////////////////////////////////////////////////////////

CREATE_INTERFACE //создание интерфейса
{
DIALOG "B&S" 550 650 //название/РазмерX/РазмерY
//первый скилл
CHECK_0 0 /*Выключена*/ "1" 10 10 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_0 "0" 50 10 50 18 //ПозицияX ПозицияY РазмерX РазмерY

//третий скилл

CHECK_1 0 /*Выключена*/ "3" 10 50 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_1 "0" 50 50 50 18 //ПозицияX ПозицияY РазмерX РазмерY

/////////////////////////////////////////////////////////////////////////////

//клавиша z скилл
CHECK_2 0 /*Выключена*/ "z" 10 90 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_2 "0" 50 90 50 18 //ПозицияX ПозицияY РазмерX РазмерY
//клавиша x скилл
CHECK_3 0 /*Выключена*/ "x" 10 110 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_3 "0" 50 110 50 18 //ПозицияX ПозицияY РазмерX РазмерY

//клавиша v скилл

CHECK_4 0 /*Выключена*/ "v" 10 150 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_4 "0" 50 150 50 18 //ПозицияX ПозицияY РазмерX РазмерY
/////////////////////////////////////////////////////////////////////////////

//клавиша tab скилл
CHECK_5 0 /*Выключена*/ "tab" 10 170 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_5 "0" 50 170 50 18 //ПозицияX ПозицияY РазмерX РазмерY

//клавиша клик левой скилл
CHECK_6 0 /*Выключена*/ "lkm" 10 190 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_6 "0" 50 190 50 18 //ПозицияX ПозицияY РазмерX РазмерY

//клавиша клик правой скилл
CHECK_7 0 /*Выключена*/ "pkm" 10 210 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_7 "0" 50 210 50 18 //ПозицияX ПозицияY РазмерX РазмерY
//////////////////////////////////////////////////////////////////////////////

//клавиша F скилл
CHECK_8 0 /*Выключена*/ "f" 10 230 40 18 //ПозицияX ПозицияY РазмерX РазмерY
EDIT_8 "0" 50 230 50 18 //ПозицияX ПозицияY РазмерX РазмерY


BUTTONSCRIPT "Запустить" 420 580 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......

}
 
 Top
AdryV
Отправлено: 21 Мая, 2016 - 17:56:41
Post Id



Пользователь
Специалист


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




 Kibor пишет:
Не ошибку надо исправлять, а правильно логику писать...

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

----------
код работает идеально на 2-х кнопках уже проверил, буду проверять дальше

----------
в итоге получается что сейчас все паузы хранятся в одном таймере с gettime?
и еще паузу до нажатия и после нажатия не реализовать? или можно добавить еще один таймер и вычисления таймера по аналогу первого?
(Добавление)
все отлично работает
вот весь код мало ли кому пригодится)
Спойлер (Отобразить)

(Добавление)
по поводу поиска изображения можно и тут спросить или лучше новую тему создать?

(Отредактировано автором: 21 Мая, 2016 - 18:10:11)

 
 Top
Kibor
Отправлено: 21 Мая, 2016 - 19:01:38
Post Id



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


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




новую
 
 Top
AdryV
Отправлено: 25 Мая, 2016 - 14:30:43
Post Id



Пользователь
Специалист


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




еще подскажите пожалуйста как реализовать запоминание данных введенных в поля EDIT? к примеру в текстовый файл, что бы при повторном запуске все паузы считывало и вставляло в поля и после выхода сохранялось в этот же текстовый файл и осталось лишь поставить галки...
(Добавление)
и еще интересует возможно ли в этом коде(который выше), реализовать рандомность нажатия кнопок или определенную последовательность...

(Отредактировано автором: 25 Мая, 2016 - 14:31:19)

 
 Top
Kibor
Отправлено: 25 Мая, 2016 - 15:21:50
Post Id



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


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




CODE:
string a;

a=getcontrol(EDIT_0);


if (fopen ("C:\init.txt", "w")!=0)
{
fwrite(a);
fclose();
}

INITDIALOG
{
if (fopen ("C:\init.txt", "r")!=0)
{
fread(a);
fclose();
sendcontrol(EDIT_0, a);
}
}


CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
EDIT_0 "текст" 105 8 120 18 //ПозицияX ПозицияY РазмерX РазмерY

}



все можно........
 
 Top
AdryV
Отправлено: 26 Мая, 2016 - 07:13:27
Post Id



Пользователь
Специалист


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




Спасибо,
подскажите как сделать более компактней, а то у меня получается 14 полей, что бы перебирать на запись и чтение +1
и еще просмотрите пожалуйста весь код на ошибки логики и тд... так то все работает

Спойлер (Отобразить)

(Добавление)
как перебирать на запись разобрался
CODE:
if (fopen ("D:\pause.txt", "w")!=0)
{
for (n=0; n<2; n++)
{
fwrite (t[n]);
fwrite (ENDL);
}
fclose();
}

а вот как перебирать на считывание в поля EDIT не понял
(Добавление)
так это минимальный вариант? или както можно и EDIT_0 и тд... перебирать?
CODE:
INITDIALOG
{
if (fopen ("D:\pause.txt", "r")!=0)
{
for (n=0; n<15; n++)
{
fread(t[n]);
}
fclose();
sendcontrol(EDIT_0, t[0]);
sendcontrol(EDIT_1, t[1]);
sendcontrol(EDIT_2, t[2]);
sendcontrol(EDIT_3, t[3]);
sendcontrol(EDIT_4, t[4]);
sendcontrol(EDIT_5, t[5]);
sendcontrol(EDIT_6, t[6]);
sendcontrol(EDIT_7, t[7]);
sendcontrol(EDIT_8, t[8]);
sendcontrol(EDIT_9, t[9]);
sendcontrol(EDIT_10, t[10]);
sendcontrol(EDIT_11, t[11]);
sendcontrol(EDIT_12, t[12]);
sendcontrol(EDIT_13, t[13]);
sendcontrol(EDIT_14, t[14]);
}
}

(Отредактировано автором: 26 Мая, 2016 - 07:15:36)

 
 Top
Kibor
Отправлено: 26 Мая, 2016 - 09:51:11
Post Id



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


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




нельзя. это не переменные..
 
 Top
b4k88
Отправлено: 09 Сентября, 2017 - 17:33:01
Post Id



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


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




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


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




Powered by