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

Страниц (6): « 1 2 [3] 4 5 6 »
 

21. legro0303 - 20 Июля, 2020 - 08:44:57 - перейти к сообщению
Проблема решена. По глупости не запускал Кибор от имени администратора.
Вариант товарища Zirael по нажатию с помощь кода, указанного ниже сработал
CODE:
// навести курсор на игру, ждать 3 секунды
win w;
int x, y;
pause (3000);
getmouse(x, y);
w=getwindow(0, x, y);

key(56,1,0,w); // нажать цифру 8
22. Zireael - 20 Июля, 2020 - 17:17:19 - перейти к сообщению
Можно и так:
CODE:
win w = window ("Program Manager", "Progman", -1); // указатель на окно (вписать нужное)
key(56,1,0,w); // нажать цифру 8
sleep(500);
key(84,1,0,w); // нажать t
23. legro0303 - 21 Июля, 2020 - 07:20:15 - перейти к сообщению
Добрый день, появился вопрос следующего характера:
Как в визуальном редакторе указать в настройках нажатий клавиш окно, в котором их необходимо нажимать ?
Тобишь
CODE:
key_(96, 1, "", 0, 0, 0);
сделать равным
CODE:
key(56,1,0,w);

В настройке нажатия клавиши ничего подобного не нашел
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
24. Zireael - 21 Июля, 2020 - 07:27:59 - перейти к сообщению
 Цитата:
Как в визуальном редакторе указать в настройках нажатий клавиш окно, в котором их необходимо нажимать ?

Поставить галку 'Фоновый режим' и выбрать нужное из списке.
Где-то было видео по визуальному редактору, в котором объяснено про привязку к окну.
25. legro0303 - 21 Июля, 2020 - 10:43:21 - перейти к сообщению
 Zireael пишет:
 Цитата:
Как в визуальном редакторе указать в настройках нажатий клавиш окно, в котором их необходимо нажимать ?

Поставить галку 'Фоновый режим' и выбрать нужное из списке.
Где-то было видео по визуальному редактору, в котором объяснено про привязку к окну.

Выбрал фоновый режим+привязку к окну, но действия не воспроизводятся(нет нажатий клавиш и т.д.)
В видеоуроках привязка к контроллу/указателю про окно что-то ничего не нашел. Подскажите, всё ли я правильно сделал ?


Нажмите для увеличения


Нажмите для увеличения
26. Kibor - 21 Июля, 2020 - 12:47:11 - перейти к сообщению
 legro0303 пишет:
Выбрал фоновый режим+привязку к окну, но действия не воспроизводятся(нет нажатий клавиш и т.д.)
В видеоуроках привязка к контроллу/указателю про окно что-то ничего не нашел. Подскажите, всё ли я правильно сделал ?


27. legro0303 - 21 Июля, 2020 - 13:28:20 - перейти к сообщению
 Kibor пишет:
 legro0303 пишет:
Выбрал фоновый режим+привязку к окну, но действия не воспроизводятся(нет нажатий клавиш и т.д.)
В видеоуроках привязка к контроллу/указателю про окно что-то ничего не нашел. Подскажите, всё ли я правильно сделал ?




А привязать нажатия клавиш к окну в фоновом режиме как то можно ?Если да, то как программа "поймет" какое окно использовать, если ей нельзя указать window ("Teoc", "GAME", -1)?
Что то я совсем запутался. Я попробовал через "Быстрое создание блок-схем" записать несколько нажатий клавиш перед этим окно с скриптом записи поместил прямо над окном игры и ничего не получилось(плюс судя по видео-уроку это будет работать не в фоновом режиме, а мне нужно в фоновом)

