Limbaugh |
Отправлено: 03 Мая, 2019 - 13:57:38
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Limbaugh пишет: Я почему то в параметрах распознания текста не могу выбрать цвет для текса, просто ничего не открывается и код цвета писать не могу
Все, понял )
(Добавление)
Zireael пишет: Цитата: в параметрах распознания текста не могу выбрать цвет для текса
Клик правой кнопкой по нужному пикселю, появится окно, в котором выбрать одно из двух: 'Добавить цвет текста' или 'Добавить цвет фона'.
Спасибо )
(Добавление)
Zireael пишет: Цитата: Как вообще сделать так же , как у вас на скрине, что бы он распознавал стрелки
Обучить базу для распознавания.
Видео в этой теме: Версия 5.27 Функция распознавания текста.
Я научил его распознавать стрелки, как буквы, как у тебя на скриншоте ) , влево стрелка - л правая - п низ - н и верх - в , как теперь сделать, что бы при распознании этих стрелок он нажимал на нужные стрелки на клавиатуре? |
|
|
Limbaugh |
Отправлено: 03 Мая, 2019 - 14:43:35
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: как теперь сделать, что бы при распознании этих стрелок он нажимал на нужные стрелки на клавиатуре?
http://kibor-bot.com/forum/topic...22544#1556822544
В этой строчке Я не пойму - string text_KIB="п л л н л н н л н"; // допустим распознанная строка (на скрине выше) , мне что в кавычках писать, там же каждый уровень разный порядок стрелок, и как сделать что бы он распознавал и записывал, а не самому 1 уровень записать как у тебя тут или Я что то не правильно понял?
(Добавление)
Вот код , который получился у меня, правильно ли все ?
CODE:string text_KIB;
int color_text_KIB_5[1];
color_text_KIB_5[0]=16777215;
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib");
pause(1000);
readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, 750, 787, 1171, 839, -1);
pause(1000);
string text_KIB=""; // допустим распознанная строка (на скрине выше)
func(text_KIB); // вызов функции
function func(string s)
{
regexreplace(-1, #s, s, "[^плнв]", ""); // удалить из строки всё кроме букв: плнв
new char c[size(s)+1];
strcpy(#c[0], s); // скопировать строку в массив
for(int i=0; i<size(s); i++) // для всех символов
{
if(c[i]=='п')key_(39, 1, "", 0, 0, 0); // вместо сообщения нажатие кнопки вправо
if(c[i]=='л')key_(37, 1, "", 0, 0, 0);
if(c[i]=='н')key_(40, 1, "", 0, 0, 0);
if(c[i]=='в')key_(38, 1, "", 0, 0, 0);
}
delete c;
} (Отредактировано автором: 03 Мая, 2019 - 14:57:10) |
|
|
Zireael |
Отправлено: 03 Мая, 2019 - 15:17:14
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
CODE:string text_KIB;
int color_text_KIB_5[1];
color_text_KIB_5[0]=16777215;
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib");
pause(1000);
readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, 750, 787, 1171, 839, -1);
pause(1000);
messagebox(text_KIB);
func(text_KIB); // вызов функции
function func(string s)
{
regexreplace(-1, #s, s, "[^плнв]", "" ); // удалить из строки всё кроме букв: плнв
new char c[size(s)+1];
strcpy(#c[0], s); // скопировать строку в массив
for(int i=0; i<size(s); i++) // для всех символов
{
if(c[i]=='п'){key(39); sleep(100); continue;}
if(c[i]=='л'){key(37); sleep(100); continue;}
if(c[i]=='н'){key(40); sleep(100); continue;}
if(c[i]=='в'){key(38); sleep(100); continue;}
}
delete c;
}
Ещё неплохо бы добавить проверку на корректность распознанных символов.(Отредактировано автором: 03 Мая, 2019 - 15:18:11) |
|
|
Limbaugh |
Отправлено: 03 Мая, 2019 - 15:48:27
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: CODE:string text_KIB;
int color_text_KIB_5[1];
color_text_KIB_5[0]=16777215;
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib");
pause(1000);
readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, 750, 787, 1171, 839, -1);
pause(1000);
messagebox(text_KIB);
func(text_KIB); // вызов функции
function func(string s)
{
regexreplace(-1, #s, s, "[^плнв]", "" ); // удалить из строки всё кроме букв: плнв
new char c[size(s)+1];
strcpy(#c[0], s); // скопировать строку в массив
for(int i=0; i<size(s); i++) // для всех символов
{
if(c[i]=='п'){key(39); sleep(100); continue;}
if(c[i]=='л'){key(37); sleep(100); continue;}
if(c[i]=='н'){key(40); sleep(100); continue;}
if(c[i]=='в'){key(38); sleep(100); continue;}
}
delete c;
}
Ещё неплохо бы добавить проверку на корректность распознанных символов.
Уууу спасибо большое тебе, хороший ты человек , как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ? |
|
|
Zireael |
Отправлено: 03 Мая, 2019 - 16:08:49
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ?
CODE:int script=0;
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Не работает", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Работает", 1);
sleep(10);
}
sleep(10);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
if(script)script=0;
else script=1;
}
}
(Добавление)
Лучше так:
CODE:CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
} |
|
|
Limbaugh |
Отправлено: 03 Мая, 2019 - 16:37:38
|
Участник
Покинул форум
Сообщений всего: 86
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: Цитата: как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ?
CODE:int script=0;
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Не работает", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Работает", 1);
sleep(10);
}
sleep(10);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
if(script)script=0;
else script=1;
}
}
(Добавление)
Лучше так:
CODE:CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
}
Спасибо ))
(Добавление)
Zireael пишет: Цитата: как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ?
CODE:int script=0;
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Не работает", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Работает", 1);
sleep(10);
}
sleep(10);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
if(script)script=0;
else script=1;
}
}
(Добавление)
Лучше так:
CODE:CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
}
Что бы Я без тебя делал
(Добавление)
Zireael пишет: Цитата: как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ?
CODE:int script=0;
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Не работает", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Работает", 1);
sleep(10);
}
sleep(10);
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
if(script)script=0;
else script=1;
}
}
(Добавление)
Лучше так:
CODE:CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
}
А как теперь сделать, что бы он постоянно искал и нажимал, а то он 1 раз находит и действия скрипта заканчивается как бы, и снова запускать нужно |
|
|
Zireael |
Отправлено: 03 Мая, 2019 - 18:36:32
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А как теперь сделать, что бы он постоянно искал и нажимал
Добавил проверку корректности распознанных символов:
code (Отобразить)CODE:int script=0;
string text_KIB;
int color_text_KIB_5[1]={16777215}
loadsymbolbase("C:\Users\Limbaugh\Desktop\Arrows.sib");
enabletimer(0);
loop()
{
textbkcolor (65280, 255);
textout(0, 300, 300, "Запуск/остановка скрипта Ctrl+Z", 1);
while(script)
{
textbkcolor (255, 65280);
textout(0, 300, 300, "Скрипт работает", 1);
readtext(RU, #text_KIB, 8, 1, -1, -1, -1, #color_text_KIB_5[0], 1, 5, -1, 750, 787, 1171, 839, -1);
textout(1, 300, 320, "Распознанный текст: "+text_KIB, 1);
func(text_KIB); // вызов функции, которая проверяет корректность символов и нажимает клавиши
sleep(10);
}
sleep(10);
}
function func(string s)
{
new char c[size(s)+1];
strcpy(#c[0], s); // скопировать строку в массив
for(int i=0; i<size(s); i++) // для всех символов
{
if(symbolcorrect(i)>0.7) // если корректность символа больше 0.7
{
if(c[i]=='п'){key(39); sleep(100); continue;}
if(c[i]=='л'){key(37); sleep(100); continue;}
if(c[i]=='н'){key(40); sleep(100); continue;}
if(c[i]=='в'){key(38); sleep(100); continue;}
}
}
delete c;
}
CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
while(getkeystate(CONTROL) && getkeystate(90))sleep(10);
if(script)script=0;
else script=1;
}
} |
|
|
Kibor |
Отправлено: 03 Мая, 2019 - 18:38:33
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Limbaugh пишет: как теперь сделать, что бы бот по нажатию определенных клавиш начинал работать и выключаться ?
Немного доделать надо код.
Что бы работал стабильнее и удобнее.
CODE:CREATE_TIMER(0, 30)
{
if(getkeystate(CONTROL) && getkeystate(90)) // Ctrl+Z включает/выключает
{
if(script)script=0;
else script=1;
while (getkeystate(CONTROL)==1 || getkeystate(90)==1)sleep(50);
}
} |
|
|
|