Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как реализовать таймер

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

1. Kostick - 10 Сентября, 2020 - 06:26:23 - перейти к сообщению
Хочу в данный код добавить таймер, чтобы раз в 10 секунд нажимались кнопки F1 и F2, между которыми будет пауза в 1 секунду:
CODE:

m_KIB2: mouse_(0, 2, 906, 894, 0);
sleep(1000); // спи 1 секунду

string Text;
loadsymbolbase ("F:\ПРОГГИ\kibor_set\WASD2.sib"); // база для распознавания по пути "F:\ПРОГГИ\kibor_set\WASD2.sib".
int Color_Fon[9];
Color_Fon[0]=13224393; Color_Fon[1]=15987699; Color_Fon[2]=14540253; Color_Fon[3]=14013909; Color_Fon[4]=15790320; Color_Fon[5]=14474460; Color_Fon[6]=13882323; Color_Fon[7]=13553358; Color_Fon[8]=15132390; // Оттенки серого для фона
readtext (EN, #Text, 4, 1, -1, 80, 50, 1, #Color_Fon[0], 5, -1, 667, 493, 1227, 623, -1); // распознвание текста в области от [667, 493] до [1227, 623]. Цифры в коде readtext: Фильтр текст-фон - "4", сглаживание - "1", контрастность отключена - "-1", удаление горизонтальных линий длиннее 80 - "80", удаление вертикальных линий длиннее 50 - "50", Любой цвет текста - "1", массив цветов фона- "#Color_Fon[0]", разбежность цветов - "5", интеллект выключен - "-1", координаты правого верхнего угла области - "667, 493", координаты левого нижнего угла области - "1227, 623", поиск на всем экране - "-1"

//savescreen("f:\ПРОГГИ\kibor_set\Бот для БДО\Desktop\11111.bmp", 667, 493, 1227, 623, -1); // сделай скрин области от [667, 493] до [1227, 623] и сохрани по пути "f:\ПРОГГИ\kibor_set\Бот для БДО\Desktop\11111.bmp"
char c_text[100]; // В этот массив запишем текст весь
int aw=size(Text); // Узнаем кол-во символов

strcpy(#c_text[0], Text); // Скопируем текст с string в массив char


char A[300];
int X[300];
int kml=0;
int tkml;
int Min;
int tx;
int kor=0;

for (int n=0; n<aw; n++) // Перебираем посимвольно
{
if (c_text[n]!=' ' && symbolcorrect(kor)>0.5) // если корректность более 0.5
{
A[kml]=c_text[n]; // Сохраним символ
X[kml]=symbolxpos(kor); // Сохраним его координаты по X
kml++;
key(c_text[n]); // нажми распознанный символ, у которого корректность больше 0.5
pause(100); // пауза 100 мс
}
kor++;
}

A[kml]=0;



mouse_(250, 3, 906, 894, 250); goto m_KIB2;



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);
}


Думал, таймер будет такой
CODE:
loop()
{
enabletimer(0);
sleep (10000);
}

CREATE_TIMER(0, 1000)
{
key(112);
pause(1000);
key(113);
}

Но при его включении ничего не происходит. Подскажите, как можно реализовать таймер или можно ли каким-то другим способом нажимать раз в 10 секунд клавиши?
(Добавление)
Решил проблему с помощью визуального редактора
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Получился код:
CODE:
int size_key_char_KIB=-1;
int size_key_char_KIB_T0=-1;

enabletimer (0);

m_KIB2: mouse_(0, 2, 906, 894, 0);
sleep(1000); // спи 1 секунду

