sakr1dd |
Отправлено: 07 Октября, 2013 - 18:06:37
|
Наблюдатель
Покинул форум
Сообщений всего: 27
Дата рег-ции: Окт. 2013
Репутация: 0
|
Ок спасибо
(Добавление)
У меня снова вопрос,я уже и читал и смотрел но оно не работает... Помните то окошко синее/зеленое. так вот,я нашел способ проще сделать все,но у меня не выходит,в общем теперь мне не нужно нажимать на стрелку т.к. можно просто нажимать правой кнопкой на это зеленое либо синее окошко,если есть одно зеленое,оно нажимает на одно зеленое,если есть зеленое и синее,так же клацает на зеленое,если есть 2 синих,никуда не нажимает
такой вот код я пытался сделать
CODE:
int Image_4[40][40];//Зеленая рамка
int PosX_4,PosY_4;
loadimage (#Image_4[0][0],"C:\Prog\A5.bmp");
int Image_5[40][40];//Синяя рамка
int PosX_5,PosY_5;
loadimage (#Image_5[0][0],"C:\Prog\A6.bmp");
if(findimage(1,#Image_4[0][0],255,#PosX_4,#PosY_4,0,0,1366,728,-1)==1)
{
mousemove(PosX_4+20,PosY_4+20);
mouse(RIGHT);
}
else
{
if(findimage(1,#Image_5[0][0],255,#PosX_5,#PosY_5,0,0,1366,728,-1)==1)
{
mousemove(PosX_5+20,PosY_5+20);
mouse(RIGHT);
}
(Добавление)
Я так понял что программа просто думает след. образом:
CODE:
if(findimage(1,#Image_4[0][0],255,#PosX_4,#PosY_4,0,0,1366,728,-1)==1)
{
mousemove(PosX_4+20,PosY_4+20);
mouse(RIGHT);
}
Если нахождение картинки ==1 истинно,двигать мышу в позиции левого угла картинки,смещать на половину пикселей и нажимать правую кнопку
CODE:
else
{
if(findimage(1,#Image_5[0][0],255,#PosX_5,#PosY_5,0,0,1366,728,-1)==1)
{
mousemove(PosX_5+20,PosY_5+20);
mouse(RIGHT);
}
}
Если картинку зеленую не нашло,переходим к след. действию и снова условие,но на практике с этим полным кодом было так,когда была зеленая и синяя картинка,почему-то действие переходило в элс и мне кликало по синей... |
|
|
Kibor |
Отправлено: 07 Октября, 2013 - 20:12:18
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Вот аналогично но наглядно
CODE:if(2==5)
{
messagebox("1");
}
else
{
if(2==2)
{
messagebox("5");
}
}
Подставляйте и смотрите.
Идея верная. Проблема быстрее всего в поиске картинок.
Проверяйте так:
CODE:int a=findimage(1,#Image_4[0][0],255,#PosX_4,#PosY_4,0,0,1366,728,-1);
messagebox (a);sleep(1000);
if (a==1)
{
mousemove(PosX_4+20,PosY_4+20);
mouse(RIGHT);
}
else
{
int b=findimage(1,#Image_5[0][0],255,#PosX_5,#PosY_5,0,0,1366,728,-1) ;
messagebox (b);sleep(1000);
if (b==1)
{
mousemove(PosX_5+20,PosY_5+20);
mouse(RIGHT);
}
}
После messagebox укажите sleep(1000); для того что бы кибор успел свернуться
(Добавление)
Смоделировал только что туж ситуацию с двумя нарисованными окружностями в паинт е.
Код ваш.
Зеленый и синий. Перекрывал их. То 1 зеленый, то оба видно, то только синий... короче по разному.
Работает все четко как надо.
Ищите ошибку в поиске изображения. Проверяйте что возвращает loadimage. |
|
|
Kibor |
Отправлено: 10 Октября, 2013 - 12:55:33
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
sakr1dd пишет: можно ли делать программу чтобы в ней проверяло к примеру в цикле 344 картинки
Чего нет? Ограничение только в требование скорости выполнения.
sakr1dd пишет: можно ли готового бота продавать?
Чего нет? Можете даже использовать этот сервис: Сервис демонстрации работы скриптов без передачи кода и с ограничением по времени.
sakr1dd пишет: У меня есть предложение
На какую тему? Можете в личку. |
|
|
|