Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: SAOi on June 30, 2014, 06:50:27 AM
-
Привет.
Я дико извиняюсь если этот вопрос уже всплывал. Укаратко пробежася по поиску, вроде бы нет подобного вопроса.
Я делаю бота для онлайн игры (браузерная игра, на подобии БК). Там просто клики и паузы между ними.
Далее у меня в редакторе данное условие:
getscreen
WAITMS(50)
IF_PICTURE_IN (1263,634, 1353,670, "saoi.bmp")
WAITMS(100)
SOUND("play.wav")
BEEP(800,200)
HINTPOPUP("Íà÷èíàåòñÿ ðàñïîçíîâàíèå êàï÷è", "Title")
$x1 = 1141
$y1 = 1256
$x2 = 613
$y2 = 669
$hwnd = wndFind("AGClient v1.2")
PostMessage($hwnd, 0x555, 1, $x1)
PostMessage($hwnd, 0x555, 2, $y1)
PostMessage($hwnd, 0x555, 3, $x2)
PostMessage($hwnd, 0x555, 4, $y2)
WAITMS(100)
PostMessage($hwnd, 0x555, 5, 0)
END_IF
То-есть я проверяю, не вылезла ли капча, если появилась, то отсылаю её на распознавание.
Как сделать паузу, пока не распознается капча ?
Подскажите пожалуйста, спасибо заранее!!!
-
ELSE
goto(start)
END_IF
-
ELSE
goto(start)
END_IF
Ммм.. я извиняюсь. Попробовал, работает, но я пока не вставил распознанную капчу в поле ввода.
Может нужно сделать цикл какой-нибудь. Что бы курсор стоял на программе AGClient, в квадратике "состояние" и проверял цвет квадратика. Если зеленый, то капчу из буфера вставить в поле . И далее всё по кругу, пока опять не появится капча.
Это всё надо сделать, как бы отдельно от основного кода. То-есть в условии. Помогите пожалуйста, я не умею делать циклы.
-
но я пока не вставил распознанную капчу в поле ввода.
что это значит? причем тут капча ?
-
но я пока не вставил распознанную капчу в поле ввода.
что это значит? причем тут капча ?
Ну смотри, кликер клацает по кнопкам в браузере.. Иногда появляется капча, у меня в коде условие, если повилась капча то отослать капчу на anitigate. Но у меня это всё делается в цикле, то-есть, оно проверило что есть капча, отослала, и пошла дальше клацать по кнопкам, потом опять видит капчу, так как я не вставил цифры в поле ввода капчи. Мне нужно сделать паузу, что бы кликер не клацал по кнопкам, пока капча не будет введена, как только ведены цифры - продолжить работу скрипта.
А сейчас у меня он просто отсылает на антигейт капчу и продолжает работу, в то время как капча еще нераспозналась
Надеюсь внятно объяснил)) Извиняюсь если что)
-
понял, тогда мое первое предложение в корне не верно,
ну так проще простого
while($indicator=0)
if_picture_in(.....)
//находим зеленый индикатор на агклиенте
//делаем чтото или сразу выходим из цикла и продолжаем работать
$indicator=1
ELSE
//агклиент еще не распознал картинку поэтому ждем
wait(2) // 2 секунды
$indicator=0 // для наглядности
END_IF
END_SUB
$indicator=0 // сброс
-
понял, тогда мое первое предложение в корне не верно,
ну так проще простого
while($indicator=0)
if_picture_in(.....)
//находим зеленый индикатор на агклиенте
//делаем чтото или сразу выходим из цикла и продолжаем работать
$indicator=1
ELSE
//агклиент еще не распознал картинку поэтому ждем
wait(2) // 2 секунды
$indicator=0 // для наглядности
END_IF
END_SUB
$indicator=0 // сброс
Еще 1 вопрос, ты написал //делаем чтото или сразу выходим из цикла и продолжаем работать
Как выходить с цикла ?
END_SUB это выход с цикла ?
-
$indicator=1
выход из цикла
//прочитайте инструкцию по циклам чтобы не тыкать пальцем в небо
-
$indicator=1
выход из цикла
//прочитайте инструкцию по циклам чтобы не тыкать пальцем в небо
Почитал, попробовал сделать. Но скрипт всё ровно продолжает работать, не дожидаясь распознавания капчи.
Пожалуста, скажите что не так. Уже часов 6 мучаюсь с кликером.
Вот как делаю:
getscreen
WAITMS(50)
IF_PICTURE_IN (1263,634, 1353,670, "saoi.bmp") // ЕСЛИ ВЫЛЕЗЛА КАПЧА
WAITMS(100)
SOUND("play.wav") // ПРОИГРАТЬ ЗВУК
BEEP(800,200) // ПРОИГРАТЬ ЗВУК
$x1 = 1141 //КООРДИНАТЫ КАПЧИ
$y1 = 613 //КООРДИНАТЫ КАПЧИ
$x2 = 1256 //КООРДИНАТЫ КАПЧИ
$y2 = 669 //КООРДИНАТЫ КАПЧИ
$hwnd = wndFind("AGClient v1.2") // ИЩЕМ ОКНО AGClient
PostMessage($hwnd, 0x555, 1, $x1) // ПЕРЕДАЕМ КООРДИНАТЫ В AGClient
PostMessage($hwnd, 0x555, 2, $y1) // ПЕРЕДАЕМ КООРДИНАТЫ В AGClient
PostMessage($hwnd, 0x555, 3, $x2) // ПЕРЕДАЕМ КООРДИНАТЫ В AGClient
PostMessage($hwnd, 0x555, 4, $y2) // ПЕРЕДАЕМ КООРДИНАТЫ В AGClient
WAITMS(100)
PostMessage($hwnd, 0x555, 5, 0) // РАСПОЗНАТЬ
WAITMS(100)
//--------------------------------
while($indicator=0) //ЦИКЛ ВРОДЕ))
if_picture_in(0,0, $_xmax,$_ymax, "cube.bmp", -1, 100) // ИЩЕМ ЗЕЛЕНЫЙ КВАДРАТИК, ЕСЛИ НАШЛИ:
$indicator=1
LCLICK(1289,622)
WAITMS(100)
KEYDOWN (#CTRL) // ----------------
WAITMS (30) //------------------------------
KEYDOWN (#V) //-----------------------------------
WAITMS (50) //---------------------------------------------
KEYUP (#V) //---------------------------------------------------- CTRL+V
WAITMS (30) //---------------------------------------------
KEYUP (#CTRL) //-------------------------------------
WAITMS (100) //----------------------------
KEYDOWN (#ENTER) //--------------
WAITMS (50) // ----------------
KEYUP (#ENTER) // --------
ELSE // В ПРОТИВНОМ СЛУЧАЕ
wait(2) // ЖДЕМ 2 СЕКУНДЫ
$indicator=0
END_IF
END_CYC
$indicator=0
END_IF
-
а перед
if_picture_in(0,0, $_xmax,$_ymax, "cube.bmp", -1, 100)
где getscreen ?
Ты же ждёшь обновления информации.
-
СПАСИБО )))))))))))))))))) забыл про getscreen)))
Aden и Vint Спасибо вам огромное ребята! выручили!! Всё заработало!