Автокликер Clickermann :: Форум
Основной раздел => Предложения => Topic started by: zip777 on December 13, 2012, 07:14:42 AM
-
Помогите, пожалуйста!
Ситуация такая :
1. Нужно найти пиксель определенного цвета в заданной области
2.кликнуть по нему
3.после этого нужно чтоб цикл продолжался и искать пиксель другого цвета в другой области (объект движется и попадает в эту область всего на секунду!! но нужна именно эта область! ))
4.далее когда пиксель попал в эту область нужно кликнуть по нему
5. продолжаем через какую то паузу (задержка всегда разная) нужно повторить пункт 3
6.далее кликнуть 3 раза на 3 разные точки
7 после чего все должно повториться
я написал ...помогите подскажите что не так
Так это будет выглядеть ?[spoiler]IF_PIXEL_IN(554,620,710,660, #252e60)
lclick(630,630)
END_IF
IF_PIXEL_IN(508,600,600,645, #1222BA)
lclick(540,600)
END_IF
IF_PIXEL_IN(508,600,600,645, #1222BA)
lclick(540,600)
LCLICK(573,447)
LCLICK(525,525)
LCLICK(530,530)
END_IF
GOTO(1)[/spoiler]
ЧУТЬ поправил но все равно не срабатывает такой вариант. находит первый пиксель , щелкает где надо и останавливается и на этом все!!!
-
Так это будет выглядеть ?
Нет. Ну почти.
А что вот это у тебя?
...
lclick($_540, $_600)
...
GOTO(1)
-
Прежде всего скачай последнюю версию 4.7 SE
Почему тема называется IF_PICTURE_IN когда ты используешь IF_PIXEL_IN?
Цвета с конвертировал в десятеричный вид, это будет работать только на 4ой версии кликера
GETSCREEN
IF_PIXEL_IN(554,620,710,660, 6303269)
LCLICK($_return1, $_return2)
WAITMS(100)
$search = 0
WHILE($search < 2)
GETSCREEN
IF_PIXEL_IN(508,600,600,645, 12198418)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
Else
WAITMS(50)
END_IF
IF($search = 1)
WAITMS(RND(500,1000)) // Рандомная задержка 500-1000 мс
END_IF
END_CYC
WAITMS(200)
LCLICK(573,447)
LCLICK(525,525)
LCLICK(530,530)
Else
WAITMS(100)
END_IF
Действительно если первый пункт не найден то остальное выполнять не нужно... переделал.
-
И битва экстрасенсов продолжается! ;D
Я думаю что автор хотел что-то такое:
$break = 0
WHILE($break = 0)
GETSCREEN
IF_PIXEL_IN(554,620,710,660, 6303269)
LCLICK($_return1, $_return2)
$break = 1
Else
WAITMS(50)
END_IF
END_CYC
for($i, $i < 2)
$break = 0
WHILE($break = 0)
GETSCREEN
IF_PIXEL_IN(508,600,600,645, 12198418)
$break = 1
LCLICK($_return1, $_return2)
Else
WAITMS(50)
END_IF
END_CYC
WAITMS(RND(600,1100)) // Рандомная задержка 600-1100 мс
end_cyc
WAITMS(200)
LCLICK(573,447)
LCLICK(525,525)
LCLICK(530,530)
-
Но в твоем случае задержка WAITMS(RND(600,1100)) будет 2а раза.
Свой скрипт чуток переделал.
-
Да у вас работает также первый пункт но вот дальше пиксель в движение который его не ловит(возможно не успевает проверить область экранапока пиксель находится в ней)?
Чтоб не городить огород(экстрасенсов) пытаюсь сделать кликер для этого _http://www.niveaformen.ru/promo/hockey.html флеш игра хоккей
-
Область поиска 508,600,600,645 точно правильная? Может цвет поиска нужно лучше подобрать или добавить несколько цветов?
Попробуй уменьшить задержку на 13 строке WAITMS(50)
-
область поиска менял в зависимости от того на чем проверял на ноутбуке такая на компе больше результат не менялся
-
(http://s48.radikal.ru/i119/1212/cc/05cea54f2177.jpg) эта ситуация должна повторяться дважды через разные промежутки времени примерно от 1 до 3 сек
-
Ну а с цветом что? Попробуй взять его со скриншота.
-
Теперь выглядит так. но срабатывает не найдя нужный цвет (переделал не на синий) но проходит несколько циклов ! может где есть синтаксические ошибки?
GETSCREEN
IF_PIXEL_IN(1040,580,1060,605, 6303269)
LCLICK($_return1, $_return2)
WAITMS(200)
$search = 0
WHILE($search < 2)
GETSCREEN
IF_PIXEL_IN(945,580,970,615, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(755,622,808,600, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(910,480,940,515, 8006673)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK(950,600)
GETSCREEN
IF_PIXEL_IN(820,440,850,450, 6434855)
LCLICK($_return1, $_return2)
WAITMS(200)
Else
WAITMS(50)
END_IF
IF($search = 1)
WAITMS(RND(500,1000)) // Рандомная задержка 500-1000 мс
END_IF
END_CYC
WAITMS(200)
Else
WAITMS(100)
END_IF
-
Посмотрел.
У меня аналогичные проблемы были в другой программе.
Обрати внимание на подложку для фона игры.
(скриншот ниже)
Она имеет некий слабозаметный регулярный рисунок, который очень мешает кликеру.
В каждой новой зоне экрана слегка меняется сумма пикселей искомой картинки.
Я пока не в курсе, как вычитать этот фон из общего гетскрина.
Выкрутился у себя "правой рукой за левое ухо".
-
Спасибо, я как раз решил переделать чтоб искомый объект был серого цвета но отличался от подложки.
-
У тебя нехватает END_IF но зачем столько IF_PIXEL_IN? При этом IF($search = 1) уже не сработает потому как там куча INC($search,1)
GETSCREEN
IF_PIXEL_IN(1040,580,1060,605, 6303269)
LCLICK($_return1, $_return2)
WAITMS(200)
$search = 0
WHILE($search < 2)
GETSCREEN
IF_PIXEL_IN(945,580,970,615, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(755,622,808,600, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(910,480,940,515, 8006673)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK(950,600)
GETSCREEN
IF_PIXEL_IN(820,440,850,450, 6434855)
LCLICK($_return1, $_return2)
WAITMS(200)
Else
WAITMS(50)
END_IF
IF($search = 1)
WAITMS(RND(500,1000)) // Рандомная задержка 500-1000 мс
END_IF
END_IF
END_IF
END_IF
END_CYC
WAITMS(200)
Else
WAITMS(100)
END_IF
-
У тебя нехватает END_IF но зачем столько IF_PIXEL_IN? При этом IF($search = 1) уже не сработает потому как там куча INC($search,1)
GETSCREEN
IF_PIXEL_IN(1040,580,1060,605, 6303269)
LCLICK($_return1, $_return2)
WAITMS(200)
$search = 0
WHILE($search < 2)
GETSCREEN
IF_PIXEL_IN(945,580,970,615, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(755,622,808,600, 16049378)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
GETSCREEN
IF_PIXEL_IN(910,480,940,515, 8006673)
INC($search,1)
LCLICK($_return1, $_return2)
WAITMS(100)
LCLICK(950,600)
GETSCREEN
IF_PIXEL_IN(820,440,850,450, 6434855)
LCLICK($_return1, $_return2)
WAITMS(200)
Else
WAITMS(50)
END_IF
IF($search = 1)
WAITMS(RND(500,1000)) // Рандомная задержка 500-1000 мс
END_IF
END_IF
END_IF
END_IF
END_CYC
WAITMS(200)
Else
WAITMS(100)
END_IF
столько IF_PIXEL_IN потому что там несколько раз движущиеся объекты которые нужно поймать при их положении рядом друг с другом...я поставил их потому как не знаю чем их заменить ! если можете помогите . заранее спасибо!
-
(http://i047.radikal.ru/1212/8d/e2af9a05a605.jpg)Стоит ли пользоваться функцией IF_PICTURE_IN в данном случае?
-
Ну понимаешь там у тебя вложенные условия, если сработает первое, то тогда перейдет ко второму, если сработает второе, то к третьему, а если первое не сработает, то и все остальное проигнорируется.