Author Topic: Помогите новичку  (Read 2399 times)

0 Members and 1 Guest are viewing this topic.

Dimon

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Помогите новичку
« on: April 17, 2015, 11:14:26 PM »
Привет всем, прошу вашей помощи, поскольку в скриптописании не силен( В общем говоря, не получается у меня автоматизировать процесс хождения персонажа на босса. Нужно, чтобы перс бил босса, пока у него не закончится полоска хп. Максимум, чего удалось добиться-одного удара( Как организовать такой цикл? Скажу сразу, команда PXL не помогает, поскольку так идеально подогнать окно игры в браузере не получается, и выходит, что цвет искомого пиксела постоянно меняется. Может есть другой способ?
- Вложения и другие параметры
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   $clr = PXL(1166,148)
IF_PIXEL_IN(1164,140, 1173,159, $clr)
      $check = 1
      LCLICK($_return1+2, $_return2+2)
      WAITMS(100)
     
   ELSE
WAITMS(50)
   END_IF
END_CYC 
« Last Edit: April 17, 2015, 11:43:04 PM by Dimon »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку
« Reply #1 on: April 18, 2015, 07:42:08 AM »
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF(PXL(1166,148) = 225) // если нашли
      LCLICK(100,500) // куда то кликаем
      WAITMS(100)
   ELSE
      $check = 1 // если не нашли прерываем цикл
      WAITMS(50)
   END_IF
END_CYC

// здесь дальнейшие действия, а если их нет то и в цикле WHILE смысла нет.

Можно сделать тоже самое только поиск цвета осуществляется в определенной зоне.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(1164,140, 1173,159, 225) // если нашли
      LCLICK(100,500) // куда то кликаем
      WAITMS(100)
   ELSE
      $check = 1 // если не нашли прерываем цикл
      WAITMS(50)
   END_IF
END_CYC

// здесь дальнейшие действия, а если их нет то и в цикле WHILE смысла нет.

Dimon

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Помогите новичку
« Reply #2 on: April 18, 2015, 10:56:40 AM »
оба варианта не работают( наверно сканируемый цвет меняется. Пробую сравнивать скрин с заготовленным фрагментом картинки, срабатывает через раз(

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN(1163,128, 1178,172, "hp.bmp", -1,90)
      LCLICK($_return1+2, $_return2+2)
      WAITMS(100)
   ELSE
$check = 1
WAITMS(50)
   END_IF
END_CYC 

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку
« Reply #3 on: April 18, 2015, 11:35:12 AM »
Используй цветокоррекцию! Картинка тебе совершенно не нужна.
Включи лупу, там с низу окошка просмотра есть % 0 измени на 6 и увидишь скорректированное изображение с усредненными цветами.
Наведи мышь на свою полоску и вставь в функцию подходящий цвет.

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6) // 6 или 7 уровень
IF_PIXEL_IN(1164,140, 1173,159, 225) // если нашли
   LCLICK(100,500) // куда то кликаем
   WAITMS(100)
ELSE
   $check = 1 // если не нашли прерываем цикл
   WAITMS(50)
END_IF


Dimon

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: Помогите новичку
« Reply #4 on: April 18, 2015, 09:28:57 PM »
Цветокоррекция срабатывает через раз...даже чаще не срабатывает(( В общем, удалось выкрутиться так

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (1173,120, 1226,185, "2.bmp", -1, 80)
   LCLICK(1197, 153)
   WAITMS(100)
  ELSE
$check = 1
WAITMS(50)
   END_IF
END_CYC

но все равно спс за помощь :)