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

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

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

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

В приведённом коде этого нет.
3. konctantin777 - 30 Апреля, 2023 - 08:20:32 - перейти к сообщению
CODE:
if (regexsearch(1, #text_KIB2, text_KIB, "да")) // если слово найдено
{
regexstart(#Pos_start); // узнали позицию первого символа
mouse(LEFT, symbolxpos(Pos_start)+325, 135+symbolypos(Pos_start)); // добавить начальные координаты из readtext
pause(500);
}


вот так не получается. Похоже неправильно...
4. Zireael - 30 Апреля, 2023 - 08:43:18 - перейти к сообщению
Если сначала удаляются пробелы, то это надо учитывать.
5. konctantin777 - 30 Апреля, 2023 - 08:47:28 - перейти к сообщению
И только с "д" не получается...
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);
}
6. Kibor - 30 Апреля, 2023 - 11:32:02 - перейти к сообщению
 konctantin777 пишет:
А как найти его координаты ? Между буквами пробелы- их удаляю.


В Виз редакторе при установке галки Удалить пробелы текст получаем без пробелов, но координаты в переменных букв сохраняются. Их можно использовать в блоке mouse
X_S[10] Y_S[10] наведет на корректную координату символа. С учетом реальных пробелов.
7. konctantin777 - 30 Апреля, 2023 - 11:37:00 - перейти к сообщению
Убрал убирание пробелов- заработало- спасибо )
 Zireael пишет:
Если сначала удаляются пробелы, то это надо учитывать.

Теперь понял )
8. Kibor - 30 Апреля, 2023 - 11:42:53 - перейти к сообщению
 konctantin777 пишет:
Убрал убирание пробелов- заработало- спасибо )

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

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

В виз редакторе наводит на корректный символ.
Каждый промежуток считается за один символ. Даже если он имеет несколько пробелов.
Проверьте на той строчке.

Powered by ExBB FM 1.0 Final