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

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

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

> Описание: Кибор не может найти изображения
Kensi
Отправлено: 17 Октября, 2018 - 14:54:20
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




Работаю в визуальном редакторе. Набросал бота для игры, но кусок функции не работает. А именно та часть, которая отвечает за поиск изображения.

Суть алгоритма: в заданной области может появиться одно из 4х изображений. Изображения одинаковые по размеру, но с разным фоном. Функция должна проверить область на наличие одного из 4х изображений и если там нет ни одного из них, то нужно кликнуть на эту область, а если какое то из 4х есть, то пропустить эту область и перейти к поиску в другой.

Зоны поиска у меня находятся в 4х массивах. 2 массива координат на левую верхнюю точку, 2 массива координат на нижнюю правую. Всего зон поиска 15 штук. Поэтому в массивах у меня по 15 значений. Все 4 массива я объявил в стартовом блоке, как массивы типа int. Далее я создал блок когда, где прописал их:
CODE:

flagArrayTopX[0] = 813; flagArrayTopY[0] = 67;
flagArrayTopX[1] = 652; flagArrayTopY[1] = 257;
flagArrayTopX[2] = 976; flagArrayTopY[2] = 257;
flagArrayTopX[3] = 490; flagArrayTopY[3] = 439;
flagArrayTopX[4] = 814; flagArrayTopY[4] = 439;
flagArrayTopX[5] = 1136; flagArrayTopY[5] = 439;
flagArrayTopX[6] = 329; flagArrayTopY[6] = 623;
flagArrayTopX[7] = 651; flagArrayTopY[7] = 623;
flagArrayTopX[8] = 976; flagArrayTopY[8] = 623;
flagArrayTopX[9] = 1299; flagArrayTopY[9] = 623;
flagArrayTopX[10] = 167; flagArrayTopY[10] = 810;
flagArrayTopX[11] = 490; flagArrayTopY[11] = 810;
flagArrayTopX[12] = 814; flagArrayTopY[12] = 810;
flagArrayTopX[13] = 1137; flagArrayTopY[13] = 810;
flagArrayTopX[14] = 1461; flagArrayTopY[14] = 810;


flagArrayBottomX[0] = 1103; flagArrayBottomY[0] = 244;
flagArrayBottomX[1] = 944; flagArrayBottomY[1] = 433;
flagArrayBottomX[2] = 1265; flagArrayBottomY[2] = 433;
flagArrayBottomX[3] = 782; flagArrayBottomY[3] = 618;
flagArrayBottomX[4] = 1106 ; flagArrayBottomY[4] = 618;
flagArrayBottomX[5] = 1428; flagArrayBottomY[5] = 618;
flagArrayBottomX[6] = 620; flagArrayBottomY[6] = 805;
flagArrayBottomX[7] = 944; flagArrayBottomY[7] = 805;
flagArrayBottomX[8] = 1268; flagArrayBottomY[8] = 805;
flagArrayBottomX[9] = 1590; flagArrayBottomY[9] = 805;
flagArrayBottomX[10] = 456; flagArrayBottomY[10] = 990;
flagArrayBottomX[11] = 780; flagArrayBottomY[11] = 990;
flagArrayBottomX[12] = 1106; flagArrayBottomY[12] = 990;
flagArrayBottomX[13] = 1430; flagArrayBottomY[13] = 990;
flagArrayBottomX[14] = 1753; flagArrayBottomY[14] = 990;

Точность координат проверил и переписал дважды.

Блок схема функции:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Мессаджбоксы вывел для себя, чтобы найти убедиться в проблеме, вот как должно быть в готовом боте:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Что тут происходит: После начала функции, курсор мыши уводится в сторону, где точно не будет искомой картинки, чтобы не помешать поиску. Потом создаю индекс с нулевым значением, для того чтобы использовать его в поиске изображений. Далее в первой зоне поиска я ищу картинку, если ее там нет, ищу следующую и так до 4й картинки, если ни одна из 4х картинок не была найдена, нужно нажать на эту область. (координаты центров областей также в массивах), а если хоть одна из 4х картинок была найдена то, то нужно прекратить поиск и начать поиск в следующей области (делаю через i++).
Зоны поиска картинки для функции поиска обозначаю так:
CODE:
flagArrayTopX[i] flagArrayTopY[i] flagArrayBottomX[i] flagArrayBottomY[i]

На первой итерации i = 0, что соответствует первой зоне поиска, если я ничего не путаю)
Устанавливаю такие свойства функции:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Суть проблемы:
в том, что бот тупо игнорирует наличие картинки в области поиска. Касается всех 4х картинок, которые там могут появиться. Бот действует так, будто их нет и нажимает на текущую область, чего делать не нужно. В варианте с мессаджбоксами, где при нахождении картинки должно быть появиться соответствующее окно, сообщений не было. Думал, что проблема с координатами точек для области поиска и перепроверил их, немного увеличив зону поиска. Не помогло. При записи координат приложение, в котором будет работать бот, растягиваю на весь экран, так что смещений быть не может. Может быть проблема в логике. Да и клик по нужной области происходит верно на каждой итерации, значит дело точно не в координатах. Мне кажется, что блок схему мог составить неправильно, но как сделать "так, как нужно" не знаю.

