Author Topic: Работа с анимированными объектами  (Read 4117 times)

0 Members and 1 Guest are viewing this topic.

click

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Работа с анимированными объектами
« on: October 16, 2015, 09:19:40 AM »
Привет, ребята, помогите с написанием скрипта для анимированных объектов, которые нужно собирать двойным нажатием мышки.
игра браузерная, анимированные объекты - рыбки, которые постоянно двигаются в определенных секторах. Я пытался сделать поиск по пикселю, но мне кажется это неправильно, тк объект двигается((

Вот пример моего скрипта:

SUB(Поиск)
   $SHIFT_X = 5 //
   $SHIFT_Y = 5
   $ARR_NUM = 0
   $X2 = 0
   $Y2 = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN)) //
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      IF(($X > $X2)|($Y > $Y2))
         $X2 = $X + $SHIFT_X
         $Y2 = $Y + $SHIFT_Y
         IF_PIXEL_IN($x-50,$y-50, $x+5,$y+5, 144) // Проверяет ловит ли уже кто-то эту рыбу
            WAITMS(1)
         ELSE
            $ARR_NUM = ARRSIZE($ARR_SCAN)
            DBLCLICK($x, $y) // клик, если рыбу никто не ловит
            WAITMS(100)
         END_IF
      END_IF
   END_CYC
   UNDEFINE($ARR_SCAN)
END_SUB

GETSCREEN
SCANPXL($ARR_SCAN,327,128,1069,458,ххх) тут я вожу цвет пикселя по которому происходит поиск рыбы


 Если напал моб то персонаж будет его убивать:
GETSCREEN
   IF_PIXEL_IN(750,338,773,360,ххх) // удар, если произошел откат и цвет изменился на указанный
   LCLICK($_return1, $_return2)
    WAITMS(100)
   ELSE
    IF_PIXEL_IN(706,341,706,341,ххх) // удар который без отката
    LCLICK($_return1, $_return2)
    WAITMS(100)
   END_IF
//Выход с боя
   GETSCREEN
   wait(1)
   IF_PIXEL_IN(689,241,748,251,ххх)//По­явлениетаблички
      LCLICK($_return1, $_return2)
      wait(1)
      IF_PIXEL_IN(1279,25,1308,45,ххх)//­В охоту  )
       LCLICK($_return1, $_return2)
 Else WAIT(1)
 END_IF
Else
 WAITMS(50)
END_IF

В бою у меня проблема с ударами: постоянно нажимается удар, который без отката, а когда наступает время удара с откатом (там изменяется цвет на иконке),то кликерманн пытается нажать сразу 2 иконки, т.е на 2 удара сразу, а хотелось бы чтобы только на тот, который откатился.

Спасибо за любую помощь)

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
Re: Работа с анимированными объектами
« Reply #1 on: October 16, 2015, 12:16:18 PM »
анимированные объекты делаются только через колормод

для ударов сделай ожидание кд или маркер готовности по цвету иконки, что за игра то?

click

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Работа с анимированными объектами
« Reply #2 on: October 18, 2015, 04:03:33 PM »
анимированные объекты делаются только через колормод

для ударов сделай ожидание кд или маркер готовности по цвету иконки, что за игра то?

Можете подсказать пример Колормода и как сделать ожидание кд? игра троецарствие. спасибо.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с анимированными объектами
« Reply #3 on: October 18, 2015, 04:51:37 PM »
Если это весь скрипт то он написан не верно

Вот так правильно
Code: (clickermann) [Select]
GETSCREEN
SCANPXL($ARR_SCAN,327,128,1069,458,ххх) // тут я вожу цвет пикселя по которому происходит поиск рыбы
$SHIFT_X = 5 //
$SHIFT_Y = 5
$ARR_NUM = 0
$X2 = 0
$Y2 = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN)) //
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   IF(($X > $X2)|($Y > $Y2))
      $X2 = $X + $SHIFT_X
      $Y2 = $Y + $SHIFT_Y
      IF_PIXEL_IN($x-50,$y-50, $x+5,$y+5, 144) // Проверяет ловит ли уже кто-то эту рыбу
         WAITMS(1)
      ELSE
         $ARR_NUM = ARRSIZE($ARR_SCAN)
         DBLCLICK($x, $y) // клик, если рыбу никто не ловит
         WAITMS(100)
      END_IF
   END_IF
END_CYC
UNDEFINE($ARR_SCAN)


