Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - doushy

Pages: [1]
1
Я сейчас на новой версии пытаюсь, но у меня вообще не ищется...хотя на старой версии всё работает.
0.8 мне хватает. я сразу под игру пишу.
и опять же повторюсь, работает на старой версии, соответственно картинки рабочие, 0.8 - рабочий

2

 Испанский Стыд!
 Зачем плодить сущности и мучать старинные версии скрипта?
 Для вас, уважаемый автор новые версии выложил давным-давно, а вы // Version: 1.1 (30.01.2013)
 вместо Распознавание чисел 1.5.cms, с маниакальным упорством юзаете. :o

я бы с радостью, но другие версии у меня не работают, я не понимаю почему...
у меня вообще не ищет

3
очень много времени прошло, но надеюсь ещё остались кто поможет.

у меня только такой вариант работает. И проблема именно в том, что когда у меня чисто например 30543, то он показывает 3. если 29000, покажет 29, а на числа 23456 - всё нормально, то есть на 0, он не работает, вернее он умножает на 0 и порядок  пропускается получается...
Code: (clickermann) [Select]
#name "Распознавание чисел"
// Author: Vint
// Version: 1.1 (30.01.2013)
// Результат возвращается в $res если не найдено $res=-1
// Только целые числа. Максимум 10 разрядов. Расположение цифр равномерное.
// Вариант скрипта с последовательным перебором разрядов
// Хотел обойтись без текстовых файлов, только переменные
 
 
//====== переменные которые задаются 1 раз если всего один шрифт ====
//если в скрипте будет искаться несколько наборов шрифтов, то задавать каждый раз при вызове
$sdvig=10 // сдвиг, чуть меньше чем ширина 1 цифры с отступом
$pref="textures\digitt_" // префикс имён файлов с цифрами
 
 
//====== переменные которые задаются при вызове поиска ====
//если место поиска всего одно, задавать только один раз
$field_x1=497 // поле под число, координата X1
$field_y1=1008 // поле под число, координата y1
$field_x2=615 // поле под число, координата X2
$field_y2=1035 // поле под число, координата y2


//====== внутренние переменные  ====
$razr_max=0 // максимальная разрядность числа
$xmin=5000
$res=-1 // очищаем результат
$i=0                // очищаем результат
 
 

 
//================== начало ====================================================
FOR ($obhod, $obhod<10) // очищаем результат
   GOSUB(sdvig_razryada)
END_CYC
 
GETSCREEN($field_x1,$field_y1,$field_x2,$field_y2)

COLORMODE(7)

SCREENSHOT

FOR ($i, $i<10) // ищем самую левую цифру
   IF_PICTURE_IN ($field_x1,$field_y1,$field_x2,$field_y2, STRCONCAT($pref,$i,".bmp"),-1,80)
//LOGWRITE (STRCONCAT($pref,$i,".bmp"))
      IF($_return1<$xmin)
         $xmin=$_return1
         INC($razr_max)
         $res1=$i
         IF($res1=10) // учитываем что 10-я картинка это 0
            $res1=0
           
           
         END_IF
      END_IF
   END_IF
END_CYC
IF($xmin=5000)
   LOGWRITE ("число не найдено")
   GOTO(endfindnumber)
END_IF
 
$field_x1=$xmin+$sdvig
$perebor=1
WHILE($perebor>0)
   $razr_temp=$razr_max
   FOR ($i,$i<11)
      IF_PICTURE_IN ($field_x1,$field_y1,$field_x1+INT($sdvig*1.3),$field_y2, STRCONCAT($pref,$i,".bmp"),-1,90)
         $field_x1=$_return1+$sdvig
         IF($i<11)
            INC($razr_max)
            GOSUB(sdvig_razryada)
            IF($res1=10) // учитываем что 10-я картинка это 0
               $res1=1
            END_IF
           
         END_IF
         IF($i=11) // проверка если нашли маркер конца ...11.bmp, то конец
            $perebor=0
         END_IF
         $i=11              // выходим из цикла
      END_IF
   END_CYC
   IF(($razr_temp=$razr_max) | ($razr_max=10)) // проверка если не нашли или уже 10 разрядов, то конец
      $perebor=0
   END_IF
END_CYC
 
