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

4 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Скрипт Когда При Наведении Меняется Цвет Кнопки
defens
сообщение 4.9.2011, 18:54
Сообщение #1


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



кто знает как реализовать нажатие клавишу мыши, когда при наведении меняется цвет кнопки
кнопка появляться в одном и том же месте и как это реализовать в нескольких окнах поочередно
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.9.2011, 19:48
Сообщение #2


***********

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



читаем про:
if
move
set #var findwindow
showwindow
left/kleft


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


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



Цитата(DarkMaster @ 4.9.2011, 20:48) *

читаем про:
if
move
set #var findwindow
showwindow
left/kleft


тогда как на другие окна перейти тогда может по:
set #handle windowfromcursor
set workwindow #handle

да и думаю надо так:
move
if
set #var findwindow
showwindow
left/kleft
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.9.2011, 23:32
Сообщение #4


***********

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



с курсором может быть не удобно. если несколько окон с одинаковым названием, то я обычно после нахождения окна и записи его хендла переимновывал его, чтобы не мешалось.

Пример ренамера и автологина под рф онлайн.
Пример
Код

set #UOpilot findwindow (UoPilot  v2.18.8   WK)          //Сворачиваем пилот
showwindow #UOpilot minimize
// Скрипт совмещает в себе автологин для RF online и скрипт для переименования окон.

// ОПИСАНИЕ АВТОЛОГИНА
// Скрипт предназначен для автоматического ввода пароля в RF online.
// При запуске ланчера считывет из памяти логин, ищет логин в массиве %logPass,
// при нахождении совпадения вводит пароль.
// %logPass [ x 1 ] логин
// %logPass [ x 2 ] пароль

    set %logPass [ 1 1 ] логин
    set %logPass [ 1 2 ] пароль
    set %logPass [ 2 1 ] логин
    set %logPass [ 2 2 ] пароль
//..... ту было еще около 50 паролей)
    set #sizeLogPass size (%logPass)
// КОНЕЦ ОПИСАНИЯ АВТОЛОГиНА


// ОПИСАНИЕ РЕНАМЕРА
// Скрипт предназанчен для отслеживания и переименования окон.
// Написан изначально для RF Online. При нахождении окна пытается
// считать из памяти ник перса, если ник не найдет, то считывет логин
// и переменовывает согласно логину добавляя префикс "__".
// Скрипт будет в дальнейшем пытатся найти ник чара у окон с префиксом.
// Дальнейший поиск небходим, т.к. не загрузившись в мир
// считывать ник бессмысленно.

    set $firstTargetWindow "RF Online"  // Целевое окно для переименования
    set $secondoryTargetWindow __ // Второе целевое окно для переименования он же ПРЕФИКС.
    set linedelay 100
// КОНЕЦ ОПИСАНИЯ РЕНАМЕРА    
    
    
:start

    set linedelay 10 // Если расположить в шапке, то при переключении вкладки будет сбрасываться.
    gosub findWin
    gosub autologin

goto start

:findWin
    set #newWindowHandle findwindow ($firstTargetWindow) // Поиск целевого окна
    if #newWindowHandle > 0
        set workwindow #newWindowHandle
        readmem $charName 0x0080AF79 s 10 // Попытка считать ник чара
        if $charName <> ""
            set #result setwindowtext ( #newWindowHandle $charName ) // Переименовываем согласно нику
            set windowpos -4 -14 1032 900 #newWindowHandle
        else
            readmem $accountName 0x0127E70C s 10 // Ник не был найден, считываем логин
            set windowpos -4 -14 1032 900 #newWindowHandle
            set #result setwindowtext ( #newWindowHandle $secondoryTargetWindow $accountName) // Переименовываем согласно логину
        end_if
    end_if
    
    set #newWindowHandle findwindow ($secondoryTargetWindow) // Поиск окон переименованных согласно логину.
    if #newWindowHandle > 0
        set workwindow #newWindowHandle
        readmem $charName 0x0080AF79 s 10 // Попытка считать ник чара.
        if $charName <> ""
            set windowpos -4 -14 1032 900 #newWindowHandle // Переименовываем согласно нику
            set #result setwindowtext ( #newWindowHandle $charName )
        end_if
    end_if
return

