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

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

1. Andrew - 26 Июля, 2013 - 19:08:25 - перейти к сообщению
Здравствуйте, мне нужно что бы это действие продолжалось до тех пор, пока я не нажму Контрол+Шифт+Z
CODE:
mouse(LEFT,621, 330);
sleep(13000);
mouse(LEFT,439, 150);
sleep(3500);
mouse(LEFT,713, 176);
sleep(3000);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(1000);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
sleep(1000);

// Îáðàòíî âîçâðàùàåìñÿ

mouse(LEFT,768, 599);
sleep(3000);
mouse(LEFT,826, 568);
sleep(3000);
mouse(LEFT,837, 479);
sleep(13000);

Подскажите как можно просто её зациклить.
Заранее спасибо Улыбка
2. Kibor - 26 Июля, 2013 - 19:32:26 - перейти к сообщению
CODE:
a: mouse(LEFT,621, 330);
sleep(13000);
mouse(LEFT,439, 150);
sleep(3500);
mouse(LEFT,713, 176);
sleep(3000);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(1000);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
sleep(1000);

// Îáðàòíî âîçâðàùàåìñÿ

mouse(LEFT,768, 599);
sleep(3000);
mouse(LEFT,826, 568);
sleep(3000);
mouse(LEFT,837, 479);
sleep(13000);
goto a;


Тут есть одно НО...
Циклы сна очень длинные, во время сна программа не ответит на CTRL+SHIFT+Z, поэтому их над разбить на более короткие. К примеру цикл
sleep(13000);
реализовать так:
int q=0;
s: if (q<130){q++; sleep(100); goto s;}

Или использовать функцию gettime: как узнать время с момента запуска системы

PS
 Andrew пишет:
keydown(CONTROL);

а где отпускание кнопки?
3. Andrew - 26 Июля, 2013 - 19:36:42 - перейти к сообщению
Kibor , Тоесть получается он просто будет мне ходить до тех пок, пока,например, я не сниму через диспетчер задач задачу "Кибор"?
(Добавление)
 Kibor пишет:
а где отпускание кнопки?

Да я про нее забыл, и у меня в браузере постоянно все с новой вкладки открывалось, исправил все:
CODE:
win w=window ("Drakensang Online: браузерная онлайн-игра в стиле фэнтези", "QWidget", -1);
sleep(1000);
activate(w);
sleep(1000);

//mousemove();
//key("");
//mouse(LEFT,);

a: mouse(LEFT,581, 226);
sleep(11000);
mouse(LEFT,439, 150);
sleep(3000);
mouse(LEFT,713, 176);
sleep(3000);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(700);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
keyup(CONTROL);
sleep(1000); // Обратно возвращаемся
mouse(LEFT,768, 599);
sleep(3000);
mouse(LEFT,826, 568);
sleep(3000);
mouse(LEFT,837, 479);
sleep(11000); goto a; // Продолжительность круга 45 секунд
4. Kibor - 26 Июля, 2013 - 19:39:59 - перейти к сообщению
 Andrew пишет:
Тоесть получается он просто будет мне ходить до тех пок, пока,например, я не сниму через диспетчер задач задачу "Кибор"?

нет. просто надо будет держать CTRL+SHIFT+Z пока не кончится команда sleep, а так как она тут длится 13 секунд то это не красиво. Если разбить ее как я написал то сразу станет при нажатие остановки.
Через диспетчер не надо в любом случае останавливать...
5. Andrew - 26 Июля, 2013 - 19:44:24 - перейти к сообщению
Вот так получилось:
CODE:
a:
mouse(LEFT,581, 226);
int q=0;
s: if (q<110){q++; sleep(100); goto s;}
mouse(LEFT,439, 150);
sleep(3000);
mouse(LEFT,713, 176);
sleep(3000);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(700);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
keyup(CONTROL);
sleep(1000); // Обратно возвращаемся
mouse(LEFT,768, 599);
sleep(3000);
mouse(LEFT,826, 568);
sleep(3000);
mouse(LEFT,837, 479);
int q=0;
s: if (q<110){q++; sleep(100); goto s;}
goto a;
6. Kibor - 26 Июля, 2013 - 19:48:06 - перейти к сообщению
Ошибка. Объявлено 2 переменные q.
Ошибка. Присутствуют 2 метки s.

int q можно вообще в начале скрипта объявить:
CODE:

int q;


a:
mouse(LEFT,581, 226);
q=0; s: if (q<110){q++; sleep(100); goto s;}
mouse(LEFT,439, 150);
sleep(3000);
mouse(LEFT,713, 176);
sleep(3000);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(700);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
keyup(CONTROL);
sleep(1000); // Обратно возвращаемся
mouse(LEFT,768, 599);
sleep(3000);
mouse(LEFT,826, 568);
sleep(3000);
mouse(LEFT,837, 479);
q=0; s1: if (q<110){q++; sleep(100); goto s1;}
goto a;


а можно вообще так:
CODE:
a:
mouse(LEFT,581, 226);
payza(110);
mouse(LEFT,439, 150);
payza(30);
mouse(LEFT,713, 176);
payza(30);
mousemove(680, 335);
sleep(1000);
keydown(CONTROL);
sleep(700);
mouse(LEFT,694, 307);
sleep(700);
mouse(LEFT,694, 307);
keyup(CONTROL);
sleep(1000); // Обратно возвращаемся
mouse(LEFT,768, 599);
payza(30);
mouse(LEFT,826, 568);
payza(30);
mouse(LEFT,837, 479);
payza(110);
goto a;



function payza(int n);
{
int q=0; s1: if (q<n){q++; sleep(100); goto s1;}
}
7. Andrew - 26 Июля, 2013 - 20:01:10 - перейти к сообщению
Kibor , Спасибо Вам огромное Закатив глазки !
Второй скрипт работает на УРА, ходит, фармит, а главное выключается по нажатию трех кнопок Радость
В общем, ещё раз большое Вам спасибо за программу и за помощь!
8. Kibor - 26 Июля, 2013 - 20:03:45 - перейти к сообщению
Пожалуйста. Обращайтесь Улыбка
Все таки добили скрипт? Улыбка
Кстати теперь можно искать картинки по неполному совпадению. Чего не хватало в тот раз.
9. Andrew - 26 Июля, 2013 - 20:06:10 - перейти к сообщению
 Kibor пишет:
Все таки добили скрипт?

Да Радость
Скрипт заходит в локацию, доходит до руды, собирает её, выходит из локации (Локация при выходе обновляется), а потом все сначала - заходит, собирает, выходит - Все круто Ха-ха

Powered by ExBB FM 1.0 Final