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

 
Ответить в эту темуОткрыть новую тему
> Сбор Лута
Drofa
сообщение 27.1.2011, 1:03
Сообщение #1


*

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



Может кто знает почему так происходит?

Написал следующий скрипт:
set $a 0
while $a = 0
set $a findcolor (336, 156 476, 206 1 1 14079 %arr 2)
end_while
Move %arr [1 1], %arr [1 2]
Left %arr [1 1], %arr [1 2]

Ищет цвет, когда находит щелкает в тамже... но что то щелкает совсем в другом месте ((( кудато ввех

После изменил
set $a 0
while $a = 0
set $a findcolor (336, 156 476, 206 1 1 14079 %arr 2)
set $a findcolor (336, 156 476, 206 1 1 14079 %arr 1)
end_while
Move %arr [1 1], %arr [1 2]
Left %arr [1 1], %arr [1 2]

Проверил в фотошопе, находит, щелкает... а в игрушке не находит (((
Даже пробовал задавать маленькую область, прям там где лут... и разбивать по областям и сразу 3 скрипта запускать.. тоже безрезультатно. Скрипт взял с форума (первый его вариант)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.1.2011, 1:14
Сообщение #2


***********

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



https://forum.uokit.com/index.php?showtopic=20548
Раздел поиск цвета, пункт "Г". Так же хочу заметить, что смещение иногда несколько иное, чем на приведенном там рисунке. Так же можно поэкспериментировать поставив не относительные, а абсолютные координаты.


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


*

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



Цитата(DarkMaster @ 27.1.2011, 1:14) *

https://forum.uokit.com/index.php?showtopic=20548
Раздел поиск цвета, пункт "Г". Так же хочу заметить, что смещение иногда несколько иное, чем на приведенном там рисунке. Так же можно поэкспериментировать поставив не относительные, а абсолютные координаты.


Спасбо за быстрый ответ! (IMG:style_emoticons/default/smile.gif)

Изменил.

set #deltaX 330
set #deltaY 150
set $a 0
while $a = 0
set $a findcolor (330, 150 479, 297 1 1 6517361 %arr 2)
end_while
set #x %arr [1 1] + #deltaX
set #y %arr [1 2] + #deltaY

Move #x, #y
wait 200
left #x, #y

Картинка меняется и искомые точки находятся очень редко...

К томуже ругается на седьмую строчку "Проверьте правильность скрипта" время от времени (подозреваю, если находит точки в оприделенной области).

В программировании не силен (IMG:style_emoticons/default/dry.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.1.2011, 12:43
Сообщение #4


***********

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



set $a findcolor (330, 150 479, 297 1 1 6517361 %arr 2) пробовали не 2, а первый метод поиска цвета? 2 для линейки в основном делался.
Седьмая строка эта?:
set #x %arr [1 1] + #deltaX
Тут точно нет ошибки. Возможно вы опечатались либо в этой строке либо при объявлении #deltaX .
Цитата
подозреваю, если находит точки в оприделенной области

раз доходит до set #x %arr [1 1] + #deltaX , значит точки находятся.
Цитата
Картинка меняется и искомые точки находятся очень редко

А точный цвет всегда присутствует? Любое изменение оттенка и цвет уже не найдет. Проверьте правильность указанного цвета. Вам может помочь специальная программа https://forum.uokit.com/index.php?showtopic=20545

Сообщение отредактировал DarkMaster - 27.1.2011, 12:44


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


*

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



Цитата
set $a findcolor (330, 150 479, 297 1 1 6517361 %arr 2) пробовали не 2, а первый метод поиска цвета? 2 для линейки в основном делался.


первого метода не знаю...

Цитата
Седьмая строка эта?:
set #x %arr [1 1] + #deltaX
Тут точно нет ошибки. Возможно вы опечатались либо в этой строке либо при объявлении #deltaX .


В ней ошибки нет, находит цвет, кликает, а в оприделенный момент вылетает ошибка... Скрипт скопировал как есть...

Цитата
А точный цвет всегда присутствует? Любое изменение оттенка и цвет уже не найдет. Проверьте правильность указанного цвета. Вам может помочь специальная программа https://forum.uokit.com/index.php?showtopic=20545


Точный цвет не всегда присутвует, это усложняет поиск.... объект анимирован и меняет оттенки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 27.1.2011, 16:15
Сообщение #6


*********

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



Цитата(Drofa @ 27.1.2011, 14:52) *

Точный цвет не всегда присутвует, это усложняет поиск.... объект анимирован и меняет оттенки.

Так программа и предназначена для подбора оптимального искомого цвета (цветов) для меняющихся многоцветных объектов


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


***********

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



Цитата
первого метода не знаю...

я даже жирным выделил специально =) там в конце строки "2" стоит. на 1 попробуй сменить.
Цитата
в оприделенный момент вылетает ошибка...

надо понять этот момент. попробуем логи сделать может что-то прояснится.


set #dev 1
if #dev = 1
set logging clear
set logging close
set logging open 1 -6 1024 150
end_if


set #deltaX 330
set #deltaY 150
set $a 0
while $a = 0
set $a findcolor (330, 150 479, 297 1 1 6517361 %arr 2)
end_while
set logging size (%arr)
set logging %arr [1 1]
set logging #deltaX
set logging %arr [1 1] + #deltaX
wait 100 // Внимание! Попробуй с задержкой.

set #x %arr [1 1] + #deltaX
set #y %arr [1 2] + #deltaY

Move #x, #y
wait 200
left #x, #y


После выпадения ошибки последних строк 10 лога сюда скинь.

Сообщение отредактировал DarkMaster - 27.1.2011, 16:17


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


*

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



Первый метод не пробовал...

Благодарю за программу, очень помогла, ее цвет более стабильно находится!!!

Лог:
21:20:39 3 (Поиск цвета лута.txt): 9
21:20:39 3 (Поиск цвета лута.txt): 61
21:20:39 3 (Поиск цвета лута.txt): 330
21:20:39 3 (Поиск цвета лута.txt): 61 + 330
21:20:49 3 (Поиск цвета лута.txt): 9
21:20:49 3 (Поиск цвета лута.txt): 68
21:20:49 3 (Поиск цвета лута.txt): 330
21:20:49 3 (Поиск цвета лута.txt): 68 + 330
21:20:53 3 (Поиск цвета лута.txt): 9
21:20:53 3 (Поиск цвета лута.txt): 68
21:20:53 3 (Поиск цвета лута.txt): 330
21:20:53 3 (Поиск цвета лута.txt): 68 + 330
21:21:21 3 (Поиск цвета лута.txt): 0


Хотел еще спросить, но решил перемещением курсора на -10, -10 (когда щелчек по кнопке происходит, получается что кнопки уже нет а щелчек еще работает, и кликает по ландшафту) (IMG:style_emoticons/default/smile.gif)

Поставил ссылку на начало скрипта, при условии если %arr будет равен нулю, мож поможет =)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.1.2011, 23:02
Сообщение #9


***********

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



хе... ну что я могу сказать... бред полнейший...
while $a = 0
как раз должен избавить от нуля... теперь понятно хотя бы в чем проблема. ща будем править.

set #dev 1
if #dev = 1
set logging clear
set logging close
set logging open 1 -6 1024 150
end_if

set #deltaX 330
set #deltaY 150

:start
set $a 0
while $a = 0
set $a findcolor (330, 150 479, 297 1 1 6517361 %arr 2)
wait 100 // Сначала попробуй без этой задержки, потом добавь.
end_while
set logging a $a размер size (%arr)
set #sizeArr size (%arr)
if #sizeArr = 0 // Вот это по идее должно вылечить в любом случае.
goto start
end_if

set #x %arr [1 1] + #deltaX
set #y %arr [1 2] + #deltaY

Move #x, #y
wait 200
left #x, #y

goto start

Прогони без задержки, потом с ней. Логи после ошибки на обоих прогонах на форум. Видимо какой-то косяк пилота. Решение в теле скрипта дал. Логи помогут понять в чем именно проблема.


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


*

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



Длительно проверять не мог, но даже без правки ошибку не давал хотя все тоже самое. Возможно не стабильно работает, если запущены несколько скриптов. У меня было запущено три, как и сейчас. Планирую два объединить. Как только наткнуть на ошибку, отпишусь. Сейчас совершенствую основной скрипт боя и возможно это разгрузило Пилот. Результат меня порадовал, если честно не думал, что получится, спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Drofa
сообщение 29.1.2011, 19:06
Сообщение #11


*

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



лог без задержки
20:12:42 4 (***.txt): a 7 размер 7
20:13:24 4 (***.txt): a 0--- размер 0

лог с задержкой
21:32:48 4 (***.txt): a 13 размер 13
21:36:13 4 (***.txt): a 11 размер 11
21:36:25 4 (***.txt): a 11 размер 11
21:36:32 4 (***.txt): a 7 размер 7
21:36:39 4 (***.txt): a 9 размер 9
21:38:46 4 (***.txt): a 13 размер 13
21:40:23 4 (***.txt): a 9 размер 9
21:46:34 4 (***.txt): a 0--- размер 0

Правка помогла!!!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alexander_Dream
сообщение 11.2.2011, 17:36
Сообщение #12


*

Registred
Сообщений: 5
Регистрация: 11.2.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.438
Возраст: 18



тоже столкнулся с проблемой сбора лута, думал использовать программу но лут падает только с боса а на него может наложиться 3-4 трупа безлутовых монстров, и выявить что есть лут можно только наведением курсора и получением по контуру трупа толстой желтой линии, поэтому задумался как реализовать проведение мышкой по верхней половине экрана(прямоугольник на которой может упасть моб) по зигзагообразной(сверху вниз-на 0,5см враво-снизу вверх-на 0,5 вправо- и т.д) траектории, и так весь экран и при нахождении желтой линии или хотябы нескольких рядом стоящих желтых пикселей нажимать на 2сантиметра вверх\право\влево\вниз, и так весь экран.
как это сделать? или как лучше?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.2.2011, 21:07
Сообщение #13


*********

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



Цитата(Alexander_Dream @ 11.2.2011, 16:36) *
как это сделать? или как лучше?

Так и делал: перемещал курсор мышки по горизонтали с шагом, потом на ряд ниже и т.п. Для каждого положения курсора искал цвет полоски в небольшом квадрате вокруг курсора мышки с помощью findcolor. При нахождении - прерывал цикл и кликал ниже и правее точки нахождения полоски (для моей игры). Шаг перемещения по горизонтали и вертикали подбирается опытным путем


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alexander_Dream
сообщение 11.2.2011, 22:31
Сообщение #14


*

Registred
Сообщений: 5
Регистрация: 11.2.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.438
Возраст: 18



Цитата(Zeleax @ 11.2.2011, 21:07) *

Так и делал: перемещал курсор мышки по горизонтали с шагом, потом на ряд ниже и т.п. Для каждого положения курсора искал цвет полоски в небольшом квадрате вокруг курсора мышки с помощью findcolor. При нахождении - прерывал цикл и кликал ниже и правее точки нахождения полоски (для моей игры). Шаг перемещения по горизонтали и вертикали подбирается опытным путем


пример своего скрипта с коментариями можешь выложишь? чтобы было от чего отталкиваться и на основе чего делать! по уровню не способен такое реализовать.. справка пилота чертовки слабовата...
да и весь скрипт на left,it,it_not,goto нужны примеры хотяб что-бы понять...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.2.2011, 23:11
Сообщение #15


*********

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



Примерно так:

Тут код функции поиска моба по цвету полоски, которая появляется над ним при наведении мышки
Немного упростил код, чтоб не путать...
Код
:checkWithMouse // Процедура: Водит мышкой по полю вокруг перса, пытаясь найти подсвеченную рамку моба и кликаем на нём
// #overX1, #overX2, #overY1, #overY2, #overStep заданы в основной части скрипта
set linedelay 20 // уменьшил задержку между командами скрипта

set #startX #overX1 // Задаем углы области поиска
set #startY #overY1
set #endY #overY2

for #x #startX #overX2 #overStepX // изменение координаты X курсора
   for #y #startY #overY2 #overStepY //  изменение координаты Y курсора
      move #x #y // двигаем мышку в полученную точку
      set $a findcolor ( #overX1, #overY1 #overX2, #overY2 1 1 255 %arr 2 ) // ищем красную полоску жизни над мобом (цвет 255) во всей области поиска
      if $a <> 0 // есть такой цвет найден
         kleft #x, #y // то кликаем в найденной точке (там где мышка находится)
         break 2 // прерываем 2 уровня цикла for
      end_if
   end_for
end_for
return // выходим из процедуры


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Alexander_Dream
сообщение 12.2.2011, 15:42
Сообщение #16


*

Registred
Сообщений: 5
Регистрация: 11.2.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.438
Возраст: 18



Цитата(Zeleax @ 11.2.2011, 23:11) *

Примерно так:

Тут код функции поиска моба по цвету полоски, которая появляется над ним при наведении мышки
Немного упростил код, чтоб не путать...
Код
:checkWithMouse // Процедура: Водит мышкой по полю вокруг перса, пытаясь найти подсвеченную рамку моба и кликаем на нём
// #overX1, #overX2, #overY1, #overY2, #overStep заданы в основной части скрипта
set linedelay 20 // уменьшил задержку между командами скрипта

set #startX #overX1 // Задаем углы области поиска
set #startY #overY1
set #endY #overY2

for #x #startX #overX2 #overStepX // изменение координаты X курсора
   for #y #startY #overY2 #overStepY //  изменение координаты Y курсора
      move #x #y // двигаем мышку в полученную точку
      set $a findcolor ( #overX1, #overY1 #overX2, #overY2 1 1 255 %arr 2 ) // ищем красную полоску жизни над мобом (цвет 255) во всей области поиска
      if $a <> 0 // есть такой цвет найден
         kleft #x, #y // то кликаем в найденной точке (там где мышка находится)
         break 2 // прерываем 2 уровня цикла for
      end_if
   end_for
end_for
return // выходим из процедуры



чертовски много непонятного для меня, но постараюсь разобраться и поломать голову, главное есть теперь от чего отталкиваться!! СПАСИБО!
идея сама крутая, у меня на карте тоже монстры пачками и над нами зеленые полоски, в ручную бил по 3-4 пачки но так-как при нападении бота на несколько пачек вокруг него только 5мобов а выделенный автоматический шестой может ожидать за ними и не подойдет пока ближайших не убью, а значит и бот бить не начнет так-как пытается бить того до которого достать не может... бот стопориться, пришлось бить по 1группе.
Так- что если разберусь как водить по всему экрану в поисках подсвечивающегос трупа, применю еще и к мобам вокруг перса!
еще раз спс!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 12.2.2011, 18:48
Сообщение #17


*********

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



Пожалуйста. Кстати, тут много скриптов в разных темах встречается, особенно в LA


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

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

 

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