:autologin
    set #launcherMain findwindow (RF OLD x3)
    set #testTargetWindow getwindow (#launcherMain CHILD)
    if #testTargetWindow = 0 // При запуске создается два окна с одинаковым названием. Одно ложное - отсекаем.
        set #result setwindowtext (#launcherMain RF_OLD x3 ) // Переименовываем ложное, чтобы больше не ловить его.
    else
        set linedelay 0
        set workwindow #launcherMain
        readmem #markerLogin 0x00C40014 d
        readmem $login #markerLogin s 10
        set #i 0
        while #i < #sizeLogPass // Сопоставление логина из ланчера с базой логин/пароль (%logPass)
            set #i #i + 1
            set $loginArr %logPass [ #i 1 ]
            if $loginArr = $login
                break
            end_if
            if #i = #sizeLogPass
                return
            end_if
        end_while
        set #launcher getwindow (#launcherMain CHILD) // Перебор окон для задания рабочим оконом поле ввода пароля
        repeat 11
            set #launcher getwindow (#launcher NEXT)
        end_repeat
        set #launcher getwindow (#launcher CHILD)
        set #launcher getwindow (#launcher NEXT)
        set workwindow #launcher
        say %logPass [ #i 2 ] // Вводим пароль
        send enter
        set workwindow #launcherMain
        set #breakWaitConnect timer + 20000
        while_not 821, 42 65280
            if #breakWaitConnect < timer
                msg Ошбка подключения к серверу. Слишком долго не было видно статуса сервера.
                return
            end_if
            wait 100
        end_while
        get mouse_pos #xReturn #yReturn
        kleft 821, 42
        move #xReturn, #yReturn
        set linedelay 10
        wait 2s
    end_if
return


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


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



в сообщении что выше не совсем понял чем мне это поможет

как считаете если взять Дескриптор каждого окна из WindowScanner
и вставить в set #var findwindow и как реализовать переключение на другое окно
ведь курсор будет удерживаться там где move укажет
есле реализовать через wait но как ему указать на какое следующее кликнуть
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.9.2011, 2:09
Сообщение #6


***********

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



подпрограмма findwind из поста выше по факту сильно усложненный вариант того, что вам нужно.
Цитата
если взять Дескриптор каждого окна из WindowScanner

проще через findwindow найти все хендлы попутно переименовывая найденные окна, чтобы не попались по второму кругу.
Цитата
и вставить в set #var findwindow

Финдвиндов как раз и находит хендл. В него вставляют заголовок окна.
Цитата
как реализовать переключение на другое окно

уже предлагал почитать про showwindow
Цитата
ведь курсор будет удерживаться там где move укажет

курсор "удерживаться" не будет. мув только перемещает. как это осложняет переключение окон не понял.
Цитата
есле реализовать через wait

в любом случае придется делать задержку на разворачивание окна
Цитата
wait но как ему указать на какое следующее кликнуть

кому "ему"?

Сообщение отредактировал DarkMaster - 5.9.2011, 2:09


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


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



Цитата(DarkMaster @ 5.9.2011, 3:09) *

кому "ему"?

курсору, его же от место move не оторвать, без задержки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 5.9.2011, 2:29
Сообщение #8


***********

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



А зачем его отрывать то? что страшного в задержке? вот только зачем?


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


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



с окнами думаю чтоб меньше заморочиваться открою в разных браузерах
в findwindow найду хендлы
в ShowWindow <handle> <SHOW>
окна думаю не разворачивать а поделить экран на части

Цитата(DarkMaster @ 5.9.2011, 3:29) *

А зачем его отрывать то? что страшного в задержке? вот только зачем?

задержка то как раз не страшна, а отрывать чтоб на другое переключить
вот тоже придется делать тогда через set $a findcolor чтоб курсор шел туда
в котором появится вновь эта кнопка

так и не могу разобраться с переименованием окон, может есть другой проще пример
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2011, 3:35
Сообщение #10


***********

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



Цитата
как все же через findwindow найти все хендлы и переименовывать найденные окна, пытаюсь разобрать с Window Scanner, но и там не пойму как переиминовывать, найти с его помощью разобрался, а дальше пока не нашел как делать

Завидное упорство не следовать советам. Ваши усилия да в правильное русло... (IMG:style_emoticons/default/smile.gif)

Значения подставишь.

Код
set #i 1
set #winHandle findwindow (СЮДА ИМЯ ОКНА)
while #winHandle > 0
set %winHandle [ #i ] #winHandle
set #result setwindowtext ( #winHandle #i )
set #winHandle findwindow (СЮДА ИМЯ ОКНА)
set #i #i + 1
end_while

showwindow %winHandle [ НОМЕР НАЙДЕНОГО ОКНА ] // Вытащит окно


все хендлы окон с введенным тобой названием будут занесены в массив %winHandle

Сообщение отредактировал DarkMaster - 7.9.2011, 2:58


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



DarkMaster
внутри цикла while нужно добавить (перед end_while)
Код
set #i #i + 1

и findwindow почему-то нету...


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2011, 7:19
Сообщение #12


***********

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



Спать надо больше... Время уже к обеду, а я не спавши(


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


**

Neophyte
Сообщений: 46
Регистрация: 6.9.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.958



Добрый день, в общем то вопрос тот же, но вид сбоку
можно ли забить массив из цвета кнопки и проверить из него все,
если можно научите пожалуйста как =)
пока выглядит так

Код
set #x99 145
set #y99 547
wait 200
move #x99, #y99   abs
wait 200
get color #хр #x99, #y99 abs
wait 200
if #xp = 36316  or #xp = 158398 or #xp = 5987163 or #xp = 45560 or #xp =6645093 or #xp = 27073  
goto next
end_if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2011, 16:19
Сообщение #14


***********

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



читаем про findimage


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


**

Neophyte
Сообщений: 46
Регистрация: 6.9.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.958



читала, не поняла принцип работы, в обход получилось так как описано выше
помогите пожалуйста ссылкой или советом
сейчас скрипт работает, но в некоторых точках цветов более 12, получается нагромождения из if or
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2011, 16:44
Сообщение #16


***********

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



Именно or, а не and? Что вы хотите сделать: поиск оттенков кнопки или поиск статичного изображения кнопки? Изменения цветов кнопки надо отслеживать? Если нет, то настоятельно рекомендую findimage. Чтобы дать более точный и актуальный ответ хотелось бы подробнее ситуацию понять. C какой целью вообще делается проверка на большое количество точек? Почему не достаточно нескольких?


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


**

Neophyte
Сообщений: 46
Регистрация: 6.9.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.958



спасибо что откликнулись =)
именно or,
координаты точки на кнопке указаны верно, через abs
после нажатия кнопка меняет цвет
идет проверка по цвету (нажата / нет) и к следующему персонажу

проблема в том, что цвета на кнопке имеет много оттенков,
а в зависимости от роста персонажа, на каждой следующей странице кнопка отклоняется на несколько пикселей в разных направлениях
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2011, 16:59
Сообщение #18


***********

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



тогда только ифами. в ифах есть возможность задать диапазон цветов.
if x y color1 color2

Тут можно в адекватном виде сделать диапазон цвета.
https://forum.uokit.com/index.php?showtopic=22116


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


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



уточняю еще раз: кнопка имеет два внешних вида (нажата/ненажата) или больше (цвета все время меняются)?
Если только два вида, то findimage закрывает все вопросы


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
defens
сообщение 7.9.2011, 1:29
Сообщение #20


**

Группа: Пользователи
Наличность: 0
Пользователь №: 13.953
Возраст: 29



Цитата(DarkMaster @ 6.9.2011, 4:35) *

Завидное упорство не следовать советам. Ваши усилия да в правильное русло... (IMG:style_emoticons/default/smile.gif)


стараюсь следовать им и очень признателен за помощи и терпение, но чем дальше тем в больший ступор меня загоняют ответы (IMG:style_emoticons/default/ohmy.gif)

Цитата(DarkMaster @ 6.9.2011, 4:35) *

Код
set #i 1
set #winHandle (СЮДА ИМЯ ОКНА)
while #winHandle > 0
set %winHandle [ #i ] #winHandle
set #result setwindowtext ( #winHandle #i )
set #winHandle (СЮДА ИМЯ ОКНА)
set #i #i + 1
end_while

showwindow %winHandle [ НОМЕР НАЙДЕНОГО ОКНА ] // Вытащит окно



все хендлы окон с введенным тобой названием будут занесены в массив %winHandle


а это как дополнение к раннему или новое

да и нашел ранее написанное вами в другой теме
set #n 1
set #var findwindow (Lineage II)
while #var <> 0
set #result setwindowtext ( #var Окно № #n)
set #var findwindow (Lineage II)
set #n #n + 1
end_while
stop_script

скрипт отрабатывает без видимых процессов и без ошибок, а нет он имя сменил хотя я его ранее сменил в Window Scanner (IMG:style_emoticons/default/biggrin.gif) в это ( #var Окно № #n) ввел цифры хендлы взятые из Window Scanner
наконец то хоть что то сдвинулось, осталось разобраться с переключением окон и кликами
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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