Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: MaxKot on October 18, 2017, 03:08:17 PM
-
Кто может помочь написать скрипт. Просмотрел на форуме - есть аналогичные, но не хватает знаний у меня, чтобы доработать. :-[ Если кто может, вот условия:
1. Есть страница входа в игру. Нужно ввести логин(постоянная координата) и пароль(постоянная координата) большое количество раз. Кнопка входа в игру тоже координата постоянная. Список
логин:пароль я подготовил в LogPass.txt.
2. Выполнить клики по постоянным координатам в самой игре (это я уже сам сделаю)
3. И выйти из игры ( кнопка выхода скачет по вертикали в зависимости от места нахождения персонажа в игре)
4. Пройти весь список и остановиться до следующего запуска)
И еще вопрос - имеет ли значение язык для логина, если логин кириллицей написан, видит ли его многоуважаемый Clickermann? Вот вроде бы и все.. Помогите :)
-
Версия Clickermann 4.11.002
-
// файл список
$file_akk = "LogPass.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(0, 0) // окно логина
WAITMS(50)
TOCLIP($akkaunt[0])
paste()
LCLICK(100, 100) // окно пароля
WAITMS(50)
TOCLIP($akkaunt[1])
paste()
//obrabotka() // делаем что нужно в подпрограмме obrabotka
//exit_game() // выйти из игры
END_CYC
HALT
-
Не получается почему то :'( В строку логина вводит цифру "0" , а вместо пароля "." Не видит кликер документа LogPass.txt Может я неправильно его разместил. Где этот документ нужно положить, чтобы кликерман его видел?
-
Попробуй вот такой вариант
//Создаешь рядом со скриптом файл "LogPass.txt" и в него записываешь строки по образцу
//Тест1@mail.ru:111111111
//Тест2@mail.ru:абвгд
//Тест3@mail.ru:тестТестТЕСТ
//Сам скрипт:
IF(TFCOUNT("LogPass.txt") > $count)
INC($count,1)
ELSE
HALT // Стоп по достижении конца файла
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
LCLICK(10,10) // клик по полю логина
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(10,10) // клик по полю пароля
WAITMS (50)
TOCLIP($pass) // скопировать в пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(10,10) // клик по "Вход"
//Каждый новый проход будет считываться новая строка с логином и паролем
-
И еще вопрос - имеет ли значение язык для логина, если логин кириллицей написан, видит ли его многоуважаемый Clickermann?
Зависит от версии кликера, последняя бетта 4.13 стала поддерживать юникод и там кириллица не превращается в абракодабру после копирования через буфер.
Чтобы такого не было на 4.12 раскладки в кликере и целевом окне должны быть Ру.
-
Спасибо, буду пробовать :)
-
Вы будете смеяться, но на второй скрипт Clickermann вообще не реагирует. Если на первом хоть "ноль" и "точку" вводил, то здесь даже не запускается:( Может я что то неправильно делаю. Может Яндекс браузер виноват? Уйти на оперу? Или мозиллу?
-
Может быть проблема в файле LogPass.txt он должен быть в кодировке ANSI 1251
-
Да, действительно проблема была в файле LogPass.txt Спасибо за подсказку. Пересохранил в АНSI и по первому скрипту вставляет и логин и пароль, выполняет все то , что мне нужно до момента выхода. Как я писал, у кнопки выхода не постоянная координата по Y. Решил использовать
GETSCREEN
IF_PICTURE_IN (820,600,870,700, "выход.bmp")
LCLICK($_return1,$_return2)
WAIT(5)
END_IF
но не происходит никаких действий. Как еще можно поймать эту злосчастную кнопку?
-
Все получилось, всем спасибо:) COLORMODE - это сила:)
-
Возник еще один вопрос. Без привязки к окну скрипт от Vint работает без сбоев, при привязке начинаются проблемы. В поле логин/пароль вводятся по одному знаку. Не читает скрипт документ LogPass.txt. Раскладки в кликере и в окне RU . Можете подсказать решаемая проблема или нет :-\
-
В оконном режиме невозможно зажать клавиши, поэтому комбинация Ctrl+V невозможна. Зато функция KEYSTRING набирает символы строки как есть.
IF(TFCOUNT("LogPass.txt") > $count)
INC($count,1)
ELSE
HALT // Стоп по достижении конца файла
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
LCLICK(10,10) // клик по полю логина
WAITMS (50)
KEYSTRING($log)
LCLICK(10,10) // клик по полю пароля
WAITMS (50)
KEYSTRING($pass)
WAITMS (50)
LCLICK(10,10) // клик по "Вход"
//Каждый новый проход будет считываться новая строка с логином и паролем
-
Oraven!! Ты просто гений :) Пишу, а в другом окне идет процесс :) Научусь ли я когда нибудь?
-
Добрый вечер! Назрел еще один вопрос. Накрапал скрипт, но что то в нем не правильно. По отдельности картинки все видит , прописывает в логе координаты, курсор переходит на картинку, а в связке останавливается после первого нажатия PageDown. Вот:
$file_akk = "LogPass1.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(960, 120) // окно логина
WAIT(2)
TOCLIP($akkaunt[0])
paste()
LCLICK(960, 150) // окно пароля
WAIT(2)
TOCLIP($akkaunt[1])
paste()
KEYPRESS(#Enter)// войти
WAIT(2)
GETSCREEN
COLORMODE(6) // тот же уровень
IF_PICTURE_IN (900,380, 1100,620, "моя гильдия.bmp")
LCLICK($_return1+5, $_return2+10)
WAIT(2)
END_IF
KEYPRESS(#PAGEDOWN)
WAIT(2)
GETSCREEN
COLORMODE(6) // тот же уровень
IF_PICTURE_IN (900,448, 980,665, "снабжение.bmp")
LCLICK($_return1+4, $_return2+10)
WAIT(2)
END_IF
KEYPRESS(#PAGEDOWN)
WAIT(2)
GETSCREEN
COLORMODE(6) // тот же уровень
IF_PICTURE_IN (890,170, 1050,490, "забрать.bmp")
LCLICK($_return1+2, $_return2+9)
WAIT(2)
END_IF
GETSCREEN
COLORMODE(6) // тот же уровень
IF_PICTURE_IN (890,170, 1050,490, "забрать.bmp")
LCLICK($_return1+2, $_return2+9)
WAIT(2)
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (250,580, 320,950, "выход.bmp")
LCLICK($_return1+4, $_return2+7)
WAIT(1)
END_IF
END_CYC
Помогите или разъясните ошибки пожалуйста :'(
-
Что значит "останавливается"? В скрипте нет ни одной остановки.
Выпадает с ошибкой, если да, то так и нужно писать и указывать что за ошибка.
В файле не должно быть пустых строк.
-
Нет, не останавливается. В начале вводит логин и пароль, входит в игру, кликает по "моя гильдия.bmp" и после нажатия PageDown, курсор отправляется вводить логин и пароль, а не ищет картинку "снабжение.bmp". Хотя, как я писал ранее, в отдельности Clickermann видит каждую картинку, а в скрипте не хочет. Вот такая ошибка :(
-
Тебе нужно использовать циклы поиска картинок, в этом случаи скрипт не пойдет дальше пока не найдет заданную картинку
$file_akk = "LogPass1.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(960, 120) // окно логина
WAIT(2)
TOCLIP($akkaunt[0])
paste()
LCLICK(960, 150) // окно пароля
WAIT(2)
TOCLIP($akkaunt[1])
paste()
KEYPRESS(#Enter)// войти
WAIT(2)
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (900,380, 1100,620, "моя гильдия.bmp")
LOGWRITE ("моя гильдия")
LCLICK($_return1+5, $_return2+10)
WAIT(2)
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
KEYPRESS(#PAGEDOWN)
WAIT(2)
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (900,448, 980,665, "снабжение.bmp")
LOGWRITE ("снабжение")
LCLICK($_return1+4, $_return2+10)
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
KEYPRESS(#PAGEDOWN)
WAIT(2)
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (890,170, 1050,490, "забрать.bmp")
LOGWRITE ("забрать")
LCLICK($_return1+2, $_return2+9)
WAIT(2)
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (890,170, 1050,490, "забрать.bmp")
LOGWRITE ("забрать")
LCLICK($_return1+2, $_return2+9)
WAIT(2)
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
$check = 0
WHILE($check = 0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (250,580, 320,950, "выход.bmp")
LOGWRITE ("выход")
LCLICK($_return1+4, $_return2+7)
WAIT(1)
$check = 1
ELSE
WAITMS(50)
END_IF
END_CYC
END_CYC
-
Oraven! Спасибо за помощь:) Заработал скриптик:)
-
Не, я не ожидание картинки просил. Это то понятно было, как сделать..
Ну раз тебе понятно то вот тот самый пример из шаблонов, ничего не напоминает?
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
$time = 0
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
IF($time ! 0)
// действие если время истекло, картинка не найдена
END_IF
-
попытайтесь написать скрипт самостоятельно
я пишу скрипт, но там пока все просто. Я просто знаю, что когда подойду к тому месту, о котором я просил помощи, будет загвоздка. Знаний пока мало :'( Думал заранее прозондировать.
А под если я подразумевал, что при выпадении кнопки, какие действия нужно производить дальше
-
Да не, там простая логика. После клика на кнопку, может выпасть одна определенная кнопка, указанная мною выше и дальнейшие действия будут зависеть от выпавшей кнопки. Ну вот, разговор нуба с программистами не получился :'(
-
Ну вот и дошел я до тупика:( Как и предполагал. Нужна помощь. Я пробовал писать, но скрипт не работает:
WAIT(1)
//уход в цикл
$count = 0
WHILE($count < 22)
//поиск одного изображения
GETSCREEN (125,200, 380,400)
IF_PICTURE_IN (125,200, 380,400, "Идти вперед.bmp") //если нашел клик
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
else //если не нашел в этой области то переход к поиску другого изображения
waitms(1000)
IF_PICTURE_IN (125,200, 380,400, "Вперед.bmp") // клик по нахождению
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
else // переход если кнопка не будет найдена
waitms(1000)
IF_PICTURE_IN (125,200, 380,400, "проскользнуть.bmp") // клик по нахождению
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
else // переход если кнопка не будет найдена
waitms(1000)
IF_PICTURE_IN (125,200, 380,400, "Идти назад.bmp") // клик по нахождению
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
else // переход если кнопка не будет найдена
waitms(1000)
IF_PICTURE_IN (125,200, 380,400, "Вперед1.bmp") // клик по нахождению
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
else // переход если кнопка не будет найдена
waitms(1000)
IF_PICTURE_IN (125,200, 380,400, "Вперед2.bmp") // клик по нахождению
waitms(1000)
LCLICK($_return1, $_return2)
waitms(1000)
$check = 1
end_if
end_if
end_if
end_if
end_if
end_if
INC($count,1)
end_cyc
Явно не правильно. Может кто помочь? Если что то не понятно - я на связи 8) Да еще маленькое дополнение. Этот цикл должен проходить большое количество раз. На каком месте закончился, с того места в следующий раз должен и продолжаться. Спасибо!
-
Зачем там не нужные задержки между анализами? И INC($count,1) нужно писать в условии поиска а не в конце.
WAIT(1)
//уход в цикл
$count = 0
WHILE($count < 22)
//поиск одного изображения
GETSCREEN (125,200, 380,400)
IF_PICTURE_IN (125,200, 380,400, "Идти вперед.bmp") //если нашел клик
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else //если не нашел в этой области то переход к поиску другого изображения
IF_PICTURE_IN (125,200, 380,400, "Вперед.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "проскользнуть.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Идти назад.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Вперед1.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Вперед2.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
ELSE
waitms(100)
end_if
end_if
end_if
end_if
end_if
end_if
end_cyc
-
Все отлично работает:) Спасибо. Маленький вопрос. Чтобы этот цикл повторялся бесконечно, какие параметры нужно задать? И чуть позже у меня будет еще один вопрос...
-
Маленький вопрос. Чтобы этот цикл повторялся бесконечно, какие параметры нужно задать?
Зачем тебе вообще тогда INC($count,1) ?
Пиши
WHILE(1) // бесконечный цикл
END_CYC
-
Еще один вопрос. Как циклы объединить в цепочку. Например:
$check = 0
WHILE($check < 3)
//поиск одного изображения
GETSCREEN (140,200, 380,900)
COLORMODE(6)
IF_PICTURE_IN (140,200, 380,900, "В город.bmp") //если нашел клик
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,900, "В поле.bmp") //если нашел клик
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,900, "К дороге.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
waitms(100)
end_if
end_if
end_if
end_cyc//необходимо, чтобы после того, как найдется одна из кнопок, этот цикл остановился и заработал следующий, нижний и т. д. По отдельности работают.
$count = 0
WHILE($count < 22)
//поиск одного изображения
GETSCREEN (125,200, 380,400)
IF_PICTURE_IN (125,200, 380,400, "Идти вперед.bmp") //если нашел клик
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else //если не нашел в этой области то переход к поиску другого изображения
IF_PICTURE_IN (125,200, 380,400, "Вперед.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "проскользнуть.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Идти назад.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Вперед1.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (125,200, 380,400, "Вперед2.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($count,1)
waitms(1000)
ELSE
waitms(100)
end_if
end_if
end_if
end_if
end_if
end_if
end_cyc
Как я понял, пока не выполнится условие, цикл остается работающим. Даже если кнопки отсутствуют.
-
Уважаемый kiril, наверное еще не подошло время осваивать подпрограммы, так как я еще не освоил циклы. Прыгать через ступеньки не очень хочется :-\ С нахождением картинки и остановкой цикла мне понятно. А если картинки появляются рандомно(все их надо кликать) и остановить цикл необходимо при появлении определенной картинки. Количество проходов тоже рандомно. Максимально 22 прохода по циклу. Картинка, останавливающая цикл, может появиться и на 16 проходе, и на 20 :-\
$check = 0
WHILE($check < 22)
GETSCREEN (140,200, 380,600)
COLORMODE(6)
IF_PICTURE_IN (140,200, 380,600, "Задание выполнено.bmp") //при появлении этой картинки необходимо остановить цикл и пойдет работать следующий.
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,600, "Идти вперед.bmp") //если нашел клик
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,600, "Идти назад.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,600, "Вперед.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (140,200, 380,600, "проскользнуть.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (140,200, 380,600, "Взять бонус.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else
IF_PICTURE_IN (140,200, 380,600, "Бить.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
else // переход если кнопка не будет найдена
IF_PICTURE_IN (140,200, 380,600, "Вперед2.bmp") // клик по нахождению
LCLICK($_return1, $_return2)
INC($check,1)
waitms(1000)
ELSE
waitms(100)
end_if
end_if
end_if
end_if
end_if
end_if
end_if
end_if
end_cyc
-
Спасибо огромнейшее kiril, Вам респект. Да и всем кто помогал ;) Надеюсь в дальнейшем не откажете в совете ???
-
Нужна помощь. Необходимо вставлять строки из текстового документа Gildiy.txt на двух страничках одного браузера. Лучше на примере покажу:
$file_akk = "LogPass.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(960, 120) // окно логина
WAIT(1)
TOCLIP($akkaunt[0])
paste()
LCLICK(960, 150) // окно пароля
WAIT(1)
TOCLIP($akkaunt[1])
paste()
//дальше идет мой код, он очень громоздкий, не буду его писать
LCLICK(160,180)//клик по полю ввода названия - это первая страничка
WAITMS(500)// здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy.txt" Строка может состоять из 2-х слов
//опять мой код
LCLICK(160,180)//клик по полю ввода названия - это вторая страничка
WAITMS(500) // и здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy.txt"
//и дальше мой скрипт
И так по кругу, вводим второй лог и пароль из файла "LogPass.txt" и вторую строку из файла "Gildiy.txt" 2 раза и т. д. Это осуществимо?
-
Написал код, вписывает первую строку из файла Gildiy.txt, При втором вводе уже вторую строку из файла Gildiy.txt. Поменял название файла на Gildiy2.txt - все равно вводит вторую строку. Что делать???
$file_akk = "LogPass.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(960, 120) // окно логина
WAIT(1)
TOCLIP($akkaunt[0])
paste()
LCLICK(960, 150) // окно пароля
WAIT(1)
TOCLIP($akkaunt[1])
paste()
//дальше идет мой код, он очень громоздкий, не буду его писать
LCLICK(160,180)//клик по полю ввода названия - это первая страничка
WAITMS(500)// здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy.txt" Строка может состоять из 2-х слов
IF(TFCOUNT("Gildiy.txt") > $count)
INC($count,1)
END_IF
$str = TFREAD ("Gildiy.txt", $count)
LCLICK(160,180)
WAITMS (50)
TOCLIP($str) //
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
WAIT(1)//вводит первую строку, все как мне надо
//опять мой код
LCLICK(160,180)//клик по полю ввода названия - это вторая страничка
WAITMS(500) // и здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy2.txt"
IF(TFCOUNT("Gildiy2.txt") > $count)
INC($count,1)
END_IF
$str = TFREAD ("Gildiy2.txt", $count)
LCLICK(160,180)
WAITMS (50)
TOCLIP($str)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
WAIT(1)// здесь вводит вторую строку файла Gildiy2.txt, а мне нужна первая строка
//и дальше мой скрипт
-
Написал код, вписывает первую строку из файла Gildiy.txt, При втором вводе уже вторую строку из файла Gildiy.txt. Поменял название файла на Gildiy2.txt - все равно вводит вторую строку. Что делать???
У тебя уже есть переменная $count в которою записывается количество строк файла LogPass.txt а ты приписал еще два файла и продолжаешь туже переменную увеличивать. Ты должен использовать разные имена счетчиков чтоб они не пересекались!
у тебя есть подпрограмма paste зачем ты пишешь вместо вызова код Ctrl+V ?
$file_akk = "LogPass.txt"
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count1 = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count)
FOR($akkaunt_line = 1, $akkaunt_line < $count1+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(960, 120) // окно логина
WAIT(1)
TOCLIP($akkaunt[0])
paste()
LCLICK(960, 150) // окно пароля
WAIT(1)
TOCLIP($akkaunt[1])
paste()
//дальше идет мой код, он очень громоздкий, не буду его писать
LCLICK(160,180)//клик по полю ввода названия - это первая страничка
WAITMS(500)// здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy.txt" Строка может состоять из 2-х слов
IF(TFCOUNT("Gildiy.txt") > $count2)
INC($count2,1)
ELSE
$count2 = 1 // Снова начинаем с первой строки по достижении конца файла
END_IF
$str = TFREAD ("Gildiy.txt", $count2)
LCLICK(160,180)
WAITMS (50)
TOCLIP($str) //
WAITMS (50)
paste() // Вставить
WAIT(1)//вводит первую строку, все как мне надо
//опять мой код
LCLICK(160,180)//клик по полю ввода названия - это вторая страничка
WAITMS(500) // и здесь нужно ввести ПЕРВУЮ строку из файла "Gildiy2.txt"
IF(TFCOUNT("Gildiy2.txt") > $count3)
INC($count3,1)
ELSE
$count3 = 1 // Снова начинаем с первой строки по достижении конца файла
END_IF
$str = TFREAD ("Gildiy2.txt", $count3)
LCLICK(160,180)
WAITMS (50)
TOCLIP($str)
WAITMS (50)
paste() // Вставить
WAIT(1)// здесь вводит вторую строку файла Gildiy2.txt, а мне нужна первая строка
//и дальше мой скрипт
END_CYC // Конец цикла FOR
-
Спасибо. Все работает. Хочу немного доработать код, потому что возникают ошибки, не связанные с Clickermann, а с подвисаниями в самой игре. Суть такая: есть примерно 120 скринов картинок (в дальнейшем думаю еще добавить). Необходимо за проход выполнить клик по одной из картинок.
$img[0]="img1.bmp"
$img[1]="img2.bmp"
$img[2]="img3.bmp"
==============
$img[119]="img119.bmp"
for($i=0,$i<120)// для переменной i=0 пока i<120
if_picture_in(0,0,$_xmax,$_ymax,$img[i])// если картинка из списка есть
MOVE($_return1+5,$_return2+2)
WAITMS(10)
LCLICK($_return1+5,$_return2+2)
END_IF
END_CYC// конец цикла
Возможно ли не вписывать весь список скринов(120шт.!!) в скрипт, а прописать путь к нему и как это лучше сделать. И второе - если игра подвисает, то чтобы клик по картинке произошел после появления картинки из списка.
-
for($i=1, $i<120)
if_picture_in(0,0,$_xmax,$_ymax, STRCONCAT("img", $i, ".bmp"))
...
-
В общем получилось у меня вот так
for($i=1, $i<120)
GETSCREEN (140,150, 380,225)
COLORMODE(6)
IF_PICTURE_IN (140,150, 380,225, STRCONCAT("img", $i, ".bmp"))
LCLICK($_return1+5, $_return2+3)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
Работает: находит, кликает, но что то не так. Сам не пойму что :o ну да ладно
-
Необходимо за проход выполнить клик по одной из картинок.
Эта фраза подрозумевает, что достаточно найти "одну из". Значит после нахождения, нужно прерывать цикл и на остальные не тратить время.
И так же в этом случае не нужно каждый раз делать снимок. GETSCREEN и цветокоррекцию вынести за цикл.
GETSCREEN(140,150, 380,225)
COLORMODE(6)
FOR($i=1, $i<120)
IF_PICTURE_IN (140,150, 380,225, STRCONCAT("img", $i, ".bmp"))
LCLICK($_return1+5, $_return2+3)
WAITMS(100)
$i = 500
ELSE
WAITMS(50)
END_IF
END_CYC
-
Опять появился вопрос. Могут ли команды STRCONCAT и STRSEPARATE конфликтовать в одном скрипте?
$file_akk = "LogPass.txt" //625,50
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count1 = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count1)
FOR($akkaunt_line = 1, $akkaunt_line < $count1+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(760, 112) // окно логина
WAITMS(1000)
TOCLIP($akkaunt[0])
paste()
LCLICK(760, 139) // окно пароля
WAITMS(1000)
TOCLIP($akkaunt[1])
paste()
KEYPRESS(#Enter)// войти
WAIT(1)
и
GETSCREEN(140,150, 380,225)
COLORMODE(6)
FOR($i=1, $i<120)
IF_PICTURE_IN (140,150, 380,225, STRCONCAT("img", $i, ".bmp"))
LCLICK($_return1+5, $_return2+3)
WAITMS(100)
$i = 500
ELSE
WAITMS(50)
END_IF
END_CYC
Без цикла по объединению строки ввод логина и пароля проходит нормально, только вписал в скрипт цикл STRCONCAT логин и пароль пишется в одной строке :o Подскажите?
-
Опять появился вопрос. Могут ли команды STRCONCAT и STRSEPARATE конфликтовать в одном скрипте?
Никакой связи.
Где END_CYC в первом цикле?
Во втором цикле WAITMS(50) - много для холостого хода. Минимум выходит 120*50 = 6000 мс. непонятно зачем.
-
$file_akk = "LogPass.txt" //625,50
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(150)
END_SUB
//------------------------------------------------------------------------------
$count1 = TFCOUNT($file_akk)
LOGWRITE("Всего аккаунтов: ", $count1)
FOR($akkaunt_line = 1, $akkaunt_line < $count1+1)
UNDEFINE($akkaunt)
STRSEPARATE(TFREAD($file_akk, $akkaunt_line), ":", $akkaunt)
LOGWRITE("login: ", $akkaunt[0], " pass: ", $akkaunt[1])
LCLICK(760, 112) // окно логина
WAITMS(1000)
TOCLIP($akkaunt[0])
paste()
LCLICK(760, 139) // окно пароля
WAITMS(1000)
TOCLIP($akkaunt[1])
paste()
KEYPRESS(#Enter)// войти
WAIT(1)
// дальше идет мой код - порядка 500 строк
GETSCREEN(140,150, 380,225)
COLORMODE(6)
FOR($i=1, $i<120)
IF_PICTURE_IN (140,150, 380,225, STRCONCAT("img", $i, ".bmp"))
LCLICK($_return1+5, $_return2+3)
WAITMS(100)
$i = 500
ELSE
WAITMS(5)
END_IF
END_CYC
// и опять мой код
GETSCREEN(140,150, 380,225)
COLORMODE(6)
FOR($i=1, $i<120)
IF_PICTURE_IN (140,150, 380,225, STRCONCAT("img", $i, ".bmp"))
LCLICK($_return1+5, $_return2+3)
WAITMS(100)
$i = 500
ELSE
WAITMS(5)
END_IF
END_CYC
// мой код
END_CYC//заканчивается цикл,
-
Всё нормально. Остальной код не имеет отношения к вводу логина/пароля.
только вписал в скрипт цикл STRCONCAT логин и пароль пишется в одной строке
Где пишется? Как пишется? Вопросов море. Ну надо же искать последовательно проблему, одних общих фраз недостаточно.
Посмотри не изменил ли в файле.
В поле ввода пишет слитно? В каком из них, логина или пароля?.
В скрипте делит по разделителю? Что пишет в лог на строке 19.
Надеюсь ты не тестируешь версию 4.13
-
Отвечаю по порядку:
Посмотри не изменил ли в файле.
В файле ничего не менял( отдельно , без всего скрипта, вводит и логин и пароль по своим поля)
В поле ввода пишет слитно? В каком из них, логина или пароля?
В поле ввода логина, пишет слитно
Надеюсь ты не тестируешь версию 4.13
Нет, не тестирую ..... пока :D
В скрипте делит по разделителю?
Как это определить?
Что пишет в лог на строке 19.
Всего 2 строки в логе:
16:29:39 Всего аккаунтов: 110
16:29:39 login: Карабас pass: ****** (пароль пишет мой :D он же никому не нужен)
-
Поменял раскладку языка в кликере на En, в окне Ru - в поле ввода логина ввел абракадабру, НО пароль ввел в поле пароля :'( Ницего ни пАнятно. Ладно, пойду домой, еще голову поломаю
-
Расставь правильно паузы.
Не так
LCLICK(760, 112) // окно логина
WAITMS(1000)
TOCLIP($akkaunt[0])
paste()
LCLICK(760, 139) // окно пароля
WAITMS(1000)
TOCLIP($akkaunt[1])
paste()
KEYPRESS(#Enter)// войти
WAIT(1)
а так
LCLICK(760, 112) // окно логина
WAITMS(50)
TOCLIP($akkaunt[0])
WAITMS(100)
paste()
WAITMS(500)
LCLICK(760, 139) // окно пароля
WAITMS(50)
TOCLIP($akkaunt[1])
WAITMS(100)
paste()
WAITMS(500)
KEYPRESS(#Enter)// войти
WAIT(1)
Можно не ставить задержку после paste(), а лучше увеличить в подпрограмме
SUB(paste) //========== Вставить ===============================================
KEYDOWN(#CTRL) // Ctrl+V
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(500)
END_SUB
-
О результате отпишусь завтра. Сегодня немного не могу
-
Поменял я паузы, ничего не поменялось. Разбирался дальше и получается, что в поле ввода логина кликер пишет не правильно только 2 аккаунта (все еще не проверил, хотя до этого все аккаунты прописывались правильно) Убрал из списка эти аккаунты, вроде заработал. И еще вопрос: может ли мышка влиять на работу кликера? Она изредка подглючивает. :'(
-
Все таки хочу разобраться, что не так с этим компом. На домашнем печатает все правильно, все логины и пароли по своим полям ввода. Комп на работе уже 5 аккаунтов отсеял:( И это я не все еще проверил. Никакой связи между аккаунтами нет, есть и латиница, и кириллица, и логин из одного слова и из двух. Вылезла еще одна загвоздка - код с командой STRCONCAT, в скрипте написанном выше в первый раз находит картинку, во второй - останавливается, хотя на домашнем компе все в норме:( Пора наверное на свалку, только другого нет :'( Может кто объяснить хоть направление, где искать?
-
Попробуй вот такой вариант
//Создаешь рядом со скриптом файл "LogPass.txt" и в него записываешь строки по образцу
//Тест1@mail.ru:111111111
//Тест2@mail.ru:абвгд
//Тест3@mail.ru:тестТестТЕСТ
//Сам скрипт:
IF(TFCOUNT("LogPass.txt") > $count)
INC($count,1)
ELSE
HALT // Стоп по достижении конца файла
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
LCLICK(10,10) // клик по полю логина
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(10,10) // клик по полю пароля
WAITMS (50)
TOCLIP($pass) // скопировать в пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
LCLICK(10,10) // клик по "Вход"
//Каждый новый проход будет считываться новая строка с логином и паролем
опробовал такой вариант смены аккаунтов? но будет ли работать оно в таком скрипте, где на аккаунтах разное количество твинов, на одном аккаунте 16, на другом 30, на большинстве 12-13. там где закрыть браузер, т.е смена аккаунта нужна.
IF(TFCOUNT("LogPass.txt") > $count)
INC($count,1)
ELSE
HALT // Стоп по достижении конца файла
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))
LCLICK(1065,120)
WAITMS (1000)
LCLICK(505,345) // клик по полю логина
WAITMS (1000)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (1000)
LCLICK(505,395) // клик по полю пароля
WAITMS (1000)
TOCLIP($pass) // скопировать в пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (1000)
LCLICK(640,470) // клик по "Вход"
WAIT(5)
//GETSCREEN
//IF_PICTURE_IN (1135,100,1200,130, "выход.bmp")
// LCLICK($_return1,$_return2)
// WAIT(5)
//END_IF
LCLICK(1185,100) // клик по "Выход"
WAIT(5)
LCLICK(805,173) // клик по "Выход"
WAIT(5)
и как можно вызвать яндекс браузер на котором есть несколько и более профилей, именно тот профиль который нужен? браузер не стоит по умолчанию.