Сделал сегодня тестовый вариант. Область поиска прописал конкретно в цифрах. Так же все 4 картинки в ней искались и должны были вывестись сообщения о нахождении какой либо из них. Нужная картинка нашлась и вывелось соответствующее сообщение.... После этого понимаю, что проблема на поверхности, но не могу понять в чем именно.

Надеюсь, ничего не забыл. Код бота и функции в отдельности не стал прикладывать, но если нужно кину. Помогите разобраться, плиз)
 
 Top
konctantin777
Отправлено: 17 Октября, 2018 - 15:00:25
Post Id



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


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




У блока логики вариант "нет" не увидел...
 
 Top
Kensi
Отправлено: 17 Октября, 2018 - 15:19:43
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




 konctantin777 пишет:
У блока логики вариант "нет" не увидел...


где увеличивается индекс? там вариант "нет" не нужен в моем случае. за 15 итераций функция 100% завершит свою работу. Или я чего то не понимаю?...

(Отредактировано автором: 17 Октября, 2018 - 15:20:03)

 
 Top
Kibor
Отправлено: 17 Октября, 2018 - 15:24:27
Post Id



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


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




Какие координаты?
Экранные, оконные, контрол? Как привязывался скрипт?
Короче проверяйте что бы координаты соответствовали.
 
 Top
konctantin777
Отправлено: 17 Октября, 2018 - 16:09:10
Post Id



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


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




 Kensi пишет:
 konctantin777 пишет:
У блока логики вариант "нет" не увидел...


где увеличивается индекс? там вариант "нет" не нужен в моем случае. за 15 итераций функция 100% завершит свою работу. Или я чего то не понимаю?...


Обычно предупреждает, что это ошибка и надо исправить..
 
 Top
Kibor
Отправлено: 17 Октября, 2018 - 16:25:20
Post Id



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


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




 konctantin777 пишет:
Обычно предупреждает, что это ошибка и надо исправить..

Это если нет связи прямой. А если нет при не выполнение условия, то не предупреждает. Скрипт корректный. Логика на совести программиста.
 
 Top
Kensi
Отправлено: 18 Октября, 2018 - 05:49:54
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




 Kibor пишет:
Какие координаты?
Экранные, оконные, контрол? Как привязывался скрипт?
Короче проверяйте что бы координаты соответствовали.



Приложение перед считыванием координат растягивал на весь экран (и тестирую бота так же, разрешение фул хд всегда, масштабируемость экрана поставил стандартную 100% (без увеличения), работаю в 10 винде.) Координаты считывал с такими настройками шпиона:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

В визуальном редакторе стоит "без привязки".

Сегодня изменил блок схему, чтобы перед сканированием области выводился messagebox с координатами. Написал так:
CODE:
messagebox(flagArrayTopX[i], flagArrayTopY[i], flagArrayBottomX[i], flagArrayBottomY[i]);

Измененная блок схема

При тесте появилось такое сообщение:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Координаты все совпадают с первой областью сканирования. Только не ясно почему ошибка.
 
 Top
Dantes3000
Отправлено: 18 Октября, 2018 - 10:02:31
Post Id



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


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




Kensi , messagebox(format(flagArrayTopX[i]), format(flagArrayTopY[i]), format(flagArrayBottomX[i]), format(flagArrayBottomY[i]));

messagebox() принимает string или одиночные переменные int.

Ну еще кучу чего принимает, в справке по этой функции достаточно куцо написано

(Отредактировано автором: 18 Октября, 2018 - 10:04:52)

 
 Top
Kensi
Отправлено: 18 Октября, 2018 - 11:32:58
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




 Dantes3000 пишет:
Kensi , messagebox(format(flagArrayTopX[i]), format(flagArrayTopY[i]), format(flagArrayBottomX[i]), format(flagArrayBottomY[i]));

messagebox() принимает string или одиночные переменные int.

Ну еще кучу чего принимает, в справке по этой функции достаточно куцо написано


Да бог с ним) messagebox() вывел, чтобы посмотреть какие там координаты точек будут, координаты верные, а картинки не ищутся... В визуальном редакторе при указании точек для функции поиска изображения можно ставить переменные, как в моем случае? я уже не знаю, в чем там может быть дело
 
 Top
Dantes3000
Отправлено: 18 Октября, 2018 - 12:22:47
Post Id



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


Покинул форум
Сообщений всего: 1480
Дата рег-ции: Июнь 2016  
Репутация: 58




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


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




Powered by