Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Welier on February 04, 2018, 10:31:45 AM
-
Здравствуйте, тут на одном сайте, пользователи кидают промокодики, типа ХХХХХХХ либо ХХХХ-ХХХХ-ХХХХ-ХХХХ надо сделать много шаблонов, количество символов бывает разное. Текст сайта прекрасно копируется, дело в том, что чат русскоязычный, в промокоды латиницей, и цифры.
Ошибки мне не важны, главное чтобы все подряд не копировало :)
-
Я имею виду распознавать а не брутить, тоисть кликер нашел текст, который написан на латинице, и вставил его в нужное поле.
То же самое с цифрами, но буквы и цифры там все смешано
-
читаем справку - строки и файлы.
STRFILTER ("str", "set", mode) - строковая функция; возвращает отфильтрованную строку.
Параметры:
str - входная строка
set - набор символов маски
mode - режим фильтрации
Если режим будет задан как 0, то из входной строки будут вырезаны все символы, указанные в маске.
Если режим будет задан как 1, то из входной строки будут вырезаны все символы, кроме указанных в маске.
пример:
$str = "Здравствуйте, тут на одном сайте, пользователи кидают промокодики, типа AFB3-M7HJ6-CV5D-01HT, надо сделать много шаблонов, количество символов бывает разное. Текст сайта прекрасно копируется, дело в том, что чат русскоязычный, в промокоды латиницей, и цифры."
print( strfilter($str, "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 ) ) //в логе будет AFB3-M7HJ6-CV5D-01HT
HALT
-
Да спасибо большое! :D
Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..
Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?
Помогите пожалуйста кто может, буду благодарен ;)
-
Да спасибо большое! :D
Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..
Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?
Помогите пожалуйста кто может, буду благодарен ;)
как выделить нужный материал, это тебе виднее. можно с помощью ctrl+a, можно нажатием лкм и move. вот пример с тройным кликом по тексту:
//triple click
DBLCLICK($x,$y) //координаты свои
waitms(50)
LCLICK($x,$y)
waitms(150)
//ctrl+c
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)
$promo = strfilter(FROMCLIP (), "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 )
IF(STRLEN ($promo) > 1) // проверка на длину строки промокода, я поставил 1 символ, можешь сменить на нужное
//тут уж сам думай что с этим промокодом делать, можно записывать в тхт, или просто в лог.
print($promo) //смотрим в логе
TFWRITE ("promo.txt",$promo) //запись в файл "promo.txt"
END_IF
halt
-
Да спасибо большое! :D
Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..
Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?
Помогите пожалуйста кто может, буду благодарен ;)
как выделить нужный материал, это тебе виднее. можно с помощью ctrl+a, можно нажатием лкм и move. вот пример с тройным кликом по тексту:
//triple click
DBLCLICK($x,$y) //координаты свои
waitms(50)
LCLICK($x,$y)
waitms(150)
//ctrl+c
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)
$promo = strfilter(FROMCLIP (), "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 )
IF(STRLEN ($promo) > 1) // проверка на длину строки промокода, я поставил 1 символ, можешь сменить на нужное
//тут уж сам думай что с этим промокодом делать, можно записывать в тхт, или просто в лог.
print($promo) //смотрим в логе
TFWRITE ("promo.txt",$promo) //запись в файл "promo.txt"
END_IF
halt
Очень благодарен.
Просто, на сайте есть система и игрок, и они кидают текст немного в разных координатах, нужно сделать так, чтобы 2 датчика работали параллельно или последовательно, но никак не останавливались на 1, и в случае если будет N пиксель, то определенно чтобы тыкал по N координатам
GETSCREEN
IF_PIXEL_IN(1185,639, 1187,641, 5618559) // ПИКСЕЛЬ СИСТЕМЫ
IF_PIXEL_IN(1259,666, 1261,668, 2400715) // ПИКСЕЛЬ ИГРОКА
LCLICK(1205,650)
LCLICK(1205,650) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ СИСТЕМА
LCLICK(1205,650)
LCLICK(1205,619)
LCLICK(1205,619) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ ИГРОК
LCLICK(1205,619)
-
SUB(filter) // подпрограмма
// тело выполняется только после вызова
//ctrl+c
waitms(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)
$promo = strfilter(FROMCLIP (), "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 )
IF(STRLEN ($promo) > 1) // проверка на длину строки промокода, я поставил 1 символ, можешь сменить на нужное
//тут уж сам думай что с этим промокодом делать, можно записывать в тхт, или просто в лог.
print($promo) //смотрим в логе
TFWRITE ("promo.txt",$promo) //запись в файл "promo.txt"
END_IF
END_SUB
GETSCREEN
IF_PIXEL_IN(1185,639, 1187,641, 5618559) // ПИКСЕЛЬ СИСТЕМЫ
LCLICK(1205,650)
waitms(30)
LCLICK(1205,650) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ СИСТЕМА
waitms(30)
LCLICK(1205,650)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
else
IF_PIXEL_IN(1259,666, 1261,668, 2400715) // ПИКСЕЛЬ ИГРОКА
LCLICK(1205,619)
waitms(30)
LCLICK(1205,619) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ ИГРОК
waitms(30)
LCLICK(1205,619)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
end_if
end_if
halt //завершение работы
-
Наконец-то спасибо все заработало, реально спасибо! :)
Только хочу спросить, реально ли сделать так, чтобы этот код:
$promo = strfilter(FROMCLIP (), "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 )
IF(STRLEN ($promo) > 5)
Нужно сделать так, чтобы он просто брал в анализ слова где больше 5 символов, если нельзя, то обойдусь, или как-то выкручусь)
------------------------------
Ибо получаеться вот так:
Система: Промокод на 4 монеты ХХХХ-ХХХ..
Выходит: 4ХХХХ-ХХХ...
-
конечно можно
SUB(filter) // подпрограмма
waitms(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)
UNDEFINE($arr)
STRSEPARATE(FROMCLIP (), " ", $arr)
FOR($i=0,$i<ARRSIZE($arr))
$promo = strfilter($arr[$i], "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-",1)
IF(STRLEN ($promo) > 5)
print($promo) //смотрим в логе
TFWRITE ("promo.txt",$promo) //запись в файл "promo.txt"
END_IF
END_CYC
END_SUB
GETSCREEN
IF_PIXEL_IN(1185,639, 1187,641, 5618559) // ПИКСЕЛЬ СИСТЕМЫ
LCLICK(1205,650)
waitms(30)
LCLICK(1205,650) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ СИСТЕМА
waitms(30)
LCLICK(1205,650)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
else
IF_PIXEL_IN(1259,666, 1261,668, 2400715) // ПИКСЕЛЬ ИГРОКА
LCLICK(1205,619)
waitms(30)
LCLICK(1205,619) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ ИГРОК
waitms(30)
LCLICK(1205,619)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
end_if
end_if
halt //завершение работы
-
Спасибо, все работает отлично! Буду как-то запускать
-
Как автоматически скопировать текст с блокнота в который сохраняется промокод? А потом его удалить
Точнее когда скрипт нашел нужный текст, чтобы его автоматически вставить в нужное поле
-
Как автоматически скопировать текст с блокнота в который сохраняется промокод? А потом его удалить
а теперь попробуй сам ;)
подсказки:
TFREAD ("file", str_n) - строковая функция; считывает строку из файла.
Параметры:
file - имя файла.
str_n - номер строки в файле.
TOCLIP ("str") - помещает текст сообщения в буфер обмена.
Параметры:
str - строка, содержащая текст сообщения.
TFDELETE ("file", str_n) - удаляет строку из файла.
Параметры:
file - имя файла.
str_n - номер строки в файле.
если нужно скопировать весь текст, не построчно, то ответ тут - http://crapware.aidf.org/forum/index.php?topic=3784.0
-
Все равно чет не пашет(
end_if
TFREAD ("promo.txt", 1))
TOCLIP ("1")
TFCLEAR ("promo.txt")
LCLICK(262,312)
KEYDOWN (#CTRL)
WAITMS (15)
KEYDOWN (#V)
WAITMS (15)
KEYUP (#V)
KEYUP (#CTRL)
LCLICK(262,312)
LCLICK(262,312)
LCLICK(262,312)
KEYDOWN(#DELETE)
end_if
Вставляет в нужное поле "1"
-
Все равно чет не пашет(
end_if
TFREAD ("promo.txt", 1))
TOCLIP ("1")
TFCLEAR ("promo.txt")
LCLICK(262,312)
KEYDOWN (#CTRL)
WAITMS (15)
KEYDOWN (#V)
WAITMS (15)
KEYUP (#V)
KEYUP (#CTRL)
LCLICK(262,312)
LCLICK(262,312)
LCLICK(262,312)
KEYDOWN(#DELETE)
end_if
Вставляет в нужное поле "1"
к чему эти end_if -ы? TFREAD ("promo.txt", 1)) это функция, она возвращает первую строку(в твоем случае),то ее нужно к чему нибудь присвоить, присваеваем ее к какой нибудь переменной например $str . $str = TFREAD ("promo.txt", 1))
далее нужно отправить в буфер обмена эту строку. TOCLIP ("1") ты отправляешь в буфер единицу, а потом удивляешься. отправка нашей переменной $str с нашей строкой из файла - TOCLIP ($str)
у меня есть подозрения, что сохранение в файл твоих промокодов - это лишнее. и тебе требуется при появлении промокода сразу использовать его. так?
-
Все верно) Мне надо его сразу вставить в строку для ввода промокода активировать его, и ждать появление нового
-
Как тебе такой вариант
SUB(filter) // подпрограмма
waitms(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)
UNDEFINE($arr)
STRSEPARATE(FROMCLIP (), " ", $arr)
FOR($i=0,$i<ARRSIZE($arr))
$promo = strfilter($arr[$i], "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-",1)
IF(STRLEN ($promo) > 5)
print($promo) //смотрим в логе
// Здесь начинаем вставлять полученный код в строку ввода
TOCLIP($promo) // Отправляем отфильтрованное слово в буфер.
LCLICK(262,312) // Кликаем
WAITMS (15)
KEYDOWN (#CTRL) // Вставляем
WAITMS (20)
KEYPRESS (#V)
KEYUP (#CTRL)
WAITMS (20)
LCLICK(262,312) // Еще кликаем
WAITMS (100)
$i=ARRSIZE($arr) // Завершаем цикл
END_IF
END_CYC
END_SUB
GETSCREEN
IF_PIXEL_IN(1185,639, 1187,641, 5618559) // ПИКСЕЛЬ СИСТЕМЫ
LCLICK(1205,650)
waitms(30)
LCLICK(1205,650) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ СИСТЕМА
waitms(30)
LCLICK(1205,650)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
else
IF_PIXEL_IN(1259,666, 1261,668, 2400715) // ПИКСЕЛЬ ИГРОКА
LCLICK(1205,619)
waitms(30)
LCLICK(1205,619) //КЛИКНУТЬ 3 РАЗА В СЛУЧАЕ ЕСЛИ БУДЕТ ИГРОК
waitms(30)
LCLICK(1205,619)
waitms(30)
filter() // вызов подпрограммы (обязательно ниже подпрограммы)
end_if
end_if
WAITMS(50)
-
Огромное спасибо вам за помощь!
dramster и Oraven, СПАСИБО!
-
Иногда выскакивают ошибки, и текст в редких случаях не всегда анализируется, скидывает в строку, то что и скопировал
[spoiler]
SUB(filter)
waitms(15)
KEYDOWN (#CTRL)
WAITMS (15)
KEYDOWN (#C)
WAITMS (15)
KEYUP (#C)
KEYUP (#CTRL)
waitms(15)
UNDEFINE($arr)
STRSEPARATE(FROMCLIP (), " ", $arr)
FOR($i=0,$i<ARRSIZE($arr))
$promo = strfilter($arr[$i], "ABCDFJEFGHIGKLMNOPQRSTUVWXYZ0123456789-",1)
IF(STRLEN ($promo) > 5)
print($promo)
TOCLIP($promo)
LCLICK(262,312)
KEYDOWN (#CTRL)
KEYPRESS (#V)
KEYUP (#CTRL)
LCLICK(323,392)
WAITMS (155)
LCLICK(262,312)
LCLICK(262,312)
LCLICK(262,312)
WAITMS (50)
KEYPRESS(#DELETE)
$i=ARRSIZE($arr)
END_IF
END_CYC
END_SUB
GETSCREEN
IF_PIXEL_IN(1185,639, 1187,641, 5618559)
LCLICK(1205,650)
waitms(30)
LCLICK(1205,650)
waitms(30)
LCLICK(1205,650)
waitms(30)
filter()
else
IF_PIXEL_IN(1259,666, 1261,668, 2400715)
LCLICK(1200,634)
waitms(30)
LCLICK(1200,634)
waitms(30)
LCLICK(1200,634)
waitms(30)
filter()
end_if
end_if
WAITMS(55)
[/spoiler]
-
попробуй задержку после ctrl+c выставить побольше. возможно за 15мс чето не успевает в буфер влезть :-\
waitms(15)
KEYDOWN (#CTRL)
WAITMS (15)
KEYDOWN (#C)
WAITMS (15)
KEYUP (#C)
KEYUP (#CTRL)
waitms(150)// 150мс
-
Промокод на 4 монеты: DNXS-DFH3-DS1M-PQA7