Adomb |
Отправлено: 30 Июля, 2015 - 18:58:56
|
Мастер
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
|
Ну в коде, считай, тоже самое.
CODE:B(); // по ходу скрипта вызывает функцию B()
function B()
{
int t=gettime();
sendmouse(LEFT, 400, 594, as); //кликает
sleep(500);
mb:
sendmouse(LEFT, starpx-197, starpy, as); //кликает
sleep(500);
if (pd@()==1)return 1; //рисунок нашёлся - выход из функции, но на самом деле выхода нет и функция начинается сначала, происходит клик после int t=gettime(); , доходит ещё раз до этого места и только тогда прекращается.
if (gettime()-t<4000)goto mb; //если нет рисунка - опять кликает начиная с метки mb
return -1;
}
function pd@() //ищет рисунок
{
if(findimage(1, #pd[0][0], 0, #px, #py, mx-338, my1-140, mx+338, my1-85, 16, 16, 16, 16, 16, 16, 61, 1, as)==1) return 1;
return 0;
}
Когда выполняет функцию В() и рисунок находится, функция не прекращается, хотя должна, если код фунции я правильно составил, а начинается сначала и выполняется ещё раз. Так ведь не должно быть. А по моим примерам выше разве не видно, что не правильно функция обрабатывается?
Микрофоноа нет под рукой, со скайпом позже. (Отредактировано автором: 30 Июля, 2015 - 19:01:57) |
|
|
Kibor |
Отправлено: 30 Июля, 2015 - 19:17:31
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Adomb пишет: А по моим примерам выше разве не видно, что не правильно функция обрабатывается?
Твой код..
Цитата: if (B()==-1) {messagebox ("бла..бла..");goto er;}
B();
========================
int b=B(); //добавили переменную
if (B()==-1) {messagebox ("бла..бла..");goto er;}
B();
Твои вопросы
так тоже 2 раза функцию обрабатывает.
то вообще три раза срабатывает. Я не могу понять.
не видно.
CODE:B(); // по ходу скрипта вызывает функцию B()
function B()
{
int t=gettime();
sendmouse(LEFT, 400, 594, as); //кликает
sleep(500);
mb:
sendmouse(LEFT, starpx-197, starpy, as); //кликает
sleep(500);
if (pd@()==1)return 1; //рисунок нашёлся - выход из функции, но на самом деле выхода нет и функция начинается сначала, происходит клик после int t=gettime(); , доходит ещё раз до этого места и только тогда прекращается.
if (gettime()-t<4000)goto mb; //если нет рисунка - опять кликает начиная с метки mb
return -1;
}
function pd@() //ищет рисунок
{
if(findimage(1, #pd[0][0], 0, #px, #py, mx-338, my1-140, mx+338, my1-85, 16, 16, 16, 16, 16, 16, 61, 1, as)==1) return 1;
return 0;
}
ОСОБЫХ проблем не вижу.. |
|
|
Adomb |
Отправлено: 30 Июля, 2015 - 19:34:25
|
Мастер
Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015
Репутация: 1
|
Всё, надо побольше спать, поменьше работать.
CODE:int a=1;
if (B()==-1) {messagebox ("бла..бла..");goto er;} // здесь я в упор не понимал, что вызываю функцию первый раз!!!!
B(); //а здесь во второй!!!
function B()
{
beep(2500, 1000); // какое-нидь действие
sleep(500);
mb:
beep(2500, 400); //действие, которое зацикливается, если a не равно 1
sleep(500);
if (a==1)return 1;
if (a!=1)goto mb;
return -1;
}
Меня замкнуло, что if (B()==-1) {messagebox....} просто выведет мне сообщение об ошибке. Ваабще замкнуло. Прошу прощения, что заморочил вам голову.(Отредактировано автором: 30 Июля, 2015 - 19:35:09) |
|
|
|