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

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

1. zebra hamaie - 05 Марта, 2014 - 10:59:37 - перейти к сообщению
Всем привет . Недавно стал читать форум и разные примеры запускать и параллельно писать маленького бота для любимой игры. Дошел до finddynamic (т.к. считаю , что findimage мне не подойдёт ) и оказался в тупике. Вообщем объясню на своих примерах и действиях, думаю так будет проще понять , что я хочу )))



пишу вот такой вот код :

CODE:

int color, xe, ye;
getdisplay(color, xe, ye);

sleep(1000);
win w=window ("bbbbbbbbbbbbbb.gif (764?319) - Google Chrome", "Chrome_WidgetWin_1", -1);



int x[20], y[20];
povtor: finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 0, 0, xe, ye, -1);
sleep(500);
int k=finddynamic(-1, #x[0], #y[0], 10, 10, 26, 31, 0, 0, xe, ye, -1);

int n=0;
ck: if (n<k)
{
mousemove(x[n]+5, y[n]+5);
sleep(1000);
n++;
goto ck;
}



указатель на окно стоить на вкладке браузера с закрепленным выше гифом.

finddynamic в моем примере ищет не совсем так как хотелось бы...
точность нахождения моба на локации очень безобразна.
сразу говорю , что эту статью я читал , но "не допонял" и поэтому решил написать здесь для помощи в разъяснении.

моб который нужно найти его размеры 52 на 63px.
как я понял в
CODE:
k=finddynamic(-1, #x[0], #y[0], 10, 10, 26, 31, 0, 0, xe, ye, -1);

6 и 7 параметр должны быть половинные размеры моего моба т.е. 26 и 31 (пусть будет) , но ни как не могу понять , что мне писать в 4 и 5-ый параметр.
Объясните пожалуйста люди добрые кому не лень... желательно на моем примере, для моего моба. Заранее спасибо.
2. zebra hamaie - 06 Марта, 2014 - 05:24:11 - перейти к сообщению
Обновил ссылки на локацию и на моба
3. serdg3amec - 10 Марта, 2014 - 00:53:29 - перейти к сообщению
тоже вопрос интересует про параметры 4-7 этой функции.

зы. чисто из описания статьи про поиск 3D объектов "Для идентификации объекта все пикселя входящие в перекресток ширины и высоты искомого объекта должны быть динамичными без пропусков", сделал вывод, что 4-5 это половины области моба, где есть участок с непрырываемыми красными (динам-и) пикселями (т.е. чтобы не было вкраплений черных, статических). в примере это как раз голова.
4. zebra hamaie - 10 Марта, 2014 - 02:40:40 - перейти к сообщению
Просто в моем случае анимация монстра достаточно быстра , и моб весь успевает закраситься в красное Смущён поэтому у меня возник вопрос как точнее 4,5 параметр указать ( т.к. (повторюсь) у меня весь моб красный ))
5. Kibor - 10 Марта, 2014 - 16:40:15 - перейти к сообщению
Это половинные размеры. Вообще подбирать эксперементально что бы реагировал толшько на моба и не реагировал на шум.
А вообще смотрите на findheapcolor . Может ее лучше?
6. zebra hamaie - 10 Марта, 2014 - 17:34:21 - перейти к сообщению
 Kibor пишет:
Это половинные размеры. Вообще подбирать эксперементально что бы реагировал толшько на моба и не реагировал на шум.
А вообще смотрите на findheapcolor . Может ее лучше?

Спасибо , понял. У меня на одной локе есть мобы (привидения) они появляются на 1 секундну и исчезают ( мерцают в общем) анимация у них такая. findheapcolor подошел бы если бы они не исчезали полность на эту секунду, если я правильно понял эту функцию . Так прийдется пока еще динамикой мучиться )
7. serdg3amec - 10 Марта, 2014 - 19:03:21 - перейти к сообщению
по finddynamic вроде разобрался. мобов ищет. теперь с findheapcolor хотелось бы разобраться А ты думал? - т.к. мобов не ищет ну воообще))

ну с простого.. :
 Цитата:
#color[0] указатель на массив int в котором находятся искомые цвета пикселей
#kol[0] указатель на массив int в котором находятся сколько каждого цвета должно быть пикселей для того что бы цвет совпавшим считался. Например в kol[0] находится количество для color[0]. в kol[1] находится количество для color[1].

не догоняю зависимость между kol[0] и color[0]. можно как барану на каком нибудь простом примере? Радость
8. Kibor - 10 Марта, 2014 - 19:06:40 - перейти к сообщению
 serdg3amec пишет:
не догоняю зависимость между kol[0] и color[0]
(для просмотра ссылки Вам необходимо авторизоваться) Тут пример и видео что к чему findheapcolor
9. serdg3amec - 10 Марта, 2014 - 19:34:11 - перейти к сообщению
 Цитата:
color[0]=2899273; color[1]=2899273; color[2]=791579;
kol[0]=3; kol[1]=3; kol[2]=3;
k=findheapcolor(50, #color[0], #kol[0], 3, 3, #x[0], #y[0], 10, 10, 100, 100, 0, 80, w.widthclient, w.heightclient-200, r, r, r, r, r, r, w);


т.е. если я правильно понял. есть искомый участок 20 на 20 пикселей (их половины будут как раз 10 и 10). и чтобы идентиф-ть каждый цвет в данном примере достаточно по 3 совпадающих пикселя из каждого из 3х цветов.. ну и с отклонением на +-7. все верно?

//блин, работал бы у меня вывод текста на экран можно было бы наглядно эксперементировать( надо за другим компом попробовать Кибор запустить.

Powered by ExBB FM 1.0 Final