1. b4k88 - 13 Сентября, 2017 - 06:52:26 - перейти к сообщению
Как сделать чтобы функция выполнялась определенное время? А то мне надо сделать чтобы скрипт искал картинки и клацал на них, если найдет, потом искал другие и проклацивал их, если найдет, потом опять проверял первый вариант, и потом уже переключался на следующую вкладку и проделывал то же самое, а потом еще на одну вкладку. (квесты короче запускать и собирать надо). Через визуальный редактор кода смог организовать максимум на две вкладки, на третью ваще хз как это сделать. нашел один выход - сделать зацикленную функцию на 1 вкладку, а потом по истечении секунд 30 чтобы переключалось на следующую и выполнялась та же функция так же секунд 30, и потом еще на одну так же секунд 30. жду экспертного мнения, надеюсь это не сильно сложно осуществить)) Спс заранее
2. Dantes3000 - 13 Сентября, 2017 - 10:35:11 - перейти к сообщению
не очень понятно ты обьяснил. Напиши каждое действие по пунктам
3. b4k88 - 13 Сентября, 2017 - 16:28:18 - перейти к сообщению
ок, сокращу до смысла). имеется зацикленная функция. хочу чтобы она выполнялась только определенное время.
4. Dantes3000 - 13 Сентября, 2017 - 16:55:08 - перейти к сообщению
CODE:
fun(10000); //будет выполняться 10 сек
function fun(int t)
{
int k=gettime();
s:if(gettime()-k>t) return;
else
{
//тело функции
}
goto s;
}
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:;
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:;
5. b4k88 - 14 Сентября, 2017 - 09:08:37 - перейти к сообщению
Из разряда "что-то пошло не так"
(Добавление)
Одиночная функция quest работает нормально, но когда добавляю все эти переходы, доходит до первой quest(30000); и дальше не двигается
(Добавление)
хах...а теперь начало выдавать ошибку в loadimage...
(Добавление)
в общем, когда без функции и дополнительных действий (тупо тело quest), то оно работает, в остальных случаях нет
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");
}
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), то оно работает, в остальных случаях нет
6. Dantes3000 - 14 Сентября, 2017 - 11:31:37 - перейти к сообщению
7. b4k88 - 14 Сентября, 2017 - 12:45:37 - перейти к сообщению
8. Dantes3000 - 14 Сентября, 2017 - 14:20:47 - перейти к сообщению
в чем сложно сделать точно так же как я показал?
9. b4k88 - 14 Сентября, 2017 - 14:34:12 - перейти к сообщению
Dantes3000 пишет:
в чем сложно сделать точно так же как я показал?
Ну, я еще не разобрался в киборе), да и там, где ты сделал вверх, вниз и тд, мне надо тело функции впихнуть да?)
Я там еще косяк свой нашел, в общем, щас покажу что должно выполняться 30сек, а потом переходить на следующее...я еще нубас, не ругайся)(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
И как ты свойство функции открыл?
10. Dantes3000 - 14 Сентября, 2017 - 14:57:27 - перейти к сообщению
Давай ты почитаешь форум, справочку, посмотришь видео....а потом сюда еще раз придёшь? Не буду же я тебе всё-всё обьяснять