Как создать свой сайт

анализ экрана. поиск нестандартных объектов.

Скачать Кибор

О программе Кибор

Описание языка Кибор
Переменные

Операции с переменными
Логика и переходы
Указатели
Функции

Список функций
Индификация окон и контролов

Управление окнами

Клавиатура

Мышь
Контролы
Работа с изображением
Сканирование экрана и поиск изображений
Поиск 3Д моделей в играх
Определение цвета пикселя
Система
Вывод сообщений
Вспомогательные

Интерфейс программы
Текстовый редактор

Контролы управления

Визуальные инструменты Кибор

Шпион получающий информацию о окнах, контролах, координатах мыши и цвете экрана

Сканер графического интерфейса

Демонстрационные примеры
Бот для игры в пасьянс Косынка
Бот для Warspear Online

Список демонстрационных примеров...

Поиск 3Д моделей.

При поиске изображений на экране часто возникают ситуации в которых невозможно указать искомое изображение в .bmp файле. В частности это касается 3Д игр, так как 3Д модели не имеют определенной формы и их изображение зависит от угла взгляда, масштаба, анимации и т.д.

Подобные Кибору программы в этом случае бывают бессильны произвести поиск таких объектов. В Кибор эта проблема решена вводом специальной функции finddynamic.
Эта функция позволяет анализировать изображение на экране и возвращать координаты динамичных объектов, примерные размеры и форма которых описаны с помощью параметров этой функции. finddynamic отлично подходит для поиска 3Д моделей в 3Д играх и отсеивать неинтересующий мусор - ландшафт, лут, растительность и т.д.
Примером применения этой функции может служить скрипт бота для 3Д игры RF Online.

На этом скрине показано как эта функция видит анимированных 3Д мобов в игре:
3Д Мобы 

Синтаксис:
finddynamic принимает 12 параметров.
finddynamic(21, #x[0], #y[0], ширина_искомого_места, высота_искомого_места, объем_искомого_объекта_X, объем_искомого_объекта_Y, Старт_поиск_X, Старт_поиск_Y, Финиш_поиск_X, Финиш_поиск_Y, указатель_на_окно);

Обозначение:
1.) Если -1 - искать все объекты сколько есть, если больше 0 - искать указанное количество и завершать поиск. Про 0 читайте дальше..
2.) 3.) Указатели на одномерные int масивы, в которые записываются координаты центров искомых мест.
4.) 5.) Половинные размеры искомых мест в объектах. Все пикселя должны быть определены как динамичноменяющиеся. См. рис. ниже.
6.) 7.) Половинные размеры объемов по X Y, в которых при нахождение искомого места не будет производиться дополнительный поиск. См. рис. ниже
8.) 9.) Левый верхний угол старта поиска в клиентских координатах окна.
10.) 11.) Правый нижний угол финиша поиска в клиентских координатах окна.
12.) Указатель на окно.

Объяснение параметров см. на рисунке:
поиск 3Д мобов в игре 

Для идентификации объекта все пикселя входящие в перекресток ширины и высоты искомого объекта должны быть динамичными без пропусков. На скрине они имеют красную подсветку. Центр перекрестия является координатами объекта. Он так же центр объема, в котором больше не будет искаться никакой объект. То есть даже при наличие не одного такого перекрестия данный объект будет иметь только одни координаты. Для наглядного подбора размеров следует установить в игре желаемую позицию персонажа и камеры, навести мышь на окно с игрой, нажать CTRL+SHIFT+S и воспользоваться встроенным графическим редактором. Функция возвращает количество найденых объектов. В случае ошибки -1 - масив X меньше количества найденых объектов, -2 - масив Y меньше количества найденых объектов.

Использование finddynamic:
Использовать за 2 прохода. Первый вызов с первым параметром 0:
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, Старт_поиск_X, Старт_поиск_Y, Финиш_поиск_X, Финиш_поиск_Y, указатель_на_окно);//Сохраняем изображение экрана
sleep(пауза);// пауза для обновления анимированного изображения в игре.
finddynamic(21, #x[0], #y[0], ширина_искомого_места, высота_искомого_места, объем_искомого_объекта_X, объем_искомого_объекта_Y, Старт_поиск_X, Старт_поиск_Y, Финиш_поиск_X, Финиш_поиск_Y, указатель_на_окно);//сравниваем с сохраненным изображением и ищем изменившиеся объекты, записывая их координаты.