// подсчитываем
$res=$res1+$res2*10+$res3*100+$res4*1000+$res5*10000+$res6*100000+$res7*1000000+$res8*10000000+$res9*100000000+$res10*1000000000
LOGWRITE ("res1:  ",$res1)
LOGWRITE ("res2:  ",$res2)
LOGWRITE ("res3:  ",$res3)
LOGWRITE ("res4:  ",$res4)
LOGWRITE ("res5:  ",$res5)
LOGWRITE ("res6:  ",$res6)
LOGWRITE ("res7:  ",$res7)
LOGWRITE ("res8:  ",$res8)
LOGWRITE ("res9:  ",$res9)
LOGWRITE ("res10:  ",$res10)


LOGWRITE (STRCONCAT($res1,$res2,$res3,$res4,$res5,$res6,$res7,$res8,$res9,$res10,))



endfindnumber:

LOGWRITE ("Найдено число:  ",$res)
HINTPOPUP("Найдено число:  ",$res)
HALT
 
 
//==============================================================================
SUB(sdvig_razryada)
   $res10=$res9
   $res9=$res8
   $res8=$res7
   $res7=$res6
   $res6=$res5
   $res5=$res4
   $res4=$res3
   $res3=$res2
   $res2=$res1
   $res1=$i
END_SUB
//==============================================================================

4
Общие вопросы / Autoclick с переключением
« on: December 20, 2020, 07:04:45 PM »
Привет. подскажите, можно ли сделать, чтобы скрипт, например работал по toggle начатию клавиши. По русски: Нажал F5, скрипт работает, нажал ещё раз, скрипт не работает, и так по кругу.

сам скрипт работает так: "Нажимаешь правую кнопку(прицел) и он кликает(стреляет), пока не отпустишь правую кнопку"

Code: (clickermann) [Select]
$var0 = 0

IF(ISKEYDOWN(#L)=1)
$var1 = 1
   WHILE(($var0 = 0)& ($var1 = 1))
      IF(ISKEYDOWN(2)=1)
         IF(ISKEYDOWN(1)=1)// 1 клик на левую мышь, после чего начнет долбить с интервалом 20 мс
         $var = 1
            WHILE($var = 1)
               LCLICK($_xmouse,$_ymouse)
               WAITMS(20)
                  IF(ISKEYDOWN(2)!1)// 1 клик на правую мышь, чтоб выключить
                  $var = 0
                  END_IF
            END_CYC
         END_IF
      END_IF
   END_CYC
END_IF

5
- мне сказали что нужны к каждому пикселю GETSCREEN
- Ну нужно проверять проверять много чего, поэтому и много в одну точку
- Возможно старая наработка была, не удалил...Вообще тоже кое что отслеживал...
- Ну время, это чтобы каждые 10-20 минут что то делал...

6
Такой вопрос...у меня Кликер, спустя время, начинает хуже работать...через пару часов, вообще 1 цикл выпорнят в 100 раз медленее...и если нажать стоп и заново запустить, то всё хорошо...Если ли здравое решение этой проблемы, типо обнуление данных или что то типо того...В скрипте много работы с пикселями...Когда скрипт 2500 циклов делает, то скорость цикла падает в 3 раза...когда 100000 циклов, скорость падает в 100-1000 раз, и получается цикл по 10 сек выполняется...и вариант как вторым кликером перезапускать первые - нету...а это не много туповато)))

Code: (clickermann) [Select]
IF($time_6 < $_time_t) //Окно (разрешение обязательно 1920x1080)
   wndpos( wndfind("CTA"), 1396, 0)
   wndsize( wndfind("CTA"), 487, 1040)
   LCLICK(1638,20)
   WAITMS(500)
   $time_6 = $_time_t + 3600
END_IF

DEFINE($var, 2)

