Спасибо, попробовал Findcolor, но тут свои проблемы. Макрос получился такой:
set workwindow windowfromcursor log workwindow
set #a FindColor (40 992 1875 992 1 1 (R(1-256)) %ColorArray workwindow)
set #ctr1 #a while #ctr1 > 0 set #xr %ColorArray[#ctr1 1] set #yr %ColorArray[#ctr1 2]// + #yf // почему-то вместо 992 записывает в массив 0. Если же я задаю искать с 992 по 993 пиксел, то, соответственно, записывает 0 вместо 992 и 1 вместо 993. log Номер пикселя: #ctr1 (из #a) log x: #xr y: #yr set #ctr1 #ctr1 - 1 end_while
log workw: workwindow log mov: #xr #yr log a: #a move #xr #yr [abs] end_script
В большинстве случаев он не находит ни одной точки, а в переменную #a записывается 0. Видимо он считает, что перед ним чёрный экран. Однако, если воспользоваться клавишами Ctrl+A, то цвет определяется верно в точке, где находился курсор. Иногда он находит ряд точек, но они совершенно не верные (вероятно, в этом случае работает с каким-то другим окном). Странно, учитывая то, что get color определял цвет нормально (правда только после того, как я перевёл игрушку в оконный режим).
UPD: сейчас затестил скрипт на обычной win-программе (мало ли какие могут быть проблемы с игрой). Так вот проблемы те же: если я ставлю R(1-256) или R(1-256),G(1-256),B(1-256), то не находится ни одной точки. Если же я ставлю R(0-256),G(0-256),B(0-256) то он находит примерно треть точек от той области которую я указал(!), а должен находить все. Или я опять что-то не догоняю...
|