007wan |
Отправлено: 25 Мая, 2019 - 12:05:32
|
Эксперт
Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Что подразумевается под все изображения? Нашлось, к примеру, 10 одинаковых картинок, прокликать по ним или искать 10 разных картинок и прокликать по тем что нашлись. Есть окно, в котором при открытии находится 4 кнопки "забрать", существует еще так же страницы для этих кнопок. Страниц может быть много, но в каждой странице по 4 кнопки. Как мне "забрать" всё?
(Добавление)
Причем количество страниц так же ограниченно визуально тоесть: скажем 10 страниц покажет визуально, а остальные скажем 50 будут скрыты или просто там будет "..."
(Добавление)
Где параметры поставлены в findinmage?в визуальном редакторе? там цифры.
параметры: ожидать изображение, пауза перед чем-то...
(Добавление)
Что-то подобие этмоу. Как сократить и сделать лучше код. используя что-то дополнительно и что ыб точно находил изображения, а то бывает не успевает Image3 находить.
Код (Отобразить)CODE:function Collect_Free_Gifts()
{
sleep(500);
if (findimage(1, #Image_1[0][0], -1, #Image_x[1], #Image_y[1], 0, 0, Game.widthclient, Game.heightclient, Game) > 0)
{
Add_Log("Обнаружена Image_1.bmp в координатах "+format(Image_x[1])+", "+format(Image_y[1]), 1, 1);
sendmouse(LEFT, Image_x[1]+30, Image_y[1]+60, Game);
metka:;
sleep(500);
if (findimage(1, #Image_3[0][0], -1, #Image_x[3], #Image_y[3], 0, 0, Game.widthclient, Game.heightclient, Game) > 0)
{
Add_Log("Обнаружена Image_3.bmp в координатах "+format(Image_x[3])+", "+format(Image_y[3]), 1, 1);
sendmouse(LEFT, Image_x[3]+25, Image_y[3]+25, Game);
goto metka;
}
}
else
{
sleep(500);
if (findimage(1, #Image_2[0][0], -1, #Image_x[2], #Image_y[2], 0, 0, Game.widthclient, Game.heightclient, Game) > 0)
{
Add_Log("Обнаружена Image_2.bmp в координатах "+format(Image_x[2])+", "+format(Image_y[2]), 1, 1);
Add_Log("Собраны все бесплатные подарки.", 1, 1);
}
else
{
Stop_Script("Не удается найти Image_2.bmp");
}
}
}
(Добавление)
И как предотвратить повторного поиска изображения? Тоесть он одну и ту же картинку находит несколько раз и получается, что одна картинка равна 2 или 3. и потом сложно со считать найденые, что вывести найденые подарки. |
|
|
Zireael |
Отправлено: 25 Мая, 2019 - 19:07:58
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Найти несколько одинаковых картинок и навести курсор на них (Отобразить)CODE:int Image_0[23][29]; // массив для картинки
int PosX[99], PosY[99]; // координаты для картинок
loadimage (#Image_0[0][0], "D:\Kibor2\Image_0.bmp");
int coord[4]={0, 0, 1920, 1080} // область поиска
int count=findimage(sizearray(PosX), #Image_0[0][0], -1, #PosX[0], #PosY[0], coord[0], coord[1], coord[2], coord[3], -1);
messagebox("Найдено изображений "+format(count));
if(count>0)
{
for(int i=0; i<count; i++) // для всех найденных изображений
{
mousemove(coord[0]+PosX[i], coord[1]+PosY[i]); // навести курсор
sleep(500);
}
}
|
|
|
007wan |
Отправлено: 26 Мая, 2019 - 09:54:54
|
Эксперт
Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael , Спасибо
(Добавление)
А как мне узнать из это функции куда вставлять координаты поиска?
CODE: if (findimage(1, #Image_3[0][0], -1, #Image_x[3], #Image_y[3], 0, 0, Game.widthclient, Game.heightclient, Game) > 0)
Просто те функции, которые не используются, они не пишутся. Как и где сюда вставить области поиска? и что означают 0 и 0 после #Image_y[3]?
(Добавление)
И что -1 означает
(Добавление)
Я читал в описании этой функции, но не могу сопоставить, т.к некоторые функции не используются.
(Добавление)
007wan пишет: Game.widthclient, Game.heightclient А, блин зона поиска это вот. Тогда что другое означает?
(Добавление)(для просмотра ссылки Вам необходимо авторизоваться)
Как искать картинку в красном прямоугольнике, если известно, что координаты этого прямоугольника в этом окне 205, 170 и 495, 355, но размер самого окна 1000 на 730. Что вычитать? а что забыл маленько
(Добавление)
Всё понял что такое 0 и 0
(Добавление)
007wan пишет: 0, 0, Game.widthclient, Game.heightclient
Game.widthclient - ширина клиента = 1000
...Аналогично, но 730.
0 и 0 начала поиска от левого верхнего края(начало и до конца 1000 и 730)
Что вычитать?
(Добавление)
Так верно?CODE:if (findimage(1, #Image_3[0][0], -1, #Image_x[3], #Image_y[3], 205, 170, Game.widthclient-495, Game.heightclient-355, Game) > 0)
(Добавление)
Да, то самое, опробовалCODE:sendmousemove(205, 170, Game);
messagebox(1);
sendmousemove(Game.widthclient-495, Game.heightclient-355, Game);
messagebox(2);
(Добавление)
А, не что-то не так... он кликает не туда |
|
|
|