Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot в онлайн играх _ Проблема в определении координат

Автор: Olga 24.1.2018, 7:53

Код
set #handleWin findwindow (***)
set workwindow #handleWin
wait 180000 + random (30000)
if 639, 650 1711907
left 768, 152
wait 3000 + random (100)
end_if
if 11, 243 1056421
start_script 1 wait
end_if
end_script

Нужно сделать выполнение некоторых функций при условии что определённый участок окна игры будет определённого цвета. Проблема в том, что введённые через CTRL + A во время сборки скрипта координаты, совершенно не совпадают с теми, которые кликает Пилот. И такая проблема возникает на компьютере с Win 7 и браузером Хром, на ноутбуках с Win 10 и Яндекс-Браузерами таких проблем не возникает - Пилот кликает и берёт пробу цвета там где положено. ОС виновата или браузер не знаю.
Если координаты, по которым нужно кликнуть, я могу вычислить (Пилот кликает выше заданного на сотню пикселей), то с определением цвета сложнее, вернее практически невозможно угадать нужную точку из-за неравномерности "окраски" этих самых пикселей...
В чём проблема? Что здесь можно придумать?

Автор: Olga 24.1.2018, 8:13

Проблема в Хроме. Сейчас на ноутбуке с Win 10 попробовала, так же кликает со смещением на сотенку пикселей выше. Наверняка же есть способ побороть эту проблему?

Автор: cirus 24.1.2018, 12:06

http://uopilot.tati.pro/index.php?title=Поиск_пути_к_дочернему_окну

Автор: Olga 24.1.2018, 19:53

Цитата(cirus @ 24.1.2018, 12:06) *

http://uopilot.tati.pro/index.php?title=Поиск_пути_к_дочернему_окну

Попробую, хотя не очень поняла про "дочернее окно"...

Автор: cirus 24.1.2018, 20:11

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

Автор: Olga 29.1.2018, 6:49

Цитата(cirus @ 24.1.2018, 12:06) *

http://uopilot.tati.pro/index.php?title=Поиск_пути_к_дочернему_окну

Код
exec "C:\Program Files\***"
wait 30s
set #ownerHandle findwindow (***)
set #tmp getwindow (#ownerHandle child)
set #childHandle getwindow (#tmp )
set workwindow #childHandle
...
end_script

Не работает, вдобавок складываются оба окна - и браузер и Пилот... Может кликала не там? Первый клик сделала вверху на вкладке браузера, второй клик по самой игре.
Мозиллу использовать не вариант, компьютер от Мозиллы буквально дохнет. Только Хром или Яндекс. Но у Яндекса свои заморочки, не связанные с Пилотом, любит он открывать вместо заданной в настройках страницы с игрой свои плитки или страницу "Я обновился" unsure.gif Нужно заставить корректно работать Хром. Помогайте, может ещё какие то мысли есть rolleyes.gif

Автор: cirus 29.1.2018, 17:05

Цитата
вдобавок складываются оба окна

Как это понять?
Цитата
Может кликала не там? Первый клик сделала вверху на вкладке браузера, второй клик по самой игре.

Там не кликать надо, а нажимать Ctrl+A.
1. Открываем браузер с нужной игрой.
2. Запускаем скрипт для поиска дочернего окна.
3. Наводим курсор на рамку/заголовок браузера. Нажимаем Ctrl+A.
4. Наводим курсор на игру. Нажимаем Ctrl+A.
5. Скрипт для поиска дочернего окна больше не потребуется.
Полученный код вставляем в пилот. Дописываем:
Код
// код из лога
set workwindow #childHandle
log #ownerHandle  // это будет хендл родительского окна, тот же что Ctrl+A на рамке браузера
log #childHandle   // это хендл дочернего, тот же что Ctrl+A над окном с игрой, т. е. тот что и нужен.
// если хендлы правильные проверяйте клики, для начала лучше используйте kleft, видно куда кликает.
end_script


Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)