Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Sania on February 01, 2017, 11:46:00 PM
-
Добрый вечер,помогите пожалуйста понять почему не повторяется цыкл(один раз исполняются все SUB-ы и кликер замирает)
SUB(ПОИСК) //ПОИСК МОБА,НАПАДЕНИЕ
WAIT(1)
$check=0
WHILE($check=0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(358,193,735,475,"oktupulus.bmp",-1,60)
$check=1
LCLICK($_return1+10,$_return2+25)
WAITMS(100)
ELSE
WAITMS(100)
END_IF
END_CYC
END_SUB
SUB(БОЙ) //ПРИ ПОЯВЛЕНИИ ИНДИКАТОРА КЛИКАЕМ УДАР И ТАК ДО ПОБЕДЫ
WAIT(1)
$check=0
WHILE($check=0)
GETSCREEN
IF_PIXEL_IN(311,128,311,128,917481)
$check=1
WAIT(1)
LCLICK(323,435)
WAITMS(100)
END_IF
END_CYC
WAIT(1)
$check=0
WHILE($check=0)
GETSCREEN
IF_PIXEL_IN(311,128,311,128,917481)
$check=1
WAIT(1)
LCLICK(323,435)
WAITMS(100)
END_IF
END_CYC
WAIT(1)
$check=0
WHILE($check=0)
GETSCREEN
IF_PIXEL_IN(311,128,311,128,917481)
$check=1
WAIT(1)
LCLICK(323,435)
WAIT(5)
LCLICK(500,431,524,446)
END_IF
END_CYC
END_SUB
SUB(ВЫХОД) //ПРИ ПОЯВЛЕНИИ ПОБЕДНОЙ ИКОНКИ "ОК" КЛИКАЕМ НА НЕЁ
WAIT(5)
$check=0
WHILE($check=0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(445,410,579,470,"ok.bmp",-1,80)
$check=1
WAIT(1)
LCLICK($_return1,$_return2)
WAITMS(100)
ELSE
HALT
END_IF
END_CYC
END_SUB
start:
ПОИСК()
БОЙ()
ВЫХОД()
GOTO(start)
далее всё замирает и не хочет повторятся,помогите пожалуйста
-
команда стоп не нужна, вы же ожидаете победную иконку, да и вообще подпрограмы вызываемые одноразово- это псевдоподпрограммы.
я не упомянул один нюанс((( там сообщение о победе с кнопкой "ок" появляется не всегда,поэтому у меня и возникли трудности со сценарием,не знал как написать так чтоб учитывалось два варианта окончания боя) и я так и знал что всё это можно "укутать" красивее!)) ваш скрипт как всегда безупречен,спасибо большое)
Но я так и не понял почему же у меня замирал скрипт,я его вертел еще со вчерашнего дня и никак не мог(у) понять
-
вот я проверил только что,и когда иконка "ок"не появляется,скрипт не идёт дальше,как бы это обыграть?
-
Но я так и не понял почему же у меня замирал скрипт,я его вертел еще со вчерашнего дня и никак не мог(у) понять
В первоначальном варианте скрипт замирал скорее всего когда не находил картинку "ok.bmp" в Выход()
SUB(ВЫХОД) //ПРИ ПОЯВЛЕНИИ ПОБЕДНОЙ ИКОНКИ "ОК" КЛИКАЕМ НА НЕЁ
WAIT(5)
$check=0
WHILE($check=0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(445,410,579,470,"ok.bmp",-1,80)
$check=1
WAIT(1)
LCLICK($_return1,$_return2)
WAITMS(100)
ELSE
HALT // предположительное место замирания
END_IF
END_CYC
END_SUB
Используй LOGWRITE для отладки, всегда будешь знать в каком месте заткнулся
-
$check=0
WHILE($check=0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(445,410,579,470,"ok.bmp",-1,80)
$check=1
WAIT(1)
LCLICK($_return1,$_return2)
WAITMS(100)
ELSE
HALT // предположительное место замирания
END_IF
END_CYC
Эта конструкция излишня и бессмысленна в таком варианте. Первый раз (и единственный) ищем, если нашли кликаем и выходим из цикла. Не нашли останов HALT. Спрашивается: зачем цикл?
Если кнопка может появится, а может нет, то из шаблонов берём "ожидание картинки с таймером". Время подбираем.
$time = $_ms + 5000 // 5 секунд
WHILE($time > $_ms)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(445,410,579,470,"ok.bmp",-1,80)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
Если нужно по разному обрабатывать ситуации когда появилась и когда нет, то можно ещё в конце добавить
IF($time ! 0)
// время истекло, картинка ok.bmp не найдена
END_IF
-
Если нужно по разному обрабатывать ситуации когда появилась и когда нет, то можно ещё в конце добавить
спасибо,сейчас буду пробовать)
а такой вариант имеет право на существование(если у меня после боя не всегда высвечивается кнопка "ок") я прописываю два пути завершения цикла ELSE 1.если появляется "ок"-кликаем,2. если бой завершается без каких-либо отметок, нахожу пиксель по которому определяю что бой завершён и цикл завершается. Но судя по тому что после успешного завершения боя цикл не начинается заново(не повторяется,видимо я что-то не так прописал?)
SUB(Трифид)
$check=0
WHILE($check=0)
GETSCREEN (97,191, 800,450)
IF_PIXEL_IN(97,191, 800,450,217634,1140526,1316895,3388006)
beep(500,1000)
LCLICK($_return1, $_return2+20)
$check=1
WAITMS(100)
ELSE
WAITMS(100)
END_IF
END_CYC
END_SUB
SUB(Бой)
$check=0
WHILE($check=0)
GETSCREEN (295,116, 344,195)
IF_PIXEL_IN(295,116, 344,195,4893597,5242780,36142)
LCLICK(321,436)
WAIT(1)
ELSE
GETSCREEN (52,124,52,124)
IF_PIXEL_IN(52,124,52,124,11718141)
$check=1
WAITMS(100)
ELSE
GETSCREEN(466,438,556,540)
COLORMODE(6,466,438,556,540)
IF_PICTURE_IN(466,438,556,540,"ok.bmp",-1,80)
LCLICK($_return1, $_return2)
$check=1
WAITMS(100)
END_IF
END_CYC
END_SUB
start:
Трифид()
Бой()
GOTO(start)