Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Hito on September 16, 2014, 03:58:43 PM

Title: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 03:58:43 PM
В общем ситуация такая. Персонаж бьет моба и кликер смотрит - присутствует ли пиксель ХП моба. Если присутствует, то продолжает бой. Если цвет ХП моба исчезает, то кликер переводит персонажа в режим тайм-аута. У меня несколько раз кликер перевел персонажа в тайм-аут тогда, когда моб еще не был убит. Я никак не мог понять - в чём дело... В конце концов, после того, как кликер теряет моба, я решил поставить команду, чтоб кликер сделал скрин и вот, что он мне выдал:

(http://f5.s.qip.ru/1HDgEPqf.png)

Теперь проблема стала ясна и передо мной встала задача - как написать такое условие, в котором, если нужный цвет пикселя не найден, то еще секунду, или две продолжался бы поиск и в случае положительного результата, скрипт продолжался бы - продолжился бы бой, а если нужный цвет так и не найдется за эти две секунды, то макрос переводил бы перса в тайм-аут? Надеюсь, что написал понятно.
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 04:22:18 PM
Лучше наверно даже чтоб таймер в миллисекундах был.
Title: Re: Нужна помощь - как сделать условие
Post by: Vint on September 16, 2014, 04:31:47 PM
Не лучше, а обязательно
Code: (clickermann) [Select]
$time = $_ms + 2000
WHILE($time > $_ms)
   GETSCREEN
   IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
      $time = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC

IF($time ! 0)
   GOTO(тайм-аут)  //тайм-аут
END_IF
Title: Re: Нужна помощь - как сделать условие
Post by: Oraven on September 16, 2014, 04:32:52 PM
Надеюсь разберешься....

Code: (clickermann) [Select]
$check = 0 // переключатель
$time = $_time_t + 60 // таймер на 60 сек (чсло не важно просто чтоб цикл не прерывался)
WHILE($time > $_time_t) // цикл выполняется пока не истечет время
   GETSCREEN
   IF(PXL(10,10) = 255) // анализ пиксела
      LCLICK(10,10)
      WAITMS(100)
      $check = 0
      $time = $_time_t + 60 // если найден то снова 60 сек на цикл
   ELSE
      IF($check = 0)
         $check = 1 // условие сработает 1 раз чтоб на следующих проходах снова 2е сек не добавилось
         $time1 = $_time_t + 2 // если не найден то сбавляем время до 2х сек
      END_IF
      WAITMS(50)
   END_IF
END_CYC

// и если пиксел за 2е сек так и не найдется то цикл завершится
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 04:38:45 PM
Чё-то я даже не знаю - что выбрать  :) Сейчас буду разбираться  :)
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 04:39:44 PM
Не лучше, а обязательно
Code: (clickermann) [Select]
$time = $_ms + 2000
WHILE($time > $_ms)
   GETSCREEN
   IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
      $time = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC

IF($time ! 0)
   GOTO(тайм-аут)  //тайм-аут
END_IF

Тут, в случае нахождения нужного цвета, скрипт переходит на 14-ую строку?
Title: Re: Нужна помощь - как сделать условие
Post by: Vint on September 16, 2014, 04:45:03 PM
Тут, в случае нахождения нужного цвета, скрипт переходит на 14-ую строку?
Да.
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 04:46:27 PM
ОК! Спс!
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 16, 2014, 04:47:25 PM
Надеюсь разберешься....

Code: (clickermann) [Select]
$check = 0 // переключатель
$time = $_time_t + 60 // таймер на 60 сек (чсло не важно просто чтоб цикл не прерывался)
WHILE($time > $_time_t) // цикл выполняется пока не истечет время
   GETSCREEN
   IF(PXL(10,10) = 255) // анализ пиксела
      LCLICK(10,10)
      WAITMS(100)
      $check = 0
      $time = $_time_t + 60 // если найден то снова 60 сек на цикл
   ELSE
      IF($check = 0)
         $check = 1 // условие сработает 1 раз чтоб на следующих проходах снова 2е сек не добавилось
         $time1 = $_time_t + 2 // если не найден то сбавляем время до 2х сек
      END_IF
      WAITMS(50)
   END_IF
END_CYC

// и если пиксел за 2е сек так и не найдется то цикл завершится

Тоже спасибо! Сохраню у себя в справках )) Всё пригодится... ))
Title: Re: Нужна помощь - как сделать условие
Post by: Atas on September 16, 2014, 05:37:32 PM
COLORMODE(7) тебе в помощь.
Отслеживается появление серого, проверяется исчезновением красного. Задержки и перепроверки по мере надобности.

(http://s7.hostingkartinok.com/uploads/images/2014/09/cc3d45dfdd92f74e321eda8c887d24cc.png) (http://hostingkartinok.com/show-image.php?id=cc3d45dfdd92f74e321eda8c887d24cc)
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 17, 2014, 07:00:19 PM
COLORMODE(7) тебе в помощь.
Отслеживается появление серого, проверяется исчезновением красного. Задержки и перепроверки по мере надобности.

(http://s7.hostingkartinok.com/uploads/images/2014/09/cc3d45dfdd92f74e321eda8c887d24cc.png) (http://hostingkartinok.com/show-image.php?id=cc3d45dfdd92f74e321eda8c887d24cc)

Я стараюсь обходить IF_PICTURE_IN в скриптах ))
Title: Re: Нужна помощь - как сделать условие
Post by: Hito on September 18, 2014, 01:27:50 PM
Если есть возможность, то тоже обхожу )))