Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Prostoi on August 08, 2018, 08:54:16 PM
-
Добрый день. Уважаемые форумчане совсем чайник, стараюсь освоить кликер но не нашел интересующий меня вопрос, может плохо искал может так не делает кликер вообщем не знаю.
Суть в следующем нужно нажатие левой кнопки мыши через распознавание цвета но не на цвет а чуть левее.
Вложен файл primer1 есть монстр Белнистраз нужен клик на меч, но клик на меч через распознавание цвета Mn синий то есть левее цвета, обусловлено это тем что у остальных игроков тоже появляется меч но цвет букв другой дабы не нападать на игроков.
Буду признателен если подкинете нужный скрипт или тему где можно найти и почитать как сделать самому.
-
ДД. Чтобы кликнуть чуть левее (на пару пикселей ниже) чем найденный пиксель, совсем не обязательно искать меч.
Достаточно просто уточнить координаты клика. Т.к. поиск идет слева направо и сверху вниз, первым будет найден левый верхний угол буквы М (заменяете стандартную строчку на LCLICK($_return1-15, $_return2+3) - так клик будет на 15 пикселей левее и 3 ниже - ровно по мечу).
GETSCREEN
IF_PIXEL_IN(100,100, 200,400, 8917019)
LCLICK($_return1-15, $_return2+3)
WAITMS(100)
Else
print("no blue")
END_IF
halt
Для точной области поиска и правильного цвета, полагаю лучше всего воспользоваться лупой кликермана и вставкой координат и цвета (обычно через alt+Q). Print используется во время налаживания скриптов, чтобы понять что и где идет не так. После или закомментировать (// поставить перед лишними строчками), или стереть можно.
А для двойных условий (где меч может появляться в этом месте, а может и нет) можно вкладывать if-ы друг в друга:
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 8917019)
print("blue")
IF_PIXEL_IN($_return1-20, $_return2, $_return1, $_return2+8, 0)
print("black")
LCLICK($_return1, $_return2)
WAITMS(100)
END_IF
Else
print("no blue")
END_IF
halt
-
Там видимо будет список из нескольких таких мечей, из них надо выбрать с синим именем.
Для этого нужно найти все мечи функцией SCANPICTURE и в цикле относительно найденного меча проверить синие пикселы. Если совпадает то клик по мечу.
+24 -5 +45 +12 это как раз смещение XY относительно крайнего левого верхнего пиксела картинки меча до синих пикселов.
GETSCREEN
SCANPICTURE($ARR_SCAN, 300,100, 400,600, "picture.bmp", -1, 100)
FOR($i=0,$i<ARRSIZE($ARR_SCAN),2)
IF_PIXEL_IN($ARR_SCAN[$i]+24, $ARR_SCAN[$i+1]-5, $ARR_SCAN[$i]+45, $ARR_SCAN[$i+1]+12, 14311528)
LCLICK($ARR_SCAN[$i], $ARR_SCAN[$i+1])
WAITMS(100)
$i=ARRSIZE($ARR_SCAN) // завершаем цикл после первого найденного
END_IF
END_CYC
UNDEFINE($ARR_SCAN)