Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Welier on February 04, 2018, 10:31:45 AM

Title: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 10:31:45 AM
Здравствуйте, тут на одном сайте, пользователи кидают промокодики, типа ХХХХХХХ либо ХХХХ-ХХХХ-ХХХХ-ХХХХ надо сделать много шаблонов, количество символов бывает разное. Текст сайта прекрасно копируется, дело в том, что чат русскоязычный, в промокоды латиницей, и цифры.

Ошибки мне не важны, главное чтобы все подряд не копировало :)


Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 11:17:55 AM
Я имею виду распознавать а не брутить, тоисть кликер нашел текст, который написан на латинице, и вставил его в нужное поле.
То же самое с цифрами, но буквы и цифры там все смешано
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 04, 2018, 12:08:09 PM
читаем справку - строки и файлы.

STRFILTER ("str", "set", mode) - строковая функция; возвращает отфильтрованную строку.

Параметры:
str - входная строка
set - набор символов маски
mode - режим фильтрации

Если режим будет задан как 0, то из входной строки будут вырезаны все символы, указанные в маске.
Если режим будет задан как 1, то из входной строки будут вырезаны все символы, кроме указанных в маске.

пример:
Code: (clickermann) [Select]
$str = "Здравствуйте, тут на одном сайте, пользователи кидают промокодики, типа AFB3-M7HJ6-CV5D-01HT, надо сделать много шаблонов, количество символов бывает разное. Текст сайта прекрасно копируется, дело в том, что чат русскоязычный, в промокоды латиницей, и цифры."

print( strfilter($str, "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 ) ) //в логе будет AFB3-M7HJ6-CV5D-01HT
HALT

Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 01:20:08 PM
Да спасибо большое!  :D

Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..

Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?

Помогите пожалуйста кто может, буду благодарен ;)
 


Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 04, 2018, 01:35:11 PM
Да спасибо большое!  :D

Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..

Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?

Помогите пожалуйста кто может, буду благодарен ;)

как выделить нужный материал, это тебе виднее. можно с помощью ctrl+a, можно нажатием лкм и move. вот пример с тройным кликом по тексту:

Code: (clickermann) [Select]
//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
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 02:26:23 PM
Да спасибо большое!  :D

Но столкнулся с проблемами, справку читал, голова не варит, сам не в этом направлении..

Допустим бот скопировал весь текст который нужно анализировать, куда его потом вставлять?
И еще, когда бот анализировал текст, выделил нужный материал, как сделать чтобы скрипт его автоматически скопировал, без моего участия?

Помогите пожалуйста кто может, буду благодарен ;)

как выделить нужный материал, это тебе виднее. можно с помощью ctrl+a, можно нажатием лкм и move. вот пример с тройным кликом по тексту:

Code: (clickermann) [Select]
//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)


Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 04, 2018, 02:53:03 PM
Code: (clickermann) [Select]
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    //завершение работы
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 03:29:45 PM
Наконец-то спасибо все заработало, реально спасибо!  :)

Только хочу спросить, реально ли сделать так, чтобы этот код:

   $promo = strfilter(FROMCLIP (), "ABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789-", 1 )
 
   IF(STRLEN ($promo) > 5) 

Нужно сделать так, чтобы он просто брал в анализ слова где больше 5 символов, если нельзя, то обойдусь, или как-то выкручусь)

------------------------------

Ибо получаеться вот так:
Система: Промокод на 4 монеты ХХХХ-ХХХ..
Выходит: 4ХХХХ-ХХХ...




Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Oraven on February 04, 2018, 03:41:54 PM
конечно можно

Code: (clickermann) [Select]
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    //завершение работы
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 03:59:23 PM
Спасибо, все работает отлично! Буду как-то запускать
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 05:57:28 PM
Как автоматически скопировать текст с блокнота в который сохраняется промокод? А потом его удалить

Точнее когда скрипт нашел нужный текст, чтобы его автоматически вставить в нужное поле
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 04, 2018, 06:03:00 PM
Как автоматически скопировать текст с блокнота в который сохраняется промокод? А потом его удалить
а теперь попробуй сам  ;)

подсказки:

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

Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 06:27:08 PM
Все равно чет не пашет(

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"
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 04, 2018, 06:43:07 PM
Все равно чет не пашет(

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)

у меня есть подозрения, что сохранение в файл твоих промокодов - это лишнее. и тебе требуется при появлении промокода сразу использовать его. так?
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 06:48:30 PM
Все верно) Мне надо его сразу вставить в строку для ввода промокода активировать его, и ждать появление нового
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Oraven on February 04, 2018, 07:13:28 PM
Как тебе такой вариант
Code: (clickermann) [Select]
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)
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 04, 2018, 07:32:45 PM
Огромное спасибо вам за помощь!
dramster и Oraven, СПАСИБО!
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 05, 2018, 03:58:02 PM
Иногда выскакивают ошибки, и текст в редких случаях не всегда анализируется, скидывает в строку, то что и скопировал

[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]
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: dramster on February 05, 2018, 04:19:31 PM
попробуй задержку после ctrl+c выставить побольше. возможно за 15мс чето не успевает в буфер влезть  :-\
Code: (clickermann) [Select]
   waitms(15)
   KEYDOWN (#CTRL)
   WAITMS (15)
   KEYDOWN (#C)
   WAITMS (15)
   KEYUP (#C)
   KEYUP (#CTRL)
   waitms(150)// 150мс
Title: Re: Помогите со скриптом! Распознавание текста.
Post by: Welier on February 05, 2018, 05:28:01 PM
Промокод на 4 монеты: DNXS-DFH3-DS1M-PQA7