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

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Поиск Цвета По Слоям., Определяет не тот цвет.
DarkMaster
сообщение 10.1.2011, 16:34
Сообщение #21


***********

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



Denker, извиняюсь что пропал. Был занят. По поводу глюка потестить времени не было. Буду наверное только дня через два. На первый взгляд глюк возможен из-за смещения рамки за предел экрана на пару пикселей. Я вообще натыкался на похожий баг и даже описывал, но вот только давненько это было. В божеский вид думаю приведем.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Denker
сообщение 10.1.2011, 19:55
Сообщение #22


**

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



Возможно. Тебе виднее.
Но мои вычисления по формуле X = 2 * #x + %arr, (мы помним, что значение %arr отрицательное) давали правильный результат. Для Y аналогично. X, Y -- координаты найденой точки.

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

Такой вопрос: первый скрипт запускает второй, а сам останавливается. Второй вызывает переменные из первого. Эти переменные сохраняют последние свои значения или сбрасываются?

Клик мышкой срабатывает по команде pleft, но при этом она не сдвигается в указаные координаты, т.е. кликает там, где находится. Команда move не работает. Какие ещё есть команды на движение мышкой?

P.S. Если интересно, конечный вариант моего скрипта:

Рыбалка

Код

set #a findwindow (Фантазиум (RU))
set workwindow #a
showwindow #a
//set #x 549 // для 4 -- начальная координата в зависимости от количества клавиш в комбинации
//set #x 518 // для 5
//set #x 488 // для 6
set #x 457 // для 7
wait 1500
set $b1 0
set $b2 0
set $b1 findcolor (1062, 754 1063, 755 1 1 1184461 %arr 2 abs)
set $b2 findcolor (547, 616 548, 617 1 1 2397184 %arr 2 abs)
if ($b1 > 0) and ($b2 > 0)
for #i 1 7 // количество проходов цикла равно количеству клавиш
set $u 0
set $d 0
set $l 0
if #i = 3
set #x #x - 1
end_if
if #i = 4
set #x #x + 1
end_if
set #x1 #x + 1
set $u findcolor (#x, 653 #x1, 654 1 1 7266294 %arr 2 abs)
set $d findcolor (#x, 672 #x1, 673 1 1 2982898 %arr 2 abs)
set $l findcolor (#x, 652 #x1, 653 1 1 7266294 %arr 2 abs)
set #x #x + 59
if $u = 1
post {Up}
else
if $d = 1
post {Down}
else
if $l = 1
post {Left}
else
post {Right}
end_if
end_if
end_if
end_for
wait 4000
end_if

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.1.2011, 8:38
Сообщение #23


*********

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



Цитата(Denker @ 10.1.2011, 18:55) *

Такой вопрос: первый скрипт запускает второй, а сам останавливается. Второй вызывает переменные из первого. Эти переменные сохраняют последние свои значения или сбрасываются?

Клик мышкой срабатывает по команде pleft, но при этом она не сдвигается в указаные координаты, т.е. кликает там, где находится. Команда move не работает. Какие ещё есть команды на движение мышкой?

1) если 1-й скрипт поставить на паузу (pause_script), то всё будет ок. Иначе во 2-м скрипте полезут ошибки при обращении к переменным из 1-го скрипта

2) kleft и др (во встроенной справке к программе всё есть). И в настройках пилота можно снять птичку "Возвращать курсор мыши после кликов"

Вообще, при написании скриптов нагляднее использовать структурирование кода.
И вопрос: почему для переменных $u и $l ищется одинаковый цвет 7266294 - это правильно?

Структурированный код

Код
for #i 1 7 // количество проходов цикла равно количеству клавиш
   set $u 0
   set $d 0
   set $l 0
   if #i = 3
      set #x #x - 1
   end_if
   if #i = 4
      set #x #x + 1
   end_if
   set #x1 #x + 1
   set $u findcolor (#x, 653 #x1, 654 1 1 7266294 %arr 2 abs)
   set $d findcolor (#x, 672 #x1, 673 1 1 2982898 %arr 2 abs)
   set $l findcolor (#x, 652 #x1, 653 1 1 7266294 %arr 2 abs)
   set #x #x + 59
   if $u = 1
      post {Up}
   else
      if $d = 1
         post {Down}
      else
         if $l = 1
            post {Left}
         else
            post {Right}
         end_if
      end_if
   end_if
end_for

Кстати, кто каким образом пишет скрипты?
Я, например, пользуюсь отличным текстовым редактором для программистов Notepad++ или другим SciTE. В обоих есть подсветка синтаксиса - довольно удобно, отступы автоматизированы, много других "вкусных" фишек


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


***********

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



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Denker
сообщение 11.1.2011, 11:32
Сообщение #25


**

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



Цитата(Zeleax @ 11.1.2011, 7:38) *

1) если 1-й скрипт поставить на паузу (pause_script), то всё будет ок. Иначе во 2-м скрипте полезут ошибки при обращении к переменным из 1-го скрипта

2) kleft и др (во встроенной справке к программе всё есть). И в настройках пилота можно снять птичку "Возвращать курсор мыши после кликов"

Вообще, при написании скриптов нагляднее использовать структурирование кода.
И вопрос: почему для переменных $u и $l ищется одинаковый цвет 7266294 - это правильно?

Кстати, кто каким образом пишет скрипты?
Я, например, пользуюсь отличным текстовым редактором для программистов Notepad++ или другим SciTE. В обоих есть подсветка синтаксиса - довольно удобно, отступы автоматизированы, много других "вкусных" фишек


1) А потом из второго его запускать start_script 0 и он продолжит с места остановки?

2) В том-то и дело, что на left и kleft вообще не реагирует, а в справке только про left говорится, остальные даже не упоминаются. Про них в "Полезных советах". Флажки возвращать курсор снят, перемещать курсор стоит. На команду move ноль реакции.

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