GETSCREEN
IF_PIXEL_IN(1400,234, 1877,265, 48111)
   LCLICK($_return1, $_return2)
   WAITMS(500)
   
   GETSCREEN
   IF_PIXEL_IN(1562,491, 1710,573, 16760320)
      LCLICK($_return1, $_return2)
      WAIT(61)
      KEYPRESS(#ESC)
      WAIT(2)
      KEYPRESS(#F1)
      WAIT(1)
      KEYPRESS(#F1)
      WAIT(1)
     
      GETSCREEN
      IF_PIXEL_IN(1659,487, 1659,487, 13291479) //4 кри
         DEFINE($var_1, 4)
      END_IF
      IF_PIXEL_IN(1654,491, 1654,491, 12765393) //2 кри
         DEFINE($var_1, 2)
      END_IF
      IF_PIXEL_IN(1642,490, 1642,490, 15330286) //10 кри
         DEFINE($var_1, 10)
      END_IF
     
      LOGWRITE(" ", $var_1)
      UNDEFINE ($var_1)
      LCLICK(1644,582)
      WAITMS(1500)
      LCLICK(1644,582)
      WAITMS(500)
      LCLICK(1644,582)
      WAIT(1)
     
      GETSCREEN
      IF_PIXEL_IN(1820,57, 1840,64, 1195122) //Крестик
         LCLICK($_return1, $_return2)
         WAITMS(500)
      END_IF
      WAIT(1)
      GETSCREEN
      IF_PIXEL_IN(1555,653,1557,655, 6622) //Крестик красный на закрытик
         LCLICK(1558,655) // 6622
         WAITMS(500)
      END_IF
     
   END_IF
END_IF

IF($time_1 < $_time_t)
   GETSCREEN
   IF_PIXEL_IN(1795,448, 1795,448, 4953)
      WAITms(300)
      LCLICK($_return1, $_return2)
      WAIT(61)
     
      KEYPRESS(#ESC)
      WAIT(2)
      KEYPRESS(#F1)
      WAIT(1)
      KEYPRESS(#F1)
      WAIT(1)
     
      LCLICK(1644,582)
      WAITMS(1500)
      LCLICK(1644,582)
      WAITMS(500)
      LCLICK(1644,582)
      WAIT(1)
     
      GETSCREEN
      IF_PIXEL_IN(1820,57, 1840,64, 1195122) //Крестик
         LCLICK($_return1, $_return2)
         WAITMS(500)
      END_IF
      WAIT(1)
     
      GETSCREEN
      IF_PIXEL_IN(1555,653,1557,655, 6622) //Крестик красный на закрытик
         LCLICK(1558,655) // 6622
         WAITMS(500)
         
         $time_1 = $_time_t + 1200
      END_IF
   END_IF
END_IF

IF($time_2 < $_time_t)
   GETSCREEN
   IF_PIXEL_IN(1429,866,1431,868, 0) //АФК
      LCLICK($_return1, $_return2)
      WAITMS(500)
      GETSCREEN
      IF_PIXEL_IN(1590,577, 1688,623, 14470400)
         LCLICK($_return1, $_return2)
         $time_2 = $_time_t + 600
      END_IF
   END_IF
END_IF

If ($var = 2)
   IF($time_3 < $_time_t)
      GETSCREEN
IF_PIXEL_IN(1435,925,1437,927, 931432)    //завис
      else
         KEYPRESS(#home)
         WAIT(2)
         KEYPRESS(#F1)
         WAIT(1)
         LDOWN(1670,934)
         WAIT(1)
         LCLICK(1615,823)
         LCLICK(1615,823)
         WAITMS(1500)
         LCLICK(1446,765)
         Wait(15)
         
         GETSCREEN
         IF_PIXEL_IN(1587,545, 1694,608, 14470144, 14668032) //Синие окно
            LCLICK(1644,582)
            WAITMS(500)
         END_IF
         Wait(1)
         GETSCREEN
IF_PIXEL_IN(1820,57, 1840,64, 1195122) //Крестик
            LCLICK($_return1, $_return2)
            WAIT(1)
         END_IF
         
         GETSCREEN
         IF_PIXEL_IN(1587,545, 1694,608, 14338048) //Синие окно
            LCLICK(1644,582)
            WAITMS(500)
         END_IF
         
         LCLICK(1720,1000)
         WAITMS(500)
      END_IF
     
      $time_3 = $_time_t + 600
   END_IF
END_IF

GETSCREEN
IF_PIXEL_IN(1587,545, 1694,608, 14470144) //Синие окно
   LCLICK(1644,582)
   WAITMS(500)
   GETSCREEN
END_IF

IF_PIXEL_IN(1820,57, 1840,64, 1195122) //Крестик
   LCLICK($_return1, $_return2)
   WAIT(1)
   GETSCREEN
END_IF

IF_PIXEL_IN(1830,244, 1830,244, 1195122) //Крестик
   LCLICK($_return1, $_return2)
   WAIT(1)
END_IF

DEFINE($time, $_time_t + 600)
IF($time < $_time_t)
   LCLICK(42,718)  // 4777089
   $time = $_time_t + 600
END_IF

WAITMS(100)

7
Oraven, спасибо

а ещё, это так делается, что два временных условия выполнялись не зависимо друг от друга ?!
или по другому ?!...по мочему то есть задержка, то есть нет такого что первое, первое второе, первое, первое второе...оно как то странно это делает....

Code: (clickermann) [Select]
IF($time_1 < $_time_t)
   LCLICK(413,757) 
   $time_1 = $_time_t + 5
END_IF

IF($time_2 < $_time_t)
   LCLICK(417,838) 
   $time_2 = $_time_t + 10
END_IF

8
Подскажите, почему условие зациклилось на последнем(где время), оно же должно каждые 20 минут

Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(1077,243, 1543,280,        48618)   //Это поиск сундука. Первые 2 числа, это x1y1, вторые - x2y2. Рисует прямоугольник и там ищет цвета(которые идут дальше))
   $x1 = $_return1
   $y1 = $_return2
   $c1 = PXL($x1, $y1)
   LCLICK($x1, $y1)
   WAITMS(300)
   
   IF_PIXEL_IN(1240,490, 1384,562, 16760320)           //это проверка, когда выскакивает окошко вы хотите посмотреть видео. и цвет поиска прям в серединке типо.
      LCLICK($_return1, $_return2)
      LOGWRITE("Координаты:", $x1, "," $y1, " Цвет = ", $c1)
      WAIT(1)
      LCLICK(1307, 535)                                   //хз куда наживает, но по логике туда, где до этого нажимает пред. строчка)
      WAIT(40)
      LCLICK(1531,68)
      //жмёт на крестик. закрывает рекламу.
      WAIT(2)
      LCLICK(1312,584)               //собирает награду.
      WAIT(1)
      LCLICK(1331,341)
      WAIT(1)
      LCLICK(1331,341)                //жмёт в поле, что бы убрать окно, если выскачит, но это наверное не важно, это предыдущие ошибки.
      WAIT(1)
   ELSE
      WAITMS(50)
   END_IF
END_IF

DEFINE($time, $_time_t + 1200)
IF($time < $_time_t)
   WAIT(5)
   LCLICK(1261,988)  // 10914
   WAIT(1)
   LCLICK(1399,990)  // 410316
   WAITms(300)
   LCLICK(1485,466)  // 3492740
   WAIT(40)
   LCLICK(1531,68)
   WAIT(2)
   LCLICK(1312,584)
   WAIT(1)
   LCLICK(1331,341)
   WAIT(1)
   LCLICK(1331,341)
   WAIT(1)
   
   $time = $_time_t + 1200                          /
   
END_IF



//LCLICK(1073,11)  // 2104092

9
Условия: в течение 60 секунд он ищет цвет в области...первый не нашёл, дальше ищёт, если второй не нашёл, дальше...и так в течение 60 секунд, если он в какой то момент находит, то он ждём в определённое место и цикл завершён. Если по истечению времени он не находит, то жмёт тоже в другое место...(Для наглядности: в игре есть реклама, которая длиться от 20 до 59 секунд. хочу чтобы он отслеживал крестики и закрывал рекламу по истечению времени. если он всё таки не найдёт, то просто по истечению сам закрывал рекламу.)
п.с. Объединять цвета нельзя, потому что так могут быть не цвета, а файлы.

вот, начал, но запутался(
Code: (clickermann) [Select]
$time = $_time_t + 60
WHILE($time > $_time_t)
   GETSCREEN
   IF_PIXEL_IN(1491,58,1532,100, 3092272)
      LCLICK($_return1, $_return2)
      $time = 0
      WAIT(1)
   else
 IF_PIXEL_IN(1491,58,1532,100, 1665435)
      LCLICK($_return1, $_return2)
      $time = 0
      WAIT(1)
   else
      IF_PIXEL_IN(1470,56,1541,110, 6513764)
         LCLICK($_return1, $_return2)
         $time = 0
         WAIT(1)
      else
         WAITMS(50)
      END_IF
   END_IF
END_CYC
 
HALT

10
Да, я уже разобрался с этим вопросом, спасибо.
Что по поводу проги ?подскажиье пожалуйста

11
А как сделать цикл, чтобы он повторялся в течении 60 секунд к примеру ?

Vint, Спасибо. Не поверишь, но справка у меня не работает. написано файла не найдено. так что прошу у вас совета...извините за тупые вопросы. Спасибо

где ошибка ?Да, знаю, бред написан, тем более не дописан, но я запутался:( и да, я знаю что цвета можно запихнуть в одну кучу, но мне нужно именно так для понимания Подправьте пожалуйста...(хочу что бы он в течение 60 секунд проверял то или иное место, и если не находил ничего, то заново искал, а по истечению 60 сек нажимал в выбранное место...

Code: (clickermann) [Select]
$time = $_time_t + 60
WHILE($time > $_time_t) // öèêë äëèòñÿ 60 ñåê
   
   GETSCREEN
   IF_PIXEL_IN(1491,58,1532,100, 3092272)
      LCLICK($_return1, $_return2)
      $time = 0
      WAIT(1)
   else
     
      IF_PIXEL_IN(1470,56,1541,110, 6513764)
         LCLICK($_return1, $_return2)
         $time = 0
         WAIT(1)
      else
         WAITMS(50)
      END_IF
   END_IF
END_CYC

HALT

12
  • Вопросик, как можно сделать, что бы сам кликер спустя время(например час), выключался и включался(ну типо запускался по новой)
  • Как сделать так, чтобы LOGWRITE выполнялся после второго pixel, но писал данные первого поиска(так как второй pixel это просто проверка, а данные нужны с первого)
  • И ещё, как сделать if в if (например: чтобы кусок где "IF($time < $_time_t)" , перед этим проверился (IF_PIXEL_IN или IF_PICTURE_IN).
  • Как сделать, go-goto(go), если оно уже используется ?!как то go переименовать или как ?
П.с. Извините что так много вопросов. Просто очень интересно стало в этой области...


Code: (clickermann) [Select]
GETSCREEN
go:
IF_PIXEL_IN(1077,243, 1543,280, 5816544,   2410228,      3920632,  5431289,    2996716,   48618 )
   
   WAITMS(1)
   LCLICK($_return1, $_return2)
   WAITMS(300)
   
   //
   
   IF_PIXEL_IN(1240,490, 1384,562, 16760320)
      LCLICK($_return1, $_return2)
      LOGWRITE ("Координаты:", $_return1, "," $_return2, " Цвет = ", PXL($_return1,$_return2))
      WAIT(1)
      LCLICK(1307, 535)
      WAIT(40)
      LCLICK(1512,65)
      WAIT(2)
      LCLICK(1312,584)
      WAIT(1)
      LCLICK(1331,341)
      WAIT(1)
   ELSE
      goto(go)
      WAITMS(50)
   END_IF
END_IF

WAITMS(100)

IF($time < $_time_t)
   LCLICK(1319,989)
   WAIT(1)
   LCLICK(1395,987)
   WAIT(1)
   LCLICK(1488,458)
   WAIT(40)
   LCLICK(1520,59)
   WAIT(1)
   LCLICK(1332,327)
   WAIT(1)
   LCLICK(1395,987)
   WAIT(1)
   $time = $_time_t + 1200
END_IF

13
Спасибо, Oraven.
Но вот с потоками что то не получается...не работает первая часть, только вторая(
Ещё такой не стандартный вопрос. возможно ли сделать так, чтобы второе условие когда выполнялось, первое не работала, но и сделать так, чтобы втрое условие врубалось после 20 минут, но обязательно по завершению первого. потому что сейчас бывают случаи, когда второе, спустя 20 минут включается, а в это время первый кусок ещё не выполнил своё действие...

14
Oraven, спасибо большое, а ещё один вопрос, можно ли сделать так, чтобы в лого выводило координаты(это понятно как), и цвет, по которому он нашёл совпадение(Это при условии, что там много цветов в коде)

И ещё, как сделать, что бы не с 20 минуты начиналось второе условие, а с запуска и соответственно каждые 20 минут.

15
Подскажите, как сделать так, чтобы первое действие выполнялось всегда, а второе, которое "//", каждые 20 минут...или в идеале, чтобы когда второе выполнялось, первое временно переставала работать.


GETSCREEN
IF_PIXEL_IN(1072,247, 1543,284, 2410228)
   LCLICK($_return1, $_return2)
   WAITMS(1000)
   LCLICK(1307, 535)
   WAITMS(40000)
   LCLICK(1512,65)
   WAITMS(1000)
   LCLICK(1312,584)
   WAITMS(1000)
   LCLICK(1331,341)
END_IF



/ //
    LCLICK(1111,111)
    WAITMS(1000)
    LCLICK(345,111)
    WAITMS(1000)
    LCLICK(561,111)
   WAITMS(120000)
   
 ///
   

Pages: [1]