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

 
Ответить в эту темуОткрыть новую тему
> Проблема: функция get color отрабатывает не всегда
ИгорьКокс
сообщение 21.5.2018, 15:52
Сообщение #1


*

Registred
Сообщений: 3
Регистрация: 21.5.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.944
Возраст: 40



Здравствуйте.
Не ясно по какой причине, мой скрипт на строках с вызовом функции get color пишет в лог следующее:

15:26:37 0 (autosaved_0.txt, 601): get - Не удалось создать картинку.
15:26:37 0 (autosaved_0.txt, 601): get - Не удалось выбрать картинку.
15:26:37 0 (autosaved_0.txt, 601): get - Не удалось создать картинку из памяти.
15:26:37 0 (autosaved_0.txt, 601): get - Не закрылось.
15:26:37 0 (autosaved_0.txt, 601): get - Не открылось.


Вот реальный пример моего скрипта:
Код
set #handleWin findwindow (Игра)
set workwindow #handleWin
set #xcoord3f 599
set #xcoord3 8
set #ycoordcommon 295
set #ycoord3 15

set #x #xcoord3f + #xcoord3
set #y #ycoordcommon + #ycoord3
get color #ccolor #x #y


Вот как раз на последней строчке пилот ругается в лог, и что самое интересное, это происходит не каждый раз, а иногда. Функции get color в скрипте довольно много, и эти ошибки скачут по таким строкам в случайном порядке. Может кто с таким сталкивался и поборол? Буду благодарен за помощь.

Версия программы: 2.40
ОС: Windows 10 x64


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


***********

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



попробуйте использовать обновленый синтаксис:
set #c color(#x, #y)


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


*

Registred
Сообщений: 3
Регистрация: 21.5.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.944
Возраст: 40



Спасибо за совет, но, к сожалению, новый синтаксис не помог. Однако я заметил одну особенность, попробую объяснить...
Непосредственно окно игры, с которым нужно работать, порождается родительским окном игрового клиента, и имеет свой максимальный размер (заданный разработчиками), который меньше разрешения монитора (1280х1024), попытки развернуть его на полный экран стандартной кнопкой окна "Развернуть"не удаются. Если же потянуть окно игры за заголовок к верху экрана, то окно разворачивается на полную ширину экрана (видно, это недоработка разработчика игры). Так вот, в этом положении функция get color случайным образом ругается в лог, но, если окно не расширять, а оставить в "родных" рамках, то функция отрабатывает без ошибок в логе, но возвращает тоже в случайном порядке "левые" значения цвета нужных мне точек (т.е. часть цветов правильные, а часть нет).
Ещё одно: если в параметрах функции указывать get color хендл окна, то цвета возвращаются "левые" абсолютно все, я так и не смог определить из какого окна они берутся. Хендл указан именно нужного окна, я уверен на 100%, так как GetWindowtext для этого хендла возвращает правильный заголовок.

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.5.2018, 11:58
Сообщение #4


***********

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



Цитата
Ещё одно: если в параметрах функции указывать get color хендл окна, то цвета возвращаются "левые" абсолютно все, я так и не смог определить из какого окна они берутся. Хендл указан именно нужного окна, я уверен на 100%, так как GetWindowtext для этого хендла возвращает правильный заголовок.

А если нажать на кнопочку F в интерфейсе пилота сверху, то скриншот корректный?
Вообще скорее всего какое-то смещение координат происходит. Можно попробовать взять цвет какой-нибудь точки, а потом финдколором найти ее координаты. Скорее всего они будут разными.


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


*

Registred
Сообщений: 3
Регистрация: 21.5.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.944
Возраст: 40



Проблема, вроде, решена, спасибо. Нужно было просто получить нормальный хендл рабочего окна, получилось сделать это с помощью конструкции
Код

set #handle WindowFromCursor
set workwindow #handle

теперь в каждой функции get color ставлю параметр хендла и все отлично работает.
Ума не приложу почему конструкция
Код
set #handle findwindow (игра)
set workwindow #handle

не давала корректного хендла, хотя, ещё раз, заголовок окна по этому хендлу возвращался правильный.
Спасибо большое, DarkMaster, за помощь.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.5.2018, 18:01
Сообщение #6


***********

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



http://forum.uokit.com/index.php?showtopic=26742

Чтобы не мучиться с курсорами. Там просто будет готовый код. Родительское окно рекомендую на рамку наводить.


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

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

 

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