Здравствуйте, гость ( Вход | Регистрация )

> Поиск статичных точек на кнопках и не только
DarkMaster
сообщение 25.12.2013, 9:10
Сообщение #1


***********

Модератор UOPilot
Сообщений: 9.752
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29836
Пользователь №: 11.279



Часто кнопки подсвечиваются при наведении на них. Но несмотря на это, на них зачастую есть статичные цвета. Чтобы не писать диапазоны или не раздувать if'ы, можно поискать не изменяющиеся цвета и их координаты. Собственно код:
Скрипт
Код
set linedelay 0
set #dev 1
if  #dev = 1
    log close
    log clear
    log mode noScript
    set #handleLogWindow findwindow ("Log Window")
    showwindow #handleLogWindow show
    log open 1 -10 500 300
    set #handleUoPilot findwindow ("UoPilot")
end_if
set $bmp ".bmp"

log Наведите на целевое окно и нажмите ctrl+A.
log Окно будет испозовано только,
log как точка начала отсчета относительных координат.
set workwindow 0
while workwindow = 0
    wait 100
end_while
set #workwindow workwindow

log
log Наведите на ЛЕВЫЙ ВЕРХНИЙ левый угол
log анализируемого объекта и нажмите ctrl+A.
set workwindow 0
while workwindow = 0
    wait 50
end_while
get mouse_pos #startX #startY
log
log Наведите на ПРАВЫЙ НИЖНИЙ угол
log анализируемого объекта и нажмите ctrl+A.
log После чего НЕ перемещайте курсор.
set workwindow 0
while workwindow = 0
    showwindow #handleUoPilot show  
    wait 50
end_while
get mouse_pos #endX #endY

:start
    for #i #startX #endX 1
        for #j #startY #endY 1
            get color #c #i #j
            set %arr1 [ #i #j ] #c
        end_for
        log дипазон строк: #startX #endX текущая строка: #i
    end_for
    set #lastWorkwindow workwindow
    log
    log Теперь убрете кусор с анализируемого объекта  и
    log нажмите ctrl+A для продолжения.
    set workwindow 0
    while workwindow = 0
        alarm
    end_while
    for #i #startX #endX 1
        for #j #startY #endY 1
            get color #c #i #j
            set %arr2 [ #i #j ] #c
        end_for
        log дипазон строк: #startX #endX текущая строка: #i
    end_for
    log clear
    log Статичные точки:
    for #i #startX #endX 1
        for #j #startY #endY 1
            if  %arr1 [ #i #j ] = %arr2 [ #i #j ]
                log #i   #j   %arr1 [ #i #j ]
            end_if
        end_for
    end_for
    stop_script
goto start

stop_script


Сообщение отредактировал DarkMaster - 25.12.2013, 9:14


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 7.9.2025, 6:21
Designed by Nickostyle