"Для переменных $u и $l ищется одинаковый цвет 7266294", да, так и должно быть. Через Unique Colors Search определил, что цветовой набор одинаковых стрелок не меняется от их положения. Отсюда через FastStone Capture определил одну вертикаль (координата Х для всех одинакова) в котрой ищу цвет присущий только определённой стрелке именно в этой точке (в FastStone Capture очень удобно сразу смотреть координату и цвет пикселя во время "пипетки", тем более, что в этот момент "замораживается" картинка). Это значительно упростило скрипт, но тут у меня выскочила одна сложность -- веротикаль для $l полностью содержала в себе $r. Т.е. если проверка проходила для $l, то проходила и для $r, но в обратном порядке работало правильно. Поэтому и пришлось писать дерево ифоф, зато избавился от двух операторов.

Пишу напрямую в окне пилота. Так и не смог копи/пастить на автомате.
SciTE знаю, пользовался когда копался во внутриностях Кингс Баунти. Повышал вероятность появления сундуков на поле боя и их содержимое. Кстати совсем про неё забыл, надо поставить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.1.2011, 11:47
Сообщение #26


*********

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



1) resume_script 0 // во втором скрипте (нумерация скриптов начинается с нуля)
2) История развития программы + Помощь по языку скриптов. Советую собрать всю инфу в одном файле, где и читать/искать
3) если стрелки занимают на экране строго определенное положение и цвета для каждой стрелки одни и те же, то может вместо findcolor лучше использовать точечную проверку цвета? (if #x, #y #color ...)


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Denker
сообщение 11.1.2011, 11:54
Сообщение #27


**

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



Цитата(Zeleax @ 11.1.2011, 10:47) *

3) если стрелки занимают на экране строго определенное положение и цвета для каждой стрелки одни и те же, то может вместо findcolor лучше использовать точечную проверку цвета? (if #x, #y #color ...)


вот мы и вернулись к тому, с чего всё начиналось
https://forum.uokit.com/index.php?showt...20806&st=0#
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.1.2011, 12:06
Сообщение #28


*********

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



Цитата(Denker @ 11.1.2011, 10:54) *

вот мы и вернулись к тому, с чего всё начиналось

(IMG:style_emoticons/default/biggrin.gif)


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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