Проблема вот в чем:
Код с распознаванием текста на экране с такого
CODE:
readtext(NUM | MARK, #text_KIB, 8, -1, -1, -1, -1, -1, -1, 0, -1, 3, 62, 227, 81, -1);

изменяется на такой(в качестве последнего параметра переменная, необходимая для захвата окна я так понимаю) из за чего преобразование текста работает не правильно
CODE:
readtext(NUM | MARK, #text_KIB, 8, -1, -1, -1, -1, -1, -1, 0, -1, 1, 65, 234, 79, w_KIB);
28. Zireael - 21 Июля, 2020 - 17:23:16 - перейти к сообщению
 Цитата:
Выбрал фоновый режим

Не ставьте, sendkey же не работает.
 Цитата:
то как программа "поймет" какое окно использовать, если ей нельзя указать window ("Teoc", "GAME", -1)?

Выбрать 'Привязать к Указателю'. В свойствах блока Старт, в edit написать window("Teoc", "GAME", -1). Как на скрине.
 Цитата:
из за чего преобразование текста работает не правильно

Если делается привязка к окну, то координаты надо указывать оконные, а не экранные.
29. legro0303 - 22 Июля, 2020 - 02:12:25 - перейти к сообщению
 Zireael пишет:
 Цитата:
Выбрал фоновый режим

Не ставьте, sendkey же не работает.
 Цитата:
то как программа "поймет" какое окно использовать, если ей нельзя указать window ("Teoc", "GAME", -1)?

Выбрать 'Привязать к Указателю'. В свойствах блока Старт, в edit написать window("Teoc", "GAME", -1). Как на скрине.
 Цитата:
из за чего преобразование текста работает не правильно

Если делается привязка к окну, то координаты надо указывать оконные, а не экранные.

Спасибо за ответ, не совсем понял что нужно сделать, чтобы указать экранные координаты, а не оконные. При обучении распознавания текста выбрал "Экран"(Скриншот 1), научил распознавать цифры (Скриншот 2), загрузил распознавание в блок в визуальном редакторе (Скриншот 3), описал указатель и выбрал соответствующий пункт в привязке (Скриншот 4), зашел в быстрое создание блок-схем чтобы записать нажатие клавиш (Скриншот 5), получил нажатие клавиши (Скриншот 6). в итоге получаю не правильные координаты (Скриншот 7). Подскажите, на каком этапе я ошибся ?
CODE:
string text_KIB;
int color_text_KIB_6[2];
color_text_KIB_6[0]=16777215; color_text_KIB_6[1]=0;
loadsymbolbase("F:\Games\BOT\text\Новая база3.sib");
int size_key_char_KIB=-1;
double X,Y,Z
;
string result[3];
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;

start_();

readtext(NUM | MARK, #text_KIB, 8, -1, -1, -1, 16, #color_text_KIB_6[0], 1, 0, -1, sx_KIB+1, sy_KIB+63, sx_KIB+233, sy_KIB+80, -1);

regexreplace(-1, #text_KIB, text_KIB, "-", "");





if (regexsearch(sizearray(result), #result[0], text_KIB, "\d+(\.\d+)*")>0) goto m_KIB4;
else goto m_KIB5;
m_KIB4: X = formatsn(result[0]);
Y = formatsn(result[1]);
Z = formatsn(result[2]);



if (X>=999.523) goto m_KIB7;
m_KIB5: messagebox(X);messagebox("ошибка 1");
goto exit_KIB;
m_KIB7: key_(56, 1, "", 0, 0, 500);
exit_KIB:;


function start_()
{
pause(1000);
w_KIB=window("Teoc", "GAME", -1);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}


function key_(int k, int m, string text, int pc, int p1, int p2)
{
pause(p1);
if (m==-1)
{
if (size_key_char_KIB==-1)
{
size_key_char_KIB=100;
new char key_char_KIB[size_key_char_KIB+1];
}
int size_key=size(text);
if (size_key_char_KIB<size_key)
{
delete key_char_KIB;
size_key_char_KIB=size_key;
new char key_char_KIB[size_key_char_KIB+1];
}
strcpy(#key_char_KIB[0], text);
for (int n=0; n<size_key; n++){key(key_char_KIB[n]); sleep(pc);}
}
else
{
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
}
pause(p2);
}


Скриншот 1
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 2
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 3
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 4
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 5
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 6
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Скриншот 7
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
30. Kibor - 22 Июля, 2020 - 02:39:50 - перейти к сообщению
 legro0303 пишет:
что нужно сделать, чтобы указать экранные координаты, а не оконные

Все правильно. Вы и получаете экранные координаты, так как везде стоят галка Экран.
Но вам нужны не экранные, а оконные координаты. Вы же строите скрипт с привязкой к указателю. Значит все должно быть указано в оконных координатах. Зачем вам экранные? Он в экранных и распознает. Только в окне.. Короче получайте оконные координаты.

Powered by ExBB FM 1.0 Final