b4k88 |
Отправлено: 13 Сентября, 2017 - 14:52:26
|
Участник
Покинул форум
Сообщений всего: 51
Дата рег-ции: Авг. 2017
Откуда: Челябинск
Репутация: 0
|
Как сделать чтобы функция выполнялась определенное время? А то мне надо сделать чтобы скрипт искал картинки и клацал на них, если найдет, потом искал другие и проклацивал их, если найдет, потом опять проверял первый вариант, и потом уже переключался на следующую вкладку и проделывал то же самое, а потом еще на одну вкладку. (квесты короче запускать и собирать надо). Через визуальный редактор кода смог организовать максимум на две вкладки, на третью ваще хз как это сделать. нашел один выход - сделать зацикленную функцию на 1 вкладку, а потом по истечении секунд 30 чтобы переключалось на следующую и выполнялась та же функция так же секунд 30, и потом еще на одну так же секунд 30. жду экспертного мнения, надеюсь это не сильно сложно осуществить)) Спс заранее |
|
|
Dantes3000 |
Отправлено: 14 Сентября, 2017 - 00:55:08
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
CODE:fun(10000); //будет выполняться 10 сек
function fun(int t)
{
int k=gettime();
s:if(gettime()-k>t) return;
else
{
//тело функции
}
goto s;
}
(Добавление)
еще можно как-то через for
CODE:Пример как ожидать в цикле появление изображения на экране 5 секунд. Если изображения не появилось - выйти из цикла.
CODE:
for (int t=gettime(); gettime()-t<5000; sleep(20))
{
if (findimage(1, #Image[0][0], 0, #PosX, #PosY, 0, 0, 1366, 768, -1)==1)
{
messagebox ("нашлося...");
goto q;
}
}
messagebox ("не...");
q:; |
|
|
b4k88 |
Отправлено: 14 Сентября, 2017 - 17:08:37
|
Участник
Покинул форум
Сообщений всего: 51
Дата рег-ции: Авг. 2017
Откуда: Челябинск
Репутация: 0
|
Из разряда "что-то пошло не так"
CODE:int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[59][17];
int Image_1_KIB[52][14];
mouse(LEFT, 509, 565);
key('Q');
pause(2000);
mouse(LEFT, 518, 700);
pause(1000);
key('Z');
quest(30000);
mouse(LEFT, 521, 329);
quest(30000);
mouse(LEFT, 715, 325);
quest(30000);
mouse(LEFT, 807, 262);
pause(1000);
function quest(int t)
{
int k=gettime();
s:if(gettime()-k>t) return;
else
{
start_();
m_KIB2: if (findimage_(#Image_0_KIB[0][0], 1000, 1000, 0, 1, 5, 5, 0, -1, 0, 75, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB1;
else goto m_KIB3;
m_KIB1: sleep(1000); goto m_KIB2;
m_KIB3: if (findimage_(#Image_1_KIB[0][0], 1000, 1000, 0, 1, 5, 5, 0, -1, 0, 75, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB4;
else goto m_KIB5;
m_KIB5: sleep(1000); goto m_KIB2;
m_KIB4: sleep(1000);
}
goto s;
}
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 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, -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); pause(p3);}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
if (m==10){mousemove(xs+xKIB+xm, ys+yKIB+ym); pause(p3);}
return sumKIB;
}
function load_image_()
{
loadimage (#Image_0_KIB[0][0], "D:\Kibor\vikings\Êâåñòû\Çàáðàòü.bmp");
loadimage (#Image_1_KIB[0][0], "D:\Kibor\vikings\Êâåñòû\Íà÷àòü.bmp");
}
(Добавление)
Одиночная функция quest работает нормально, но когда добавляю все эти переходы, доходит до первой quest(30000); и дальше не двигается
(Добавление)
хах...а теперь начало выдавать ошибку в loadimage...
(Добавление)
в общем, когда без функции и дополнительных действий (тупо тело quest), то оно работает, в остальных случаях нет |
|
|
b4k88 |
Отправлено: 14 Сентября, 2017 - 22:34:12
|
Участник
Покинул форум
Сообщений всего: 51
Дата рег-ции: Авг. 2017
Откуда: Челябинск
Репутация: 0
|
Dantes3000 пишет: в чем сложно сделать точно так же как я показал?
Ну, я еще не разобрался в киборе), да и там, где ты сделал вверх, вниз и тд, мне надо тело функции впихнуть да?)
Я там еще косяк свой нашел, в общем, щас покажу что должно выполняться 30сек, а потом переходить на следующее...я еще нубас, не ругайся)(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
И как ты свойство функции открыл? (Отредактировано автором: 14 Сентября, 2017 - 22:34:42) |
|
|
|