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

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

1. Ivan111 - 30 Января, 2019 - 10:18:15 - перейти к сообщению
нужно чтобы бот после нахождения картинки ждал нажатия клавиши 1 или 2, и в зависимости от нажатой клавиши дальше выполнял 1й или 2й вариант. создаю бота только в визуальном редакторе, язык команд вообще не знаю. спасибо
2. Dantes3000 - 30 Января, 2019 - 10:36:11 - перейти к сообщению
После блока картинки создать блок кода и в нем написать:

CODE:
while(getkeystate(49)==0) sleep(100); //49 - код клавиши 1
while(getkeystate(49)==1) sleep(100);


После этого скрипт будет ждать нажатие клавиши 1
3. Ivan111 - 30 Января, 2019 - 10:47:20 - перейти к сообщению
огромное спасибо, все работает.
к сожалению я совсем тупой, как сделать так чтобы в зависимости от того, какая клавиша нажата (1 или 2) дальше выполнялся первый или второй вариант. программа должна ждать нажатия клавиши и дальше если нажата "1" то переместить мышь влево, а если "2" то вправо?
4. Zireael - 30 Января, 2019 - 10:51:48 - перейти к сообщению
CODE:
wait(); // вызов функции


function wait()
{
textbkcolor(255, 65280);
textout(0, 300, 300, "Нажмите клавишу 1 или 2", 1);

int x;
while(getkeystate(49)==0 && getkeystate(50)==0)sleep(1); // пока не нажата клавиша 1 или 2
if(getkeystate(49))x=1; // если нажата 1
else x=2; // иначе нажата 2
while(getkeystate(49) || getkeystate(50))sleep(1); // пока не отпустили клавишу

if(x==1)messagebox("Нажата 1"); // если нажата 1
else messagebox("Нажата 2"); // иначе 2
}
5. Ivan111 - 30 Января, 2019 - 10:59:47 - перейти к сообщению
большое спасибо за ответ. буду пробовать
6. Dantes3000 - 30 Января, 2019 - 11:14:13 - перейти к сообщению
Немного не так понял вопрос.

В отдельный блок кода в любом месте вставляем:
CODE:

function wait()
{
textbkcolor(255, 65280);
textout(0, 300, 300, "Нажмите клавишу 1 или 2", 1);
loop()
{
if(getkeystate(49)) {while(getkeystate(192)) sleep(10); resettextout(1); return 1;}
if(getkeystate(50)) {while(getkeystate(192)) sleep(10); resettextout(1); return 2;}
}
}



Теперь создаем блок логики, пишем внизу wait()==1
Если нажмем 1 - пойдет по черной линии, если 2, то по красной
7. Ivan111 - 30 Января, 2019 - 12:09:14 - перейти к сообщению
 Dantes3000 пишет:
Немного не так понял вопрос.

В отдельный блок кода в любом месте вставляем:
CODE:

function wait()
{
textbkcolor(255, 65280);
textout(0, 300, 300, "Нажмите клавишу 1 или 2", 1);
loop()
{
if(getkeystate(49)) {while(getkeystate(192)) sleep(10); resettextout(1); return 1;}
if(getkeystate(50)) {while(getkeystate(192)) sleep(10); resettextout(1); return 2;}
}
}



Теперь создаем блок логики, пишем внизу wait()==1
Если нажмем 1 - пойдет по черной линии, если 2, то по красной


огромное Вам спасибо, все отлично работает.
8. Zireael - 30 Января, 2019 - 12:12:19 - перейти к сообщению
 Цитата:
if(getkeystate(49)) {while(getkeystate(192))

Исправить 192 на 49.
9. Ivan111 - 30 Января, 2019 - 12:49:49 - перейти к сообщению
 Zireael пишет:
 Цитата:
if(getkeystate(49)) {while(getkeystate(192))

Исправить 192 на 49.


исправил, все работает.
а можно подробнее что на что я исправил? работало и до этого и сейчас
10. Zireael - 30 Января, 2019 - 12:56:52 - перейти к сообщению
 Цитата:
а можно подробнее что на что я исправил?

if проверяет что клавиша нажата. Потом while ждёт когда эта же клавиша будет отпущена. Без исправления проверяло не ту клавишу (192 это Ё), т. е. не работало ожидание отпускания клавиши.

Powered by ExBB FM 1.0 Final