Итак, весь примитив мы вроде как выучили, давайте перейдем к чему-то более интересному. К примеру научим "видеть". На что чаще всего мы смотрим в игре? Правильно, на ХП/ЦП/МП. Рассмотрим это дело на примере авто-ЦП. Для начала рассмотрим саму структуру полоски ЦП, для этого немного подсобьем его.... Полоска где нету ЦП имеет более темный оттенок, и так-же как и полоска полного ЦП градиентна (не однотонна), но к нашему счастью ее цвет изменяется только по вертикале. Для определения наличия ЦП на каком-либо промежутке нам понадобится команда PixelSearch. Она имеет такие параметры: PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB] (в квадратных скобках не обязательные), где X1, Y1 координаты левого верхнего угла зоны поиска, X2, Y2 - правого нижнего (таким образом задаем прямоугольную зону в которой ищем нужный цвет); OutputVarX, OutputVarY - координаты самой левой верхней точки, в которой этот цвет будет содержаться. ColorID - Код цвета в шестнадцатиричной системе. Variation - принимает значение от 0 до 255, показывает насколько НЕ точным может быть поиск (чем больше, тем более различные оттенки будет определять как искомый цвет). Если моск включен, то у вас должно было сразу возникнуть минимум 2 вопроса: как мы определим координаты линии ЦП вообще, и как мы определим код цвета. Тут нам на помошь прийдет встроенная в АХК утилита Window Spy. Если у вас запущен любой скрипт АХК, вызвать эт утилиту можно клацнув по иконке АХК в панеле задачь правой кнопкой мыши: Появится окно, которое всегда будет на переднем плане. Переключаемся на окно Л2 и подводим мышку к отметке ЦП, при которой по-вашему стоит начинать пить банки. На скрине не отобразился курсор, но он был где-то в раене дорисованной черной точки. мы нашли координаты (641, 296). Теперь берем некоторый разброс, дабы просматривать область, думаю (635, 290) и (650, 305) будет достаточно. Это и есть координаты Х1, Y1, X2, Y2 соответственно. Запомнили, записали. Но вот проблема, видимо Гейм Гвард блокирует цвет пикселя...на самом деле это не проблема. Включаем мозг и делаем принт скрин и проводим операцию с той-же областю ЦП на скрине, получаем ID цвета, к примеру 0x253B46 (в своем случае я скринил цвет с отсутствующим ЦП) Вобщем пора открыть блокнот и написать как всегда:
#InstallKeybdHook #UseHook ON #MaxThreadsPerHotkey 1 #MaxThreadsBuffer On #HotkeyInterval 2000 ; This is the default value (milliseconds). #MaxHotkeysPerInterval 20000 !NumPadDiv::clipboard =SET 1
NumPadDiv::clipboard =TOP 1
Теперь делаем метку (Label 1) к в которой прописываем пожирание ЦП банок, стоящих на 8 ячейке 1 панели
; и проверяем, нашелся-лии цвет. Для этого используем команду ErrorLevel. В данном случае она принимает значение 0, если цвет найден, 1 если не найден. Так как я искал в определенном участке цвет ОТСУТСТВИЯ ЦП, то в случае его нахождения пора пить банки: if ErrorLevel=0 Gosub, Label1 ;Gosub, метка - переход к заданной метке Если-же он не найден - продолжаем цикл else continue }
Вот, вроде должно работать, осталось только найти координаты для вашего монитора, ну и на всякий случай проверить цвет. Все еще работает (все еще бесплатная) консультация на форуме в разделе тех. поддержки, теме Евелина.
Последнее время редко просматриваю старые темы, та и новые тоже. Если есть какие-то вопросы - можно писать на ICQ 369 516 330. По поводу цвета, на некоторых серверах реализовать эту функцию невозможно
1:: { PixelSearch, Px, Py, 248, 243, 997, 703, 0xff0052, 50, if ErrorLevel=0 Send, {LButton}{LButton} if not ErrorLevel=0 MouseClick, left, 644, 196 }
Дело в том что я хочу чтобы он находил цвет в этом участке.. Цвет есть точно а он быстро всё проскакивает и цвет не находит, хоть и стоит 50.. а вот если ставить 100 то он находит этот цвет даже если его нету... и ещё мне необходимо чтобы когда он найдёт этот пиксиль он по нему кликнул бы :( А если нет то кликать в другое указанное место(Ну это уже не проблематично сделать).
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]