Nicolazz92 |
Отправлено: 13 Октября, 2015 - 11:37:35
|
Прохожий
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2015
Репутация: 1
|
А вот если у меня есть два изображения https://yadi.sk/i/48wLdAqfjhST6 и https://yadi.sk/i/8UrAXBBqjhSTE , то есть один объект далеко, а другой близко. У обоих цветов не так много, доминируют чисто жёлтый и чисто красный. Объект с таким количеством красного или жёлтого цвета один посреди экрана, это почти наверняка. Как использовать функцию, чтобы найти этот объект? Я вроде понял, как по разным цветам искать, а если цвет один, его много, но он может идти или полоской, или квадратом. Неясно, какой формы, в общем. finddynamic использовать не хочу, объект ведь уже выделен. |
|
|
Kibor |
Отправлено: 13 Октября, 2015 - 12:07:46
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
1 или 50 не важно..
findheapcolor(сколько_ищем, #color[0], #kol[0], сколько_цветов, сколько_цветов_надо_минимум
findheapcolor(сколько_ищем, #color[0], #kol[0], 1, 1
CODE:int r=25;//Разбег
int x, y;
int color, kol;
color=255;//цвет
kol=25; //Тут сколько должно совпасть пикселей для цвета
if (findheapcolor(1, #color, #kol, 1, 1, #x, #y, ?, ?, ?, ?, ?, ?, ?, ?, r, r, r, r, r, r, -1)==1)
{
}
Цитата: int r=25;//Разбег
int x, y;
int color[2], kol[2];
color[0]=255; color[1]=8454143;//цвет
kol[0]=25; kol[1]=25; //Тут сколько должно совпасть пикселей для цвета
if (findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, ?, ?, ?, ?, ?, ?, ?, ?, r, r, r, r, r, r, -1)==1)
{
}
а это ищет сразу или красный или желтый.. 5 параметр 1 достаточно 1 цвет |
|
|
Nicolazz92 |
Отправлено: 13 Октября, 2015 - 12:42:17
|
Прохожий
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2015
Репутация: 1
|
Kibor пишет: 1 или 50 не важно..
findheapcolor(сколько_ищем, #color[0], #kol[0], сколько_цветов, сколько_цветов_надо_минимум
findheapcolor(сколько_ищем, #color[0], #kol[0], 1, 1
CODE:int r=25;//Разбег
int x, y;
int color, kol;
color=255;//цвет
kol=25; //Тут сколько должно совпасть пикселей для цвета
if (findheapcolor(1, #color, #kol, 1, 1, #x, #y, ?, ?, ?, ?, ?, ?, ?, ?, r, r, r, r, r, r, -1)==1)
{
}
Цитата: int r=25;//Разбег
int x, y;
int color[2], kol[2];
color[0]=255; color[1]=8454143;//цвет
kol[0]=25; kol[1]=25; //Тут сколько должно совпасть пикселей для цвета
if (findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, ?, ?, ?, ?, ?, ?, ?, ?, r, r, r, r, r, r, -1)==1)
{
}
а это ищет сразу или красный или желтый.. 5 параметр 1 достаточно 1 цвет
Я написал вот это:
Цитата: win w = window ("Àëëîäû Îíëàéí", "NIVAL_MMO_ENGINE", -1);
activate(w);
int cursAttack = 1265239513;
int color[2], kol[2];
color[0]=255;color[1]=65535;
kol[0]=4;kol[1]=4;
int x[1], y[1];
if(findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1)mousemove(x[0], y[0], w);
Выдаёт Цитата: findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1goto10
(Добавление)
добавил
int r = 25;
всё равно ошибка |
|
|
Nicolazz92 |
Отправлено: 13 Октября, 2015 - 14:26:54
|
Прохожий
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2015
Репутация: 1
|
Kibor пишет: весь код без кракозябров......
задача этого тестового кода - найти объект, окружённый красной или жёлтой рамками и навести на него мышку.
Цитата: win w = window ("Аллоды Онлайн", "NIVAL_MMO_ENGINE", -1);
activate(w);
//int cursAttack = 1265239513;
int r = 25;
int color[2], kol[2];
color[0]=255;color[1]=65535;
kol[0]=4;kol[1]=4;
int x[1], y[1];
if(findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1)mousemove(x[0], y[0], w);
(Добавление)
Nicolazz92 пишет: Kibor пишет: весь код без кракозябров......
задача этого тестового кода - найти объект, окружённый красной или жёлтой рамками и навести на него мышку.
Цитата: win w = window ("Аллоды Онлайн", "NIVAL_MMO_ENGINE", -1);
activate(w);
//int cursAttack = 1265239513;
int r = 25;
int color[2], kol[2];
color[0]=255;color[1]=65535;
kol[0]=4;kol[1]=4;
int x[1], y[1];
if(findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1)mousemove(x[0], y[0], w);
выдаёт findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1goto10 |
|
|
Kibor |
Отправлено: 13 Октября, 2015 - 16:39:44
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Nicolazz92 пишет: if(findheapcolor(1, #color[0], #kol[0], 2, 1, #x, #y, #x[0], #y[0], 15, 15, 0,0, 2, 34, 775, 523, r, r, r, r, r, r, w) == 1)mousemove(x[0], y[0], w);
уберите лишние эти параметры.. |
|
|
Nicolazz92 |
Отправлено: 14 Октября, 2015 - 10:42:40
|
Прохожий
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2015
Репутация: 1
|
Снова ошибка в функции findheapcolor(((
Цитата: int PosX_0[512];int PosY_0[512];
int mapTarTake[8][8];loadimage (#mapTarTake[0][0], "C:\allods_bots\ActiveWindFarmLut\mapTarTake.bmp");
win w = window ("Àëëîäû Îíëàéí", "NIVAL_MMO_ENGINE", -1);
activate(w);
sleep(rand(100,150));
key('m');
sleep(rand(700,1000));
if(findimage(-1, #mapTarTake[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 784, 562, w)>0)
{
sleep(rand(700,1000));
mousedbl(LEFT, PosX_0[0], PosY_0[0], 1, w);
sleep(rand(700,1000));
int x[1], y[1];
int color[2], kol[2];
color[0]=5258154; color[1]=6121436;
kol[0]=3; kol[1]=3;
r = 25;
onaway: if(findheapcolor(1, #color[0], #kol[0], 2, 1, #x[0], #y[0], 2, 2, 0, 0, 150, 126, 577, 379, r, r, r, r, r, r, w)>0)
{
goto onaway;
sleep(3000);
}
}
(Добавление)
И ещё, можно поподробнее, что r означает? |
|
|
Nicolazz92 |
Отправлено: 14 Октября, 2015 - 12:02:02
|
Прохожий
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2015
Репутация: 1
|
Цитата: findheapcolor(1, #color[0], #kol[0], 2, 1, #x[0], #y[0], 2, 2, 0, 0, 150, 126, 577, 379, r, r, r, r, r, r, w)
А ошибку найти сможете? Я вроде посмотрел, там все параметры на месте.
(Добавление)
Полный код в предыдущем сообщении
(Добавление)
Владимир, по ошибке в функции пока нет идей? Я со своей стороны ещё раз проверил, не нашёл(( |
|
|
Kibor |
Отправлено: 14 Октября, 2015 - 14:18:00
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Nicolazz92 пишет: А ошибку найти сможете? Я вроде посмотрел, там все параметры на месте.
???????????????????????????????????????
Kibor пишет: Nicolazz92 пишет:
r = 25;
int r=25;
вот она
не объявлен r |
|
|
|