string Text;
loadsymbolbase ("F:\ПРОГГИ\kibor_set\WASD2.sib"); // база для распознавания по пути "F:\ПРОГГИ\kibor_set\WASD2.sib".
int Color_Fon[9];
Color_Fon[0]=13224393; Color_Fon[1]=15987699; Color_Fon[2]=14540253; Color_Fon[3]=14013909; Color_Fon[4]=15790320; Color_Fon[5]=14474460; Color_Fon[6]=13882323; Color_Fon[7]=13553358; Color_Fon[8]=15132390; // Оттенки серого для фона
readtext (EN, #Text, 4, 1, -1, 80, 50, 1, #Color_Fon[0], 5, -1, 667, 493, 1227, 623, -1); // распознвание текста в области от [667, 493] до [1227, 623]. Цифры в коде readtext: Фильтр текст-фон - "4", сглаживание - "1", контрастность отключена - "-1", удаление горизонтальных линий длиннее 80 - "80", удаление вертикальных линий длиннее 50 - "50", Любой цвет текста - "1", массив цветов фона- "#Color_Fon[0]", разбежность цветов - "5", интеллект выключен - "-1", координаты правого верхнего угла области - "667, 493", координаты левого нижнего угла области - "1227, 623", поиск на всем экране - "-1"

//savescreen("f:\ПРОГГИ\kibor_set\Бот для БДО\Desktop\11111.bmp", 667, 493, 1227, 623, -1); // сделай скрин области от [667, 493] до [1227, 623] и сохрани по пути "f:\ПРОГГИ\kibor_set\Бот для БДО\Desktop\11111.bmp"
char c_text[100]; // В этот массив запишем текст весь
int aw=size(Text); // Узнаем кол-во символов

strcpy(#c_text[0], Text); // Скопируем текст с string в массив char


char A[300];
int X[300];
int kml=0;
int tkml;
int Min;
int tx;
int kor=0;

for (int n=0; n<aw; n++) // Перебираем посимвольно
{
if (c_text[n]!=' ' && symbolcorrect(kor)>0.5) // если корректность более 0.5
{
A[kml]=c_text[n]; // Сохраним символ
X[kml]=symbolxpos(kor); // Сохраним его координаты по X
kml++;
key(c_text[n]); // нажми распознанный символ, у которого корректность больше 0.5
pause(100); // пауза 100 мс
}
kor++;
}

A[kml]=0;



mouse_(250, 3, 906, 894, 250); goto m_KIB2;



function key_(int k, int m, string text, int pc, int p1, int p2)
{
pause(p1);
if (m==-1)
{
if (size_key_char_KIB==-1)
{
size_key_char_KIB=100;
new char key_char_KIB[size_key_char_KIB+1];
}
int size_key=size(text);
if (size_key_char_KIB<size_key)
{
delete key_char_KIB;
size_key_char_KIB=size_key;
new char key_char_KIB[size_key_char_KIB+1];
}
strcpy(#key_char_KIB[0], text);
for (int n=0; n<size_key; n++){key(key_char_KIB[n]); sleep(pc);}
}
else
{
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
}
pause(p2);
}


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);
}


function key_T0(int k, int m, string text, int pc, int p1, int p2)
{
pause(p1);
if (m==-1)
{
if (size_key_char_KIB_T0==-1)
{
size_key_char_KIB_T0=100;
new char key_char_KIB[size_key_char_KIB_T0+1];
}
int size_key=size(text);
if (size_key_char_KIB_T0<size_key)
{
delete key_char_KIB;
size_key_char_KIB_T0=size_key;
new char key_char_KIB[size_key_char_KIB_T0+1];
}
strcpy(#key_char_KIB[0], text);
for (int n=0; n<size_key; n++){key(key_char_KIB[n]); sleep(pc);}
}
else
{
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
}
pause(p2);
}

CREATE_TIMER(0, 1000)
{

key_T0(112, 1, "", 0, 1000, 1000);
key_T0(113, 1, "", 0, 0, 0);
}

2. Dantes3000 - 10 Сентября, 2020 - 06:33:20 - перейти к сообщению
Kostick , таймер надо включить один раз, а он у вас в цикле включается и до его запуска так и не доходит.

И поменять CREATE_TIMER(0, 1000) на CREATE_TIMER(0, 10000), чтобы раз в 10 сек срабатывал, а не 1
3. Zireael - 10 Сентября, 2020 - 06:34:16 - перейти к сообщению
CODE:
enabletimer(0);

loop()
{
// тут какой-то код если надо
sleep (10);
}

CREATE_TIMER(0, 3000) // каждые 3 секунды выполнится этот блок
{
messagebox(112);
pause(1000);
messagebox(113);
}

Powered by ExBB FM 1.0 Final