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

> Поиск Цвета По Слоям., Определяет не тот цвет.
Denker
сообщение 6.1.2011, 0:53
Сообщение #1


**

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



Столкнулся с такой проблеммой:
в углу окна висит хит-бар с показаниями здоровья, делаю проверку цвета по заданым координатам, но проверка не проходит. После использования команд get color и лога, понял, что цвет берётся не из картинки с хит-баром, а с фона на котором она висит.
Как это решается?
Искал по форуму, описания подобных проблемм не нашёл, извините, если плохо искал.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Denker
сообщение 10.1.2011, 19:55
Сообщение #2


**

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
Сообщение #3


*********

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
Denker   Поиск Цвета По Слоям.   6.1.2011, 0:53
DarkMaster   сталкиваолся подобной проблемой в масс эффекте и в...   6.1.2011, 3:30
Denker   Игра Фантазиум, пытаюсь автоматизировать рыбалку. ...   6.1.2011, 5:23
Zeleax   Про этот я знаю set $a findcolor (1, 1 2, 2 ...   6.1.2011, 10:31
Denker   Вроде писали, что findcolor не работает, если сов...   6.1.2011, 13:12
DarkMaster   теоретически, если сохранишь в бмп, то проблем не ...   6.1.2011, 20:23
Denker   set $a findcolor (1, 1 2, 2 1 1 123456 %arr ...   7.1.2011, 17:18
Zeleax   Очень удобно использовать для захвата экрана и опр...   7.1.2011, 17:26
Denker   Спасибо за помощь, findcolor настроил, но вылезла ...   7.1.2011, 18:27
Zeleax   может быть цвет не был найден, тогда и ошибка появ...   7.1.2011, 19:43
Denker   может быть цвет не был найден, тогда и ошибка поя...   7.1.2011, 20:02
DarkMaster   у тебя все массивы одинаковые. может произойти сле...   7.1.2011, 20:21
Denker   у тебя все массивы одинаковые. может произойти сл...   7.1.2011, 21:31
Denker   Я его сделал! Огромное всем спасибо за помощь....   8.1.2011, 14:30
Zeleax   я ж писал уже, что элементы массивов напрямую обыч...   8.1.2011, 17:05
DarkMaster   Очень странный глюк. Создается впечатление, что п...   8.1.2011, 21:25
Denker   Привожу полный текст скрипта. Правда я его уже при...   9.1.2011, 0:05
Denker   Ещё немного модифицировал и упростил код. Во время...   9.1.2011, 14:58
Zeleax   Непонятно почему так происходит, но обойти можно т...   10.1.2011, 15:09
Denker   Спасибо за совет, но к этому я уже сам пришёл. А о...   10.1.2011, 16:33
DarkMaster   Denker, извиняюсь что пропал. Был занят. По поводу...   10.1.2011, 16:34
Denker   1) если 1-й скрипт поставить на паузу (pause_scri...   11.1.2011, 11:32
DarkMaster   мелочь внутри пишу. что-то объемное Notepad++. я г...   11.1.2011, 11:08
Zeleax   1) resume_script 0 // во втором скрипте (нумерация...   11.1.2011, 11:47
Denker   3) если стрелки занимают на экране строго определ...   11.1.2011, 11:54
Zeleax   вот мы и вернулись к тому, с чего всё начиналось ...   11.1.2011, 12:06


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

 

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