Author Topic: клик по двигающемуся объекту  (Read 8349 times)

0 Members and 4 Guests are viewing this topic.

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #15 on: February 21, 2016, 05:53:26 PM »
в том то и дело, что выполняется действие 1 раз и после чего кликер стоит а не продолжает нажимать на красные точки на миникарте

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #16 on: February 21, 2016, 10:54:20 PM »
Quote
$x_1 = 5
$y_1 = 63
$x_2 = 1358
$y_2 = 731
 
$x_mini_1 = 1115
$y_mini_1 = 266
$x_mini_2 = 1286
$y_mini_2 = 372
 
 
 
FOR($var=0, $var < 10)
$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry) //
 
WAITMS(100)
GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
LCLICK($_return1,$_return2)
WAIT(1)
END_IF

 
while($targ=0)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,720,961,253,729)
LCLICK($_return1+2,$_return2-10)
WAITMS(100)
DBLCLICK($_return1+2,$_return2-10)
WAITMS(100)
GETSCREEN($x_1,$y_1, $x_2,$y_2)
IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
KEYPRESS(#CTRL)
WAIT(7)
$targ=1
END_IF
END_IF
END_CYC
$targ=0
END_CYC

такой сценарий работает хорошо, но
он выполняет его 1 раз
как мне сделать, чтобы после выполнения он повторял сценарий с самого начала?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: клик по двигающемуся объекту
« Reply #17 on: February 22, 2016, 07:28:47 AM »
Версия кликера последняя? В скрипте нет команды HALT которая могла бы его остановить, а выполнение скрипта в кликере по умолчанию бесконечное.

Code: (clickermann) [Select]
$x_1 = 5
$y_1 = 63
$x_2 = 1358
$y_2 = 731

$x_mini_1 = 1115
$y_mini_1 = 266
$x_mini_2 = 1286
$y_mini_2 = 372

$rx = RND($x_mini_1,$x_mini_2)
$ry = RND($y_mini_1,$y_mini_2)
LCLICK($rx,$ry)
WAITMS(100)

GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
   LCLICK($_return1,$_return2)
   WAIT(1)
END_IF

$targ=0
while($targ=0)
   GETSCREEN($x_1,$y_1, $x_2,$y_2)
   IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,720,961,253,729)
      LCLICK($_return1+2,$_return2-10)
      WAITMS(100)
      DBLCLICK($_return1+2,$_return2-10)
      WAITMS(100)
      GETSCREEN($x_1,$y_1, $x_2,$y_2)
      IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
         KEYPRESS(#CTRL)
         WAIT(7)
         $targ=1
      END_IF
   ELSE
      WAITMS(40)
   END_IF
END_CYC

Ну как вариант, ты не стер скрипт по умолчанию который появляется при запуске кликера  ;D и просто вставил код туда
Code: (clickermann) [Select]
// New Script
// Author: Anonymous
// Version: 1.0 (22.02.2016)

#name "New Script"

// begin your script here

print("Hello, world!")



halt // эта команда останавливает выполнение

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #18 on: February 22, 2016, 07:55:22 AM »
версия 4.11
сценарий чистый, без каких либо доп строк

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #19 on: February 22, 2016, 08:12:34 AM »
Я кажется выяснил когда он стоит, а когда продолжает работать

он делает рандомный клик по миникарте, по красной точке
если по прилёту на место назначение он находит пиксель выполняет весь сценарий до конца, то он летит к следующей точке
а если не находит нужный пиксель и не выполняет сценарий, то он тупо стоит и ищет его

соответственно если он 1 раз выполнил сценарий, прилетел к след точке и там пиксель не нашёл, то тоже до посинения будет стоять

как это исправить ?

мне нужно, чтоб если пиксель не найден он продолжал выполнять сценарий рандомно нажимая на миникарте


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: клик по двигающемуся объекту
« Reply #20 on: February 22, 2016, 01:57:41 PM »
Нужно просто добавить таймер вместо флага. И кстати оптимизировать запихнув код в подпрограмму а ввызове указывать координаты областей

Code: (clickermann) [Select]
SUB(prog, $x_1,$y_1,$x_2,$y_2, $x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
   LCLICK(RND($x_mini_1,$x_mini_2),RND($y_mini_1,$y_mini_2))
   WAITMS(100)
   
   GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
   IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
      LCLICK($_return1,$_return2)
      WAIT(1)
   END_IF
   
   $time = $_time_t + 60 // таймер на 60 секунд
   WHILE($time > $_time_t)
      GETSCREEN($x_1,$y_1, $x_2,$y_2)
      IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,720,961,253,729)
         LCLICK($_return1+2,$_return2-10)
         WAITMS(100)
         DBLCLICK($_return1+2,$_return2-10)
         WAITMS(100)
         GETSCREEN($x_1,$y_1, $x_2,$y_2)
         IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
            KEYPRESS(#CTRL)
            WAIT(7)
            $time = 0 // прерываем таймер, выходим из цикла
         END_IF
      ELSE
         WAITMS(40)
      END_IF
   END_CYC
END_SUB

// Первые 4 числа область игры, последние 4 числа область мини карты
prog(5,63, 1358,731, 1115,266, 1286,372)

htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #21 on: February 23, 2016, 04:52:00 PM »
Нужно просто добавить таймер вместо флага. И кстати оптимизировать запихнув код в подпрограмму а ввызове указывать координаты областей

Code: (clickermann) [Select]
SUB(prog, $x_1,$y_1,$x_2,$y_2, $x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
   LCLICK(RND($x_mini_1,$x_mini_2),RND($y_mini_1,$y_mini_2))
   WAITMS(100)
   
   GETSCREEN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2)
   IF_PIXEL_IN($x_mini_1,$y_mini_1,$x_mini_2,$y_mini_2,255)
      LCLICK($_return1,$_return2)
      WAIT(1)
   END_IF
   
   $time = $_time_t + 60 // таймер на 60 секунд
   WHILE($time > $_time_t)
      GETSCREEN($x_1,$y_1, $x_2,$y_2)
      IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,720,961,253,729)
         LCLICK($_return1+2,$_return2-10)
         WAITMS(100)
         DBLCLICK($_return1+2,$_return2-10)
         WAITMS(100)
         GETSCREEN($x_1,$y_1, $x_2,$y_2)
         IF_PIXEL_IN($x_1,$y_1, $x_2,$y_2,12205,11168,12982)
            KEYPRESS(#CTRL)
            WAIT(7)
            $time = 0 // прерываем таймер, выходим из цикла
         END_IF
      ELSE
         WAITMS(40)
      END_IF
   END_CYC
END_SUB

// Первые 4 числа область игры, последние 4 числа область мини карты
prog(5,63, 1358,731, 1115,266, 1286,372)

Спасибо большое!
Правда есть ещё вопрос) когда я изменил цифру в таймере с 60 сек на 3 сек
он начал клацать в красную точку + ещё в 1 рандомное место на миникарте


htc8bit

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: клик по двигающемуся объекту
« Reply #22 on: February 23, 2016, 04:58:25 PM »
а ещё он продолжает бегать за точками, хотя ещё не всех пикселей убил)
как сделать чтоб он сначала проверил, что такого пикселя больше нет на карте - продолжал бегать за точками