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

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

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

> Описание: поиск определенного цвета в определенной области экрана
vegan
Отправлено: 30 Января, 2014 - 01:12:07
Post Id



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


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




Нужен скрипт для флеш-игры.
Задача простая:
Что бы прога искала в конкретном месте конкретный цвет и после этого просто нажимала кнопку. Эта самая область, с нужным цветом постоянно движется, и вот когда она заходит в определенное место на экране - нужно нажимать.

вот что я натворил:
сначала пытался использовать один пиксель нужного цвета
CODE:

int Image_3[1][1];
loadimage (#Image_3[0][0], "C:\green.bmp");
int PosX_3[512];int PosY_3[512];
gr:
if (findimage(-1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0],827, 768,864, 784, -1)==1);
{
sleep(10);
keydown('v');
sleep(3);
keyup('v');
};
goto gr;

но скрипт работал не корректно. Например нажимал на кнопку один раз, а два пропускал.


вот пример с использованием findheapcolor

CODE:

int r=5;
int color[3];
color[0]=7339603; color[1]=3535914; color[2]=7012169;
int kol[3];
kol[0]=10; kol[1]=10; kol[2]=10;
gr:
sleep(10);
if (findheapcolor(5, #color[0], #kol[0], 3, 2, #x[0], #y[0], 5, 5, 10, 10,814, 757,870, 782, r, r, r, r, r, r, -1))==1)
{
keydown('v');
sleep(5);
keyup('v');
};
goto gr;

Тут же наоборот - программа без остановки нажимала на кнопку, даже когда заданных цветов и близко не было на экране.
Так же пытался использовать функицю scanpixel, но мой не смог даже отличить белый от черного.

Прошу не сдерживаться и яростно критиковать мои попытки. Так же я был бы рад узнать какие я все таки совершил ошибки, и как их исправить. Если есть другие варианты решения моей задачи - предлогайте.
Добавлю что компьютер мощный и дело не в производительности
 
 Top
Kibor
Отправлено: 30 Января, 2014 - 01:38:36
Post Id



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


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




Первый:
 vegan пишет:
int Image_3[1][1];
loadimage (#Image_3[0][0], "C:\green.bmp");
int PosX_3[512];int PosY_3[512];
gr:
if (findimage(-1, #Image_3[0][0], 0, #PosX_3[0], #PosY_3[0],827, 768,864, 784, -1)==1);
{
sleep(10);
keydown('v');
sleep(3);
keyup('v');
};
goto gr;


Первый параметр -1 означает что будут найдены все изображения (пикселя тут) этого цвета. И функция вернет их количество. Сравнивается это с 1... Если будет 2 или больше то естественно не будет условие выполняться.
Выделенные точки с запятой не нужны...
Если надо найти только одно изображение не надо использовать массив для приема координат...
Что за пауза 3? Это милисекунды. В секунде их 1000...

CODE:

int Image_3[1][1];
loadimage (#Image_3[0][0], "C:\green.bmp");
int PosX_3, PosY_3;
gr:
if (findimage(1, #Image_3[0][0], 0, #PosX_3, #PosY_3,827, 768,864, 784, -1)==1)
{
sleep(10);
keydown('v');
sleep(50);
keyup('v');
}
goto gr;




Второй
 vegan пишет:
int r=5;
int color[3];
color[0]=7339603; color[1]=3535914; color[2]=7012169;
int kol[3];
kol[0]=10; kol[1]=10; kol[2]=10;
gr:
sleep(10);
if (findheapcolor(5, #color[0], #kol[0], 3, 2, #x[0], #y[0], 5, 5, 10, 10,814, 757,870, 782, r, r, r, r, r, r, -1))==1)
{
keydown('v');
sleep(5);
keyup('v');
}
goto gr;


Так же первый параметр 5... То есть ищется до 5. Сравнивается с 1. Если найдет более 1 то не выполнится.
Ошибка. Лишняя скобка. Из за нее не выполняется иф и жмется постоянно.

CODE:

int r=5;
int color[3];
color[0]=7339603; color[1]=3535914; color[2]=7012169;
int kol[3];
kol[0]=10; kol[1]=10; kol[2]=10;
gr:
sleep(20);
if (findheapcolor(1, #color[0], #kol[0], 3, 2, #x[0], #y[0], 5, 5, 10, 10,814, 757,870, 782, r, r, r, r, r, r, -1)==1)
{
keydown('v');
sleep(5);
keyup('v');
}
goto gr;
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by