Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
konctantin777
Отправлено: 30 Апреля, 2023 - 16:06:58
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Здравствуйте.
В игре появляется табличка со словами "да" и "отмена". Могут быть в разных местах экрана + меняется справа или слева.
Найти факт наличия слова "да" можно. А как найти его координаты ? Между буквами пробелы- их удаляю.
CODE:
//ищем факт наличия текста
string SPade = "qwe нужный текст zzz";
string s;
regexsearch(1, #s, SPade, "нужный текст");
messagebox (s);
 
 Top
Zireael
Отправлено: 30 Апреля, 2023 - 16:18:03
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А как найти его координаты ?

Позицию в строке? regexstart - Узнает стартовую позицию найденного фрагмента.
 Цитата:
Между буквами пробелы- их удаляю.

В приведённом коде этого нет.
 
 Top
konctantin777
Отправлено: 30 Апреля, 2023 - 16:20:32
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




CODE:
if (regexsearch(1, #text_KIB2, text_KIB, "да")) // если слово найдено
{
regexstart(#Pos_start); // узнали позицию первого символа
mouse(LEFT, symbolxpos(Pos_start)+325, 135+symbolypos(Pos_start)); // добавить начальные координаты из readtext
pause(500);
}


вот так не получается. Похоже неправильно...
 
 Top
Zireael
Отправлено: 30 Апреля, 2023 - 16:43:18
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




Если сначала удаляются пробелы, то это надо учитывать.
 
 Top
konctantin777
Отправлено: 30 Апреля, 2023 - 16:47:28
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




И только с "д" не получается...
CODE:
int i=0;
string s="переменная";
string Text_S="переменная да";

messagebox(Text_S);

if (regexsearch(1, #s, Text_S, "д")) // если слово найдено
{
messagebox("Нашли слово");
regexstart(#i); // узнали позицию первого символа
mouse(LEFT, symbolxpos(i), symbolypos(i)); // добавить начальные координаты из readtext
pause(500);
}

(Отредактировано автором: 30 Апреля, 2023 - 16:48:45)

 
 Top
Kibor
Отправлено: 30 Апреля, 2023 - 19:32:02
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 konctantin777 пишет:
А как найти его координаты ? Между буквами пробелы- их удаляю.


В Виз редакторе при установке галки Удалить пробелы текст получаем без пробелов, но координаты в переменных букв сохраняются. Их можно использовать в блоке mouse
X_S[10] Y_S[10] наведет на корректную координату символа. С учетом реальных пробелов.
 
 Top
konctantin777
Отправлено: 30 Апреля, 2023 - 19:37:00
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Убрал убирание пробелов- заработало- спасибо )
 Zireael пишет:
Если сначала удаляются пробелы, то это надо учитывать.

Теперь понял )
 
 Top
Kibor
Отправлено: 30 Апреля, 2023 - 19:42:53
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 konctantin777 пишет:
Убрал убирание пробелов- заработало- спасибо )

Если ставите галку Убирать пробелы, все равно будет наводиться на нужный символ.
Но... Любой пробел или группа пробелов считается за один символ.
То есть в тексте
а        н о  шен К н ш щщщ у й р к щ ц з ь
несмотря на разное количество пробелов
К будет по координатам X_S[10] Y_S[10], так как X_S[0] Y_S[0] первый символ.

ps
Я наверно не правильно описал в настройках эту опцию.
Она удаляет пробелы в самом тексте, но для координат ВСЕ ЛИШНИЕ пробелы приводятся всегда к одному.
То есть любой большой промежуток приводится к одному пробелу. Оставляя единичные пробелы. И каждый пробел в результате, это символ.
 
 Top
Zireael
Отправлено: 30 Апреля, 2023 - 20:06:26
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




Но, удаление пробела не приводит к удалению элемента из symbolxpos, что и приводит к тому что не туда наводит.
 
 Top
Kibor
Отправлено: 30 Апреля, 2023 - 20:12:10
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Zireael пишет:
Но, удаление пробела не приводит к удалению элемента из symbolxpos, что и приводит к тому что не туда наводит.

В виз редакторе наводит на корректный символ.
Каждый промежуток считается за один символ. Даже если он имеет несколько пробелов.
Проверьте на той строчке.
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by