// Если напал моб то персонаж будет его убивать:
GETSCREEN
IF_PIXEL_IN(750,338,773,360,ххх) // удар, если произошел откат и цвет изменился на указанный
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PIXEL_IN(706,341,706,341,ххх) // удар который без отката
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_IF
wait(1)

//Выход с боя
GETSCREEN
IF_PIXEL_IN(689,241,748,251,ххх)//По­явлениетаблички
   LCLICK($_return1, $_return2)
   wait(1)
   GETSCREEN
   IF_PIXEL_IN(1279,25,1308,45,ххх)//­В охоту  )
      LCLICK($_return1, $_return2)
      WAITMS(100)
   Else
      WAIT(1)
   END_IF
Else
   WAITMS(50)
END_IF

В шаблонах есть пример колормода
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT

из скриншота надо взять цвет
в скрипте добавить после GETSCREEN коррекцию того же уровня COLORMODE(6)

click

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Работа с анимированными объектами
« Reply #4 on: October 18, 2015, 06:18:20 PM »
Спасибо, попробую сделать)

Приват

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Re: Работа с анимированными объектами
« Reply #5 on: November 19, 2015, 05:31:20 PM »
Подскажите пожалуйста нубу,а как можно ввести определенный диапазон поиска пикселей? допусти с 16711xxx по 16711xxx, потому что есть рыбки у которых нету одинаковых пикселей,они из той же игры. не получилось с колормодом у меня разобраться.,если можно и о нем более подробно. заранее благодарен.

razor ramon

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Re: Работа с анимированными объектами
« Reply #6 on: December 22, 2015, 10:20:19 AM »
Если это весь скрипт то он написан не верно

Вот так правильно
Code: (clickermann) [Select]
GETSCREEN
SCANPXL($ARR_SCAN,327,128,1069,458,ххх) // тут я вожу цвет пикселя по которому происходит поиск рыбы
$SHIFT_X = 5 //
$SHIFT_Y = 5
$ARR_NUM = 0
$X2 = 0
$Y2 = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN)) //
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   IF(($X > $X2)|($Y > $Y2))
      $X2 = $X + $SHIFT_X
      $Y2 = $Y + $SHIFT_Y
      IF_PIXEL_IN($x-50,$y-50, $x+5,$y+5, 144) // Проверяет ловит ли уже кто-то эту рыбу
         WAITMS(1)
      ELSE
         $ARR_NUM = ARRSIZE($ARR_SCAN)
         DBLCLICK($x, $y) // клик, если рыбу никто не ловит
         WAITMS(100)
      END_IF
   END_IF
END_CYC
UNDEFINE($ARR_SCAN)


// Если напал моб то персонаж будет его убивать:
GETSCREEN
IF_PIXEL_IN(750,338,773,360,ххх) // удар, если произошел откат и цвет изменился на указанный
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PIXEL_IN(706,341,706,341,ххх) // удар который без отката
      LCLICK($_return1, $_return2)
      WAITMS(100)
   END_IF
END_IF
wait(1)

//Выход с боя
GETSCREEN
IF_PIXEL_IN(689,241,748,251,ххх)//По­явлениетаблички
   LCLICK($_return1, $_return2)
   wait(1)
   GETSCREEN
   IF_PIXEL_IN(1279,25,1308,45,ххх)//­В охоту  )
      LCLICK($_return1, $_return2)
      WAITMS(100)
   Else
      WAIT(1)
   END_IF
Else
   WAITMS(50)
END_IF

В шаблонах есть пример колормода
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT

из скриншота надо взять цвет
в скрипте добавить после GETSCREEN коррекцию того же уровня COLORMODE(6)
Приветствую. Этот скрипт не работает, так как после первой отловленой рыбы продолжает кликать на это место. если передвигать курсор то он возвращается на исходное место и без конца кликает. несколько раз даже процесс не смог остановить путем нажания alt+s, приходилось перезапускать комп. если можете подправьте. заранее спасибо

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: Работа с анимированными объектами
« Reply #7 on: December 22, 2015, 11:30:04 AM »
....игра браузерная, анимированные объекты - рыбки, которые постоянно двигаются в определенных секторах.
ну да информативно для тестирования скрипта, главное чтоб на сайте рыба водилась!
или вы автор темы заходящий с разных аккаунтов или заядлый рыболов переловивший на всех рыбных сайтах всё что шевелит пикселями и буднично отбивающийся от нападения рыбнадзора монстров, старым, добрым, рулевым веслом! :)