Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Hito on September 16, 2014, 03:58:43 PM
-
В общем ситуация такая. Персонаж бьет моба и кликер смотрит - присутствует ли пиксель ХП моба. Если присутствует, то продолжает бой. Если цвет ХП моба исчезает, то кликер переводит персонажа в режим тайм-аута. У меня несколько раз кликер перевел персонажа в тайм-аут тогда, когда моб еще не был убит. Я никак не мог понять - в чём дело... В конце концов, после того, как кликер теряет моба, я решил поставить команду, чтоб кликер сделал скрин и вот, что он мне выдал:
(http://f5.s.qip.ru/1HDgEPqf.png)
Теперь проблема стала ясна и передо мной встала задача - как написать такое условие, в котором, если нужный цвет пикселя не найден, то еще секунду, или две продолжался бы поиск и в случае положительного результата, скрипт продолжался бы - продолжился бы бой, а если нужный цвет так и не найдется за эти две секунды, то макрос переводил бы перса в тайм-аут? Надеюсь, что написал понятно.
-
Лучше наверно даже чтоб таймер в миллисекундах был.
-
Не лучше, а обязательно
$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
-
Надеюсь разберешься....
$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е сек так и не найдется то цикл завершится
-
Чё-то я даже не знаю - что выбрать :) Сейчас буду разбираться :)
-
Не лучше, а обязательно
$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-ую строку?
-
Тут, в случае нахождения нужного цвета, скрипт переходит на 14-ую строку?
Да.
-
ОК! Спс!
-
Надеюсь разберешься....
$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е сек так и не найдется то цикл завершится
Тоже спасибо! Сохраню у себя в справках )) Всё пригодится... ))
-
COLORMODE(7) тебе в помощь.
Отслеживается появление серого, проверяется исчезновением красного. Задержки и перепроверки по мере надобности.
(http://s7.hostingkartinok.com/uploads/images/2014/09/cc3d45dfdd92f74e321eda8c887d24cc.png) (http://hostingkartinok.com/show-image.php?id=cc3d45dfdd92f74e321eda8c887d24cc)
-
COLORMODE(7) тебе в помощь.
Отслеживается появление серого, проверяется исчезновением красного. Задержки и перепроверки по мере надобности.
(http://s7.hostingkartinok.com/uploads/images/2014/09/cc3d45dfdd92f74e321eda8c887d24cc.png) (http://hostingkartinok.com/show-image.php?id=cc3d45dfdd92f74e321eda8c887d24cc)
Я стараюсь обходить IF_PICTURE_IN в скриптах ))
-
Если есть возможность, то тоже обхожу )))