Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - BiG

Страницы: [1]
1
Спасибо

2
Общие вопросы / Не сворачивается в трей Clickermann
« : Сентябрь 13, 2019, 06:35:31 pm »
Всем привет, Clickermann 4.13 х32 сворачивается в маленькое окошко возле "Пуска", а не в трей, как я предполагал. Это баг или нет?
Код: Clickermann
  1. wait(1)
  2. WNDSTATE ($_hwnd_self,0)
  3. halt

3
Использование / Re: Кликер в Кроссаут
« : Апрель 23, 2019, 01:48:38 pm »
Тоже пытался сделать, но так и не доделал до конца. Но зато мой отжимает нажатую кнопку =) Отключается кнопкой "R". Может кто сможет допилить
Код: Clickermann
  1. THREAD(R, 1)
  2.   IF(ISKEYDOWN(#R)=1)
  3.      $time = $_ms +2000
  4.      waitms(50)
  5.   END_IF
  6. END_THREAD
  7.  
  8.  
  9. IF ( iskeydown(1)=1)
  10. WHILE ( $time < $_ms)
  11.   GETSCREEN(832,944,920,950)
  12.   IF  (PXLCOUNT(832,944,920,950, 16777215)>5)
  13.      LDOWN(960,458)
  14.      waitms(rnd(790,810))
  15.      LUP(960,458)
  16.      waitms(RND(390,460))  // 380
  17.   else
  18.      LUP(960,458)
  19.   END_IF
  20.   waitms(20)
  21. END_CYC  
  22. ELSE
  23.   $time = $_ms +900 // Не запускать скрипт от случайного нажатия
  24. END_IF
  25. WAITms(10)

4
Вроде так
10,30 - верхний левый
20,40 - нижний правый
Код: Clickermann
  1. $var=rnd(1,4)
  2. IF($var ! $var1)
  3.   SWITCH($var)
  4.      CASE(1)
  5.         LCLICK(rnd(10,20),rnd(30,40))
  6.  
  7.      CASE(2)
  8.         LCLICK(rnd(50,60),rnd(70,80))
  9.  
  10.      CASE(3)
  11.         LCLICK(rnd(90,100),rnd(110,120))
  12.  
  13.      CASE(4)
  14.         LCLICK(rnd(130,140),rnd(150,160))
  15.   END_SWITCH
  16.   $var1 = $var // Не кликать в тот же сектор
  17. END_IF
  18. waitms(1000)

5
Спасибо,буду изучать недели две) Мини карта постоянно двигается и крутится когда я перемещаюсь нажимая WSADQE, я на миникарте всегда в центре.

6
Пол года трудился над скриптом,боюсь бан получить. На подобии WoT. Отправил название личкой
Код: Clickermann
  1. #logfile "??????? LOG.txt"
  2.  
  3. SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
  4.   $MOVE_SPEED = 1  // множитель скорости (отвечает за количество точек)
  5.   $MOVE_Start_X = $_xmouse
  6.   $MOVE_Start_Y = $_ymouse
  7.   $MOVE_X = $MOVE_Start_X
  8.   $MOVE_Y = $MOVE_Start_Y
  9.   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
  10.   $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
  11.   IF($MOVE_SPEEDVAR < 1)
  12.      $MOVE_SPEEDVAR = 1
  13.   END_IF
  14.   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
  15.   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
  16.   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
  17.   FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
  18.      $MOVE_X = $MOVE_X + $MOVE_X_step
  19.      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
  20.      MOVE(ROUND($MOVE_X,0)+RND(-2,2), ROUND($MOVE_Y,0)+RND(-2,2)) // добавляем рандом
  21.      WAITMS($rnwait) // задержка при движении по точкам
  22.   END_CYC
  23. END_SUB
  24. SUB(m_move,$Mm_X,$Mm_Y)
  25.   $rnwait = RND(6,15) // случайная скорость
  26.   $MOVE_MID_X = ($_xmouse+$Mm_X)/2
  27.   $MOVE_MID_Y = ($_ymouse+$Mm_Y)/2
  28.   mouse_move($MOVE_MID_X+RND(-30,30),$MOVE_MID_Y+RND(-30,30))
  29.   mouse_move($Mm_X,$Mm_Y)
  30.   MOVE($Mm_X,$Mm_Y) //Передвинуть окончательно в заданную точку
  31. END_SUB
  32. //===================================================================
  33. LOGSHOW(1,1618,0)   // Лог и его позиция
  34. waitms(50)
  35. WNDSIZE ( wndfind("Лог"), 300, 1030) // Размер лога
  36. waitms(50)
  37. $win_x = 1616  // Ширина окна 1600
  38. $win_y = 938   // Высота окна 900
  39. FOR($wn, $wn < 1)
  40.   WNDSIZE ( wndfind("???????"), $win_x, $win_y)
  41.   waitms(250)
  42.   WNDPOS ( wndfind("???????"), 0, 0) // Центрировать окно по левому краю
  43.   waitms(150)
  44. END_CYC
  45. //==========================
  46. $m_x = 1278       // Вся мини карта
  47. $m_y = 600       // Вся мини карта
  48. $m_max_x = 1574      // Вся мини карта
  49. $m_max_y = 896       // Вся мини карта
  50. $by_x = $m_c_x-10          // Враг близко
  51. $by_y = $m_c_y-10          // Враг близко
  52. $by_x1 = $m_c_x+10         // Враг близко
  53. $by_y1 = $m_c_y+10         // Враг близко
  54. $m_c_x = INT(($m_x+$m_max_x)/2)  // Центр мини карты
  55. $m_c_y = INT(($m_y+$m_max_y)/2)  // Центр мини карты
  56. $m_x2 = INT(($m_c_x+$m_x)/2)        // X
  57. $m_x1 = INT(($m_x2+$m_x)/2)         // X
  58. $m_x3 = INT(($m_c_x+$m_x2)/2)       // X
  59. $m_y2 = INT(($m_c_y+$m_y)/2)            // Y
  60. $m_y1 = INT(($m_y2+$m_y)/2)             // Y
  61. $m_y3 = INT(($m_c_y+$m_y2)/2)           // Y
  62. $m_x5 = INT(($m_c_x+$m_max_x)/2)    // X
  63. $m_x4 = INT(($m_c_x+$m_x5)/2)       // X
  64. $m_x6 = INT(($m_x5+$m_max_x)/2)     // X
  65. $m_y5 = INT(($m_c_y+$m_max_y)/2)        // Y
  66. $m_y4 = INT(($m_c_y+$m_y5)/2)           // Y
  67. $m_y6 = INT(($m_y5+$m_max_y)/2)         // Y
  68. FOR($print,$print < 1)
  69.   print ("=========== ВСЯ КАРТА ===========")
  70.   print ("$m_x:",$m_x," ","$m_c_x:",$m_c_x," ","$m_max_x:",$m_max_x)
  71.   print ("$m_y:",$m_y," ","$m_c_y:",$m_c_y," ","$m_max_y:",$m_max_y)
  72.   print ("=================================")
  73.   print ("$m_x1:",$m_x1, " ","$m_x2:",$m_x2," ","$m_x3:",$m_x3)
  74.   print ("$m_x4:",$m_x4, " ","$m_x5:",$m_x5," ","$m_x6:",$m_x6)
  75.   print ("=================================")
  76.   print ("$m_y1:",$m_y1, " ","$m_y2:",$m_y2," ","$m_y3:",$m_y3)
  77.   print ("$m_y4:",$m_y4, " ","$m_y5:",$m_y5," ","$m_y6:",$m_y6)
  78. END_CYC
  79. //===============================
  80. SUB(key)                // Проверить нажатые кнопки и отжать
  81.   if ( iskeydown(#W)=1 )
  82.      KEYUP(#W)
  83.      waitms(10)
  84.   end_if
  85.   if ( iskeydown(#A)=1 )
  86.      KEYUP(#A)
  87.      waitms(10)
  88.   end_if
  89.   if ( iskeydown(#S)=1 )
  90.      KEYUP(#S)
  91.      waitms(10)
  92.   end_if
  93.   if ( iskeydown(#D)=1 )
  94.      KEYUP(#D)
  95.      waitms(10)
  96.   end_if
  97.   if ( iskeydown(#Q)=1 )
  98.      KEYUP(#Q)
  99.      waitms(10)
  100.   end_if
  101.   if ( iskeydown(#E)=1 )
  102.      KEYUP(#E)
  103.      waitms(10)
  104.   end_if
  105. END_SUB
  106. //===============================
  107. SUB(S,$t)
  108.   SETTHREAD (W, 2)
  109.   key()
  110.   KEYDOWN(#S)
  111.   waitms(rnd(500,1000)+$t)
  112.   KEYUP(#S)
  113.   waitms(rnd(50,100))
  114. END_SUB
  115. //===============================
  116. SUB(A,$t)
  117.   IF($ta < $_ms)
  118.      waitms(rnd(50,150))
  119.      KEYDOWN(#A)
  120.      waitms(rnd(200,300)+$t)
  121.      KEYUP(#A)
  122.      $ta = $_ms+1800
  123.   END_IF
  124. END_SUB
  125. //===============================
  126. SUB(D,$t)
  127.   IF($td < $_ms)
  128.      waitms(rnd(50,150))
  129.      KEYDOWN(#D)
  130.      waitms(rnd(200,300)+$t)
  131.      KEYUP(#D)
  132.      $td = $_ms+1800
  133.   END_IF
  134. END_SUB
  135. //===============================
  136. THREAD(W, 0)
  137.   print("W")
  138.   KEYDOWN(#W)
  139.   waitms(rnd(4000,8000))
  140.   KEYUP(#W)
  141.   waitms(rnd(1000,1500))
  142. END_THREAD
  143. //===============================
  144. THREAD(Ckey, 1) // Если АФК
  145.   DEFINE($tkey,$_ms+6000)
  146.   if ((iskeydown(#W)=1)|(iskeydown(#S)=1)|(iskeydown(#Q)=1)|(iskeydown(#E)=1)|(iskeydown(#A)=1)|(iskeydown(#D)=1)|(iskeydown(1)=1))
  147.      $tkey = $_ms+6000
  148.   End_IF
  149.   IF($tkey<$_ms)
  150.      $base=1
  151.   End_IF
  152.   waitms(50)
  153. END_THREAD
  154. //===============================
  155. IF($scan=0)
  156.   $x=0
  157.   $y=0
  158.   GETSCREEN (0,0,$win_x,$win_y)
  159.   SCANPXL($arr,$m_x,$m_y,$m_max_x,$m_c_y,16230484) // Свой 16230484, бот 13997650
  160.   FOR($a=0,$a<ARRSIZE($arr),2)
  161.      IF(DIST($arr[$a],$arr[$a+1],$m_c_x,$m_c_y)<DIST($x,$y,$m_c_x,$m_c_y))
  162.         $x=$arr[$a]
  163.         $y=$arr[$a+1]
  164.      END_IF
  165.   END_CYC
  166.   IF(($x=0)&($y=0))
  167.      SCANPXL($orr,$m_x,$m_c_y,$m_max_x,$m_max_y,16230484)
  168.      FOR($b=0,$b<ARRSIZE($orr),2)
  169.         IF(DIST($orr[$b],$orr[$b+1],$m_c_x,$m_c_y)<DIST($x,$y,$m_c_x,$m_c_y))
  170.            $x=$orr[$b]
  171.            $y=$orr[$b+1]
  172.         END_IF
  173.      END_CYC
  174.   END_IF
  175.   IF((ARRSIZE($arr)>1)|(ARRSIZE($orr)>1))
  176.      $base=0
  177.   else
  178.      $base=1
  179.   END_IF
  180.   UNDEFINE($arr)
  181.   UNDEFINE($orr)
  182. END_IF
  183. //================================
  184. GETSCREEN(0,0,$win_x,$win_y)               // Застрял
  185. $stuck1 = $stuck
  186. $stuck =  PXLCRC($m_x2,$m_y4,$m_x5,$m_y4)
  187. IF (($stuck = $stuck1)&($stuck2 < $_ms))
  188.   print("ЗАСТРЯЛ")
  189.   S(500)
  190.   KEYDOWN(RNDFROM(81,69))
  191.   waitms(rnd(2500,4500))
  192.   key()
  193. END_IF
  194. waitms(20)
  195. //================================
  196. IF($base=1)     // Ищем базы
  197.   GETSCREEN(0,0,$win_x,$win_y)
  198.   COLORMODE(7, $m_x,$m_y,$m_max_x,$m_max_y)
  199.   IF_PICTURE_IN ($m_x,$m_y, $m_max_x,$m_max_y, "В_ру.bmp", 255, 100)
  200.      print("Вижу базу В")
  201.      $x = $_return1+6
  202.      $y = $_return2+6
  203.   else
  204.      WAITMS(20)
  205.      print("Не вижу базу B")
  206.      GETSCREEN(0,0,$win_x,$win_y)
  207.      COLORMODE(7, $m_x,$m_y,$m_max_x,$m_max_y)
  208.      IF_PICTURE_IN ($m_x,$m_y, $m_max_x,$m_max_y, "А_ру.bmp", 255, 100)
  209.         print("Вижу базу А")
  210.         $x = $_return1+6
  211.         $y = $_return2+6
  212.      else
  213.         Waitms(20)
  214.         print("Не вижу базу А")
  215.         A(0)
  216.      END_IF
  217.   END_IF
  218.   waitms(20)
  219. END_IF
  220. //=================================
  221. $go=1
  222. IF (($m_x3<$x)&($m_x4>$x)&($m_y<$y)&($by_y>$y)&($go=1))      // W (a3-d4-18)
  223.   SETTHREAD (W, 1)
  224.   waitms(1000)
  225.   $go=0
  226. else
  227.   $go=1
  228. END_IF
  229. //=====================
  230. IF (($m_x<$x)&($by_x>$x)&($m_y3<$y)&($m_c_y>$y)&($go=1))    // A (d-d3-18)
  231.   print("A")
  232.   A(100)
  233.   $go=0
  234. else
  235.   $go=1
  236. END_IF
  237. //=====================
  238. IF (($m_x<$x)&($m_x3>$x)&($m_y<$y)&($m_y3>$y)&($go=1))  // Aa
  239.   print("Aa")
  240.   A(0)
  241.   $go=0
  242. else
  243.   $go=1
  244. END_IF
  245. //=====================
  246. IF (($by_x1<$x)&($m_max_x>$x)&($m_y3<$y)&($m_c_y>$y)&($go=1)) // D (d4+18-d7)
  247.   print("D")
  248.   D(100)
  249.   $go=0
  250. else
  251.   $go=1
  252. END_IF
  253. //==========================
  254. IF (($m_x4<$x)&($m_max_x>$x)&($m_y<$y)&($m_y3>$y)&($go=1))
  255.   print("Dd")
  256.   D(0)
  257.   $go=0
  258. else
  259.   $go=1
  260. END_IF
  261. //===========================
  262. IF (($m_x<$x)&($m_max_x>$x)&($m_c_y<$y)&($m_max_y>$y)&($go=1)) // Назад
  263.   print("Назад")
  264.   SETTHREAD (W, 2)
  265.   S(500)
  266.   D(500)
  267.   $go=0
  268. else
  269.   $go=1
  270. END_IF
  271. //==========================
  272. GETSCREEN (0,0,$win_x,$win_y)
  273. COLORMODE(5,$win_x-933,$win_y-31,$win_x-875,$win_y-10) // 683,907,741,928
  274. WHILE(PXLCOUNT($win_x-933,$win_y-31,$win_x-875,$win_y-10, 2072575)>50) // Ищем надпись "Space"
  275.   print("Вижу Space")
  276.   SETTHREAD (W, 2)
  277.   key()
  278.   waitms(10000)
  279.   $stuck2 = $_ms + 15000  // Задержка выполнения "ЗАСТРЯЛ"
  280.   GETSCREEN (0,0,$win_x,$win_y)
  281.   COLORMODE(5,$win_x-933,$win_y-31,$win_x-875,$win_y-10)
  282. END_CYC
  283. waitms(20)
  284. GETSCREEN (0,0,$win_x,$win_y)
  285. IF(PXLCOUNT($win_x-391,$win_y-133,$win_x-191,$win_y-58,17878)>30) // В_бой  1225,805,1425,880
  286.   $stuck2 = $_ms + 15000  // Задержка выполнения "ЗАСТРЯЛ"
  287.   $scan=1
  288.   SETTHREAD (W, 2)
  289.   key()
  290.   waitms(rnd(300,5000))
  291.   m_move ((rnd($win_x-373,$win_x-166)),(rnd($win_y-118,$win_y-74))) // 1243,1450:820,864
  292.   waitms(rnd(100,300))
  293.   LCLICK($_xmouse,$_ymouse)
  294.   print("В_бой нажато")
  295.   waitms(3000)
  296. else
  297.   waitms(20)
  298.   GETSCREEN(0,0,$win_x,$win_y)
  299.   COLORMODE(7,660,130,950,190)
  300.   IF_PICTURE_IN (660,130,950,190, "В_БОЙ_7.bmp", 255, 100)
  301.      m_move($_return1+(rnd(-50,60)), $_return2+(rnd(-10,20)))
  302.      waitms(rnd(100,300))
  303.      LCLICK($_xmouse,$_ymouse)
  304.      print("В_БОЙ нажато")
  305.   else
  306.      $scan=0
  307.   END_IF
  308. END_IF
  309. waitms(20)
  310. //==============================
  311. GETSCREEN (0,0,$win_x,$win_y)
  312. COLORMODE(5, $m_x3,$m_y3,$m_x4,$m_y4)
  313. IF_PIXEL_IN($m_x3,$m_y3,$m_x4,$m_y4, 2039807)    // Враги
  314.   print("Вижу_врага")
  315.   m_move(rnd($win_x/2-400,$win_x/2+400),(rnd($win_y/2-100,$win_y/2+100)))
  316.   $en=0
  317.   WHILE($en=0)
  318.      waitms(50)
  319.      IF_PIXEL_IN($by_x-8,$by_y-8,$by_x1+8,$by_y1+8, 2039807)
  320.         print("Враг_близко")
  321.         IF($time < $_time_t)
  322.            LDOWN($_xmouse,$_ymouse)
  323.            waitms(rnd(100,200))
  324.            LUP($_xmouse,$_ymouse)
  325.            $time = $time_t + (rnd(5,10))
  326.         END_IF
  327.         SETTHREAD (W, 1)
  328.         A(0)
  329.         waitms(rnd(600,1500))
  330.         SETTHREAD (W, 2)
  331.         key()
  332.         GETSCREEN (0,0,$win_x,$win_y)
  333.         COLORMODE(5,$by_x-8,$by_y-8,$by_x1+8,$by_y1+8)
  334.      else
  335.         print("Враг далеко")
  336.         $en=1
  337.      END_IF
  338.   END_CYC
  339.   WAITMS(20)
  340. END_IF
  341. //====================================
  342. DEFINE($off,$_ms+rnd(1200000,1800000)) //вкл "СОН" через 20-30 минут
  343. IF($off < $_ms)
  344.   print("Спим")
  345.   SETTHREAD (W, 2)
  346.   key()
  347.   m_move(rnd(0,$win_x),(rnd(0,$win_y)))
  348.   wait(rnd(180,420))                       // ждать 3-7 минут
  349.   m_move(rnd(0,$win_x),(rnd(0,$win_y)))
  350.   waitms(rnd(3000,5000))
  351.   FOR($off1,$off1 < 2)
  352.      GETSCREEN(0,0,$win_x,$win_y)
  353.      COLORMODE(6,0,int($win_y/2), $win_x,$win_y)
  354.      IF_PICTURE_IN (0,int($win_y/2), $win_x,$win_y, "ОК_6_ру.bmp", 255, 100)
  355.         m_move($_return1+(rnd(-50,60)), $_return2+(rnd(-10,20)))
  356.         waitms(rnd(100,300))
  357.         LCLICK($_xmouse,$_ymouse)
  358.         waitms(rnd(1000,3000))
  359.      else
  360.         wait(2)
  361.      END_IF
  362.      GETSCREEN(0,0,$win_x,$win_y)
  363.      COLORMODE(6,0,int($win_y/2), $win_x,$win_y)
  364.      IF_PICTURE_IN (0,int($win_y/2), $win_x,$win_y, "Steam_6.bmp", 255, 100)
  365.         m_move($_return1+(rnd(-50,60)), $_return2+(rnd(-10,20)))
  366.         waitms(rnd(100,300))
  367.         LCLICK($_xmouse,$_ymouse)
  368.         waitms(rnd(10000,15000))
  369.      else
  370.         wait(2)
  371.      END_IF
  372.      GETSCREEN(0,0,$win_x,$win_y)
  373.      COLORMODE(6,0,int($win_y/2), $win_x,$win_y)
  374.      IF_PICTURE_IN (0,int($win_y/2), $win_x,$win_y, "Закрыть_6.bmp", 255, 100)
  375.         m_move($_return1+(rnd(-50,60)), $_return2+(rnd(-10,20)))
  376.         waitms(rnd(100,300))
  377.         LCLICK($_xmouse,$_ymouse)
  378.         waitms(rnd(1000,3000))
  379.      else
  380.         wait(2)
  381.      END_IF
  382.   END_CYC
  383.   UNDEFINE($off)
  384.   UNDEFINE($off1)
  385. END_IF
  386. //============================
  387. DEFINE($OFF3, $_time_t + 7200) // 1800(30м) 3600(1ч) 7200(2ч)
  388. If($OFF3 < $_time_t)
  389.   print("Выключаю Комп")
  390.   waitms(rnd(1000,3000))
  391.   m_move((rnd($win_x-44,$win_x-16)),(rnd($win_y-937,$win_y-924)))
  392.   waitms(rnd(100,300))
  393.   LCLICK($_xmouse,$_ymouse)
  394.   EXECUTE ("shutdown.exe", "/s /t 09")
  395.   HALT(1)
  396. END_IF

7
Всем привет, постарался учесть все ваши рекомендации, и вроде все получилось что хотел. Но остался один момент: как определять что персонаж уткнулся в стену? вот что у меня получилось:
Код: Clickermann
  1. GETSCREEN(0,0,$win_x,$win_y)               // Застрял
  2. $stuck1 = $stuck
  3. $stuck =  PXLCRC($m_x2,$m_y4,$m_x5,$m_y4)
  4. IF (($stuck = $stuck1)&($stuck2 < $_ms))
  5.   print("ЗАСТРЯЛ")
  6.   S(500)
  7.   KEYDOWN(RNDFROM(81,69))
  8.   waitms(rnd(2500,4500))
  9.   key()
  10. END_IF
  11. waitms(20)

но код работает когда карта совершенно неподвижна пару секунд, что бывает редко.

8
Всем привет. Я все бьюсь со скриптом, которым нужно управлять одной левой кнопкой мышью. Программно нельзя отжать физически зажатую кнопку, но "методом тыка" получилось отжимать ее, а вот останавливать скрип этой же кнопкой не получается, только другой. Андрей Оравен подсказывал как управлять одной кнопкой, но нужно было попасть в паузу в 100мс, что бы выключить скрипт.
THREAD(R, 1)
   IF(ISKEYDOWN(#R)=1) // остановить скрип
      $time = $_ms +2000
      waitms(50)
   END_IF
END_THREAD

IF ( iskeydown(1)=1)
WHILE ( $time < $_ms)
   GETSCREEN(832,944,920,950)
   IF  (PXLCOUNT(832,944,920,950, 16777215)>10)
      LDOWN(960,458)
      waitms(rnd(790,810))
      LUP(960,458)
      waitms(RND(390,460))  // 380
   else
      LUP(960,458)
   END_IF
   waitms(20)
END_CYC   
ELSE
   $time = $_ms +900 // Не запускать скрипт от случайного нажатия
END_IF
WAITms(10)

9
Спасибо за подсказки, пересмотрел и переделал скрипт. Пока полностью не проверял этот кусок, проверял только циклы без потока, но вроде ошибок нет. Если не лень вникать, может что подскажите как укоротить или что заменить. и за одно несколько вопросов.
1. Почему не желательно использовать координаты клика (-1,-1)? В данной игре мышью можно вообще не шевелить.
2. 1 пиксель моментально же ищится на экране, может можно 1 GETSCREEN в потоке на мах разрешение выставить, а в циклах вообще убрать GETSCREEN?
3. Как сделать рандомные зажатия на кнопки (#A) и (#D)?
4. Про функцию DIST поподробней, простейший пример хотя бы.
5. Можно ли где то убрать задержки (wait), потому что еще дофига чего запихать сюда надо?
Код: Clickermann
  1. WHILE($wn < 1)
  2.   WNDSIZE ( wndfind("?"), 1616, 938)  // Размер окна 1600x900
  3.   wait(2)
  4.   WNDPOS ( wndfind("?"), 0, 0) // Центрировать окно по левому краю
  5.   waitms(1000)
  6.   $wn=1
  7. END_CYC
  8. waitms(50)
  9. //=============================================
  10. SUB(key)                  // Проверить нажатые кнопки и отжать
  11.   if ( iskeydown(#W)=1 )
  12.      KEYUP(#W)
  13.      waitms(50)
  14.   end_if
  15.   if ( iskeydown(#A)=1 )
  16.      KEYUP(#A)
  17.      waitms(50)
  18.   end_if
  19.   if ( iskeydown(#S)=1 )
  20.      KEYUP(#S)
  21.      waitms(50)
  22.   end_if
  23.   if ( iskeydown(#D)=1 )
  24.      KEYUP(#D)
  25.      waitms(50)
  26.   end_if
  27.   waitms(rnd(50,70))
  28. END_SUB
  29. //=============================================
  30. SUB(LEFT)                           // Прямо - налево
  31.   key()
  32.   KEYDOWN(#W)
  33.   waitms(rnd(50,150))
  34.   KEYDOWN(#A)
  35.   waitms(rnd(150,350))
  36.   KEYUP(#A)
  37.   waitms(rnd(400,950))
  38.   KEYUP(#W)
  39.   waitms(50)
  40. END_SUB
  41. //=============================================
  42. SUB(UP)                                   // Прямо
  43.   key()
  44.   KEYDOWN(#W)
  45.   waitms(1500)
  46.   KEYUP(#W)
  47.   waitms(50)
  48. END_SUB
  49. //=============================================
  50. SUB(RIGHT)                                 // Прямо - направо
  51.   key()
  52.   KEYDOWN(#W)
  53.   waitms(rnd(50,150))
  54.   KEYDOWN(#D)
  55.   waitms(rnd(250,450))
  56.   KEYUP(#D)
  57.   waitms(rnd(450,850))
  58.   KEYUP(#W)
  59.   waitms(50)
  60. END_SUB
  61. //=============================================
  62. SUB(DOWN)                      // Назад
  63.   key()
  64.   KEYDOWN(#S)
  65.   waitms(rnd(300,1000))
  66.   KEYDOWN(#D)
  67.   waitms(rnd(300,900))
  68.   KEYUP(#D)
  69.   waitms(rnd(50,70))
  70.   KEYUP(#S)
  71.   waitms(rnd(50,70))
  72.   KEYDOWN(#A)
  73.   waitms(rnd(50,70))
  74.   KEYDOWN(#W)
  75.   waitms(rnd(800,1200))
  76.   KEYUP(#A)
  77.   waitms(rnd(800,2000))
  78.   KEYUP(#W)
  79. END_SUB
  80. //=============================================
  81. THREAD(enemy,1)
  82.   $enemyB = 0
  83.   $up=1
  84.   IF($timeB1 < $_time_t)                      // Вызов ботов
  85.      IF_PIXEL_IN(1448,736,1560,830, 255)     // враги вся карта
  86.         RDOWN(-1,-1)
  87.         waitms(rnd(100,250))
  88.         RUP(-1,-1)
  89.         waitms(rnd(100,300))
  90.         LDOWN(-1,-1)
  91.         waitms(rnd(100,250))
  92.         LUP(-1,-1)
  93.         waitms(50)
  94.         $enemyB = 1
  95.         $timeB1 = $_time_t +(rnd(10,20))
  96.      else
  97.         waitms(1000)
  98.      END_IF
  99.   END_IF
  100.   WHILE($enemyB = 1)
  101.      GETSCREEN (1420,730,1590,900)
  102.      IF_PIXEL_IN(1486,796,1534,834, 255)   // Враг близко
  103.         $up=0
  104.         $lft=0
  105.         $rht=0
  106.         $dwn=0
  107.         $ch=0
  108.         waitms(200)
  109.         key()
  110.         KEYDOWN(#W)
  111.         waitms(rnd(50,100))
  112.         KEYDOWN(#A)
  113.         wait(rnd(3,7))
  114.         KEYUP(#A)
  115.         waitms(rnd(50,100))
  116.         KEYUP(#W)
  117.         waitms(rnd(50,100))
  118.         KEYDOWN(#S)
  119.         wait(rnd(2,5))
  120.         KEYDOWN(#D)
  121.         waitms(rnd(300,1050))
  122.         KEYUP(#D)
  123.         waitms(rnd(50,70))
  124.         KEYUP(#S)
  125.      else
  126.         $enemyB=0
  127.         waitms(50)
  128.      END_IF
  129.   END_CYC
  130. END_THREAD
  131. //=============================================
  132. $lft=0
  133. $rht=0
  134. $dwn=0
  135. $ch=0
  136. //=============================================
  137. WHILE($up = 1)                                     //  Свои
  138.   GETSCREEN (1420,730,1590,900)                  // Мини карта
  139.   IF_PIXEL_IN(1486,736,1522,798, 16755543)       //  Вперед
  140.      $ch=0
  141.      print("Прямо")
  142.      UP()
  143.      WAITMS(50)
  144.   else
  145.      $ch=1
  146.      $up=0
  147.      $lft=1
  148.   END_IF
  149. END_CYC
  150. //=============================================
  151. WHILE($lft = 1)                                    // Свои
  152.   GETSCREEN (1420,730,1590,900)
  153.   IF_PIXEL_IN(1444,759,1485,804, 16755543)      // Прямо и чуть левее
  154.      $ch=0
  155.      print("Прямо-налево")
  156.      Left()
  157.      WAITMS(50)
  158.   else
  159.      $ch=1
  160.      $lft=0
  161.      $rht=1
  162.   END_IF
  163. END_CYC
  164. //=============================================
  165. WHILE($rht = 1)                                     //  Свои
  166.   GETSCREEN (1420,730,1590,900)
  167.   IF_PIXEL_IN(1523,759,1564,804, 16755543)       // Прямо и чуть правее
  168.      $ch=0
  169.      print("Прямо-направо")
  170.      RIGHT()
  171.      WAITMS(50)
  172.   else
  173.      $ch=1
  174.      $rht=0
  175.      $up=1
  176.      $lft=1
  177.      $dwn=1
  178.   END_IF
  179. END_CYC
  180. //=============================================
  181. WHILE($dwn = 1)&($ch=1)                                        //
  182.   GETSCREEN (1420,730,1590,900)
  183.   print("Назад")
  184.   DOWN()                                                     // Назад
  185.   $dwn=0
  186.   $ch=0
  187.   WAITMS(50)
  188. END_CYC
  189.  

10
Ужас что выходит, меньше половины задуманного на 150+ строк
Код: Clickermann
  1. WHILE($wn < 1)
  2.   WNDSIZE ( wndfind("incognito"), 1616, 938)  // Размер окна 1600x900
  3.   wait(3)
  4.   WNDPOS ( wndfind("incognito"), 0, 0) // Центрировать окно по левому краю
  5.   waitms(1000)
  6.   $wn=1
  7. END_CYC
  8. waitms(50)
  9. //=============================================
  10. THREAD(enemyB,0)                // Враг близко (сектор b1)
  11.   SETTHREAD (a, 2)
  12.   SETTHREAD (b, 2)
  13.   SETTHREAD (c, 2)
  14.   KEYUP(#A)
  15.   waitms(rnd(10,50))
  16.   KEYUP(#D)
  17.   waitms(rnd(10,50))
  18.   KEYUP(#S)
  19.   waitms(rnd(10,50))
  20.   KEYDOWN(#W)
  21.   waitms(rnd(50,100))
  22.   KEYDOWN(#A)
  23.   wait(rnd(2,4))
  24.   KEYUP(#A)
  25.   waitms(rnd(50,100))
  26.   KEYUP(#W)
  27.   waitms(rnd(50,100))
  28.   KEYDOWN(#S)
  29.   waitms(rnd(10,50))
  30.   RNDFROM(KEYDOWN(#A),KEYDOWN(#D))
  31.   wait(rnd(3,5))
  32.   KEYUP(#A)
  33.   waitms(rnd(10,50))
  34.   KEYUP(#D)
  35.   waitms(rnd(10,50))
  36.   KEYUP(#S)
  37.   SETTHREAD (enemyB, 2)
  38. END_THREAD
  39. //=============================================
  40. THREAD(enemy,0)                        // Вызов ботов
  41.   RDOWN(-1,-1)
  42.   waitms(rnd(100,250))
  43.   RUP(-1,-1)
  44.   waitms(rnd(100,300))
  45.   LDOWN(-1,-1)
  46.   waitms(rnd(100,250))
  47.   LUP(-1,-1)
  48.   waitms(50)
  49.   SETTHREAD (enemy, 2)
  50. END_THREAD
  51. //=============================================
  52. THREAD(a,0)                           // Прямо - налево
  53.   SETTHREAD (с, 2)
  54.   SETTHREAD (b, 2)
  55.   KEYUP(#A)
  56.   waitms(rnd(10,50))
  57.   KEYUP(#D)
  58.   waitms(rnd(10,50))
  59.   KEYUP(#S)
  60.   waitms(50)
  61.   KEYDOWN(#W)
  62.   waitms(rnd(50,150))
  63.   KEYDOWN(#A)
  64.   waitms(rnd(250,450))
  65.   KEYUP(#A)
  66.   waitms(rnd(150,350))
  67.   KEYUP(#W)
  68.   print("Прямо - налево")
  69.   waitms(rnd(500,1000))
  70.   SETTHREAD (a, 2)
  71. END_THREAD
  72. //=============================================
  73. THREAD(b,0)                                   // Прямо
  74.   SETTHREAD (a, 2)                          
  75.   SETTHREAD (c, 2)
  76.   KEYUP(#D)
  77.   waitms(rnd(10,50))
  78.   KEYUP(#A)
  79.   waitms(rnd(10,50))
  80.   KEYUP(#S)
  81.   waitms(rnd(50,100))
  82.   KEYDOWN(#W)
  83.   wait(rnd(2,4))
  84.   KEYUP(#W)
  85.   print("Вперед")
  86.   waitms(100)
  87.   SETTHREAD (b, 2)
  88. END_THREAD
  89. //=============================================
  90. THREAD(с,0)                           // Прямо - направо
  91.   SETTHREAD (a, 2)
  92.   SETTHREAD (b, 2)
  93. KEYUP(#S)
  94.   waitms(rnd(10,50))
  95.   KEYUP(#A)
  96.   waitms(rnd(10,50))
  97.   KEYUP(#D)
  98.   waitms(rnd(50,100))
  99.   KEYDOWN(#W)
  100.   waitms(rnd(50,150))
  101.   KEYDOWN(#D)
  102.   waitms(rnd(250,450))
  103.   KEYUP(#D)
  104.   waitms(rnd(150,350))
  105.   KEYUP(#W)
  106.   print("Прямо - направо")
  107.   waitms(rnd(500,1000))
  108.   SETTHREAD (с, 2)
  109. END_THREAD
  110. //=============================================
  111. GETSCREEN (1420,730,1590,900) // Мини карта
  112. IF($timeA < $_time_t)
  113.   IF_PIXEL_IN(1420,730,1485,795, 16755543)     // Свои a
  114.      SETTHREAD (a, 1)
  115.      print("a:",$_return1,":", $_return2)
  116.      WAITMS(50)
  117.      $timeA = $_time_t +(rnd(1,3))
  118.   END_IF
  119. END_IF
  120. IF($timeB < $_time_t)
  121.   IF_PIXEL_IN(1486,730,1534,795, 16755543)    //  Свои b
  122.      SETTHREAD (b, 1)
  123.      print("b:",$_return1,":", $_return2)
  124.      WAITMS(50)
  125.      $timeB = $_time_t +(rnd(1,2))
  126.   END_IF
  127. END_IF
  128. IF($timeC < $_time_t)
  129.   IF_PIXEL_IN(1535,730,1590,795, 16755543)    //  Свои с
  130.      SETTHREAD (с, 1)
  131.      print("c:",$_return1,":", $_return2)
  132.      WAITMS(50)
  133.      $timeC = $_time_t +(rnd(1,3))
  134.   END_IF
  135. END_IF
  136. waitms(50)
  137. GETSCREEN (1420,730,1590,900) // Мини карта
  138. IF($timeALL < $_time_t)
  139.   IF_PIXEL_IN(1420,730,1590,900, 255)    // Враги  вся карта
  140.      SETTHREAD (enemy, 1)
  141.      print("Вижу врага:",$_return1,":", $_return2)
  142.      WAITMS(50)
  143.      $timeALL = $_time_t +(rnd(10,20))
  144.   END_IF
  145. END_IF
  146. IF($timeB1 < $_time_t)
  147.   IF_PIXEL_IN(1486,796,1534,834, 255)   // Враги  сектор b1
  148.      SETTHREAD (enemyB, 1)
  149.      print("Враг близко:",$_return1,":", $_return2)
  150.      WAITMS(50)
  151.      $timeB1 = $_time_t +(rnd(1,2))
  152.   END_IF
  153. END_IF

11
Я новичев в Кликере, и вправду все гораздо проще. Нужно чтоб поиск шел по всей области, и в зависимости в каком секторе пиксель, производить действие. Эта мини карта своего рода джойстик, вверх;вниз;влево;вправо; и центр рандом. Буду разбираться.

12
Спасибо.

13
Привет мастера, может кто подскажет, и прокоментирует по возможности строки, чтоб я всякой лабудой в дальнейшем не напрягал=)
Есть область (1420,730,1591,901) (мини карта) , разделенная на секторы $a,$b..., в которых появляются пиксели, допустим черный и красный (0 и 255). Нужно чтобы при обнаружении "255" либо "0" пикселя в секторе $a производилось одно действие, в секторе $b другое, и т.д. Я так понимаю, нужно в массив запихать координаты секторов x,y,x1,y1.  в которых будет производится поиск пикселей. Что-то находил на форуме похожее, но пока темный лес для меня. Можете привести попроще пример, например: квадрат разделенный на 2 сектора. Заранее спасибо.
https://cloud.mail.ru/public/AEaa/5JR1EJtz4

14
Использование / Поиск картинок и ожидание
« : Август 16, 2018, 05:25:33 pm »
Привет, четкая программа, но тяжела в освоении, особенно туго у меня с переменными. Помогите с простенькой задачкой.
Допустим, есть 3 картинки "1","2","3". Нужно искать их поочередно либо одновременно, не важно. После обнаружения "1" или "2", приостанавливать поиск найденной на 15 сек. А при обнаружении "3" полностью остановить поиск "1" и "2", и продолжить заниматься своими делами=) Я начал было рисовать код, но получается лабуда:
Код: Clickermann
  1. GETSCREEN (8,30,1605,919)
  2. IF_PICTURE_IN (625,795,1420,905, "1.bmp", 0, 100)
  3.   waitms(rnd(200,2000))
  4.   RDOWN(-1,-1)
  5.   waitms(rnd(100,250))
  6.   RUP(-1,-1)
  7.   print("CLICK 1")
  8.   waitms(50)
  9. else
  10.   IF_PICTURE_IN (625,795,1420,905, "2.bmp", 0, 100)    
  11.      waitms(rnd(200,2000))
  12.      LDOWN(-1,-1)
  13.      waitms(rnd(100,250))
  14.      LUP(-1,-1)
  15.      print("CLICK 2")
  16.      waitms(50)
  17.      esle
  18.      IF_PICTURE_IN (625,795,1420,905, "3.bmp", 0, 100)
  19.         wait(rnd(15,20))
  20.         LDOWN(-1,-1)
  21.         print("CLICK 3")
  22.         waitms(rnd(100,250))
  23.         LUP(-1,-1)
  24.      END_IF
  25.   END_IF
  26. END_IF
  27. wait(1)

Страницы: [1]