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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Радар, скрипт ищет мобов по радару
genocide
сообщение 9.2.2013, 4:46
Сообщение #1


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Собственно нашёл где- то тут скрипт аналог этому, но пока в нём разбирался всё волосы из башки по выдёргивал...
По этому написал вот такой скрипт, всё классно работает, только долго... на поиск уходит в среднем 10сек (IMG:style_emoticons/default/sad.gif)
Код

//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваевает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
//ищем цель в заданных пределах радара
//центр радара
set linedelay 1 //Для забывчивых

set #xcentr 406
set #ycentr 90

//искомый диапозон цвета
set #color1 15602671  
set #color2 8588935  

set #r 10 // радиус к которому должен пренадлежать таргет
set #r2 #r * 2

//таргеты мобов
set #maxmob 3 //количество макросов с таргетами
set %mob [1] f1
set %mob [2] f2
set %mob [3] f3
/////////////////////////////////////////////////

:start
set #nmob #nmob + 1
    send %mob [#nmob]
     waitfortarget 1s
if #nmob = #maxmob
set #nmob 0
end_if
    
set #x #xcentr - #r //начальная координата Х
set #y #ycentr - #r //начальная координата Y
set #xmax #xcentr + #r //конечная координата Х
set #ymax #ycentr + #r //конечная координата Y

while_not #x #y #color1 #color2 //ищем розовую точку
set #x #x + 1
if #x = #xmax // если Х достиг максимального значения +1 к Y
  set #x #x - #r2
  set #y #y + 1
end_if
    if #y >= #ymax // если Y достиг максимального значения отменяем цель
            send escape
              wait 111
            send escape
              wait 111
            send escape
              wait 111
          goto start
    end_if
hint (15 ( #x #y ))
end_while

//таргет найден
while #x #y #color1 #color2 //держать таргет пока не убьём
set #assist.2 1  //создаёт переменную для фарм скрипта, что можно брать ассисит
wait 1s
end_while
set #assist.2 0
goto start
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.2.2013, 6:26
Сообщение #2


***********

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



Цитата
Код
while_not #x #y #color1 #color2 //ищем розовую точку
set #x #x + 1
if #x = #xmax // если Х достиг максимального значения +1 к Y
  set #x #x - #r2
  set #y #y + 1
end_if
    if #y >= #ymax // если Y достиг максимального значения отменяем цель
            send escape
              wait 111
            send escape
              wait 111
            send escape
              wait 111
          goto start
    end_if
hint (15 ( #x #y ))
end_while

Весь кусок поиска можно заменить одной строкой:
set $a findcolor ...

Ну и производительность автоматом будет несколько миллисекунд.

Сообщение отредактировал DarkMaster - 9.2.2013, 6:25


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Я так пытался сделать, но findcolor не чего не находит.
Код

//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваивает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
set linedelay 1 //Для забывчивых
//ХП таргета 1%
set #xtargethp 201
set #ytargethp 29
set #colortargethp 4474495



//ищем цель в заданных пределах радара
//центр радара
set #xcentr 406
set #ycentr 90

//искомый диапазон цвета
set #color1 15472108  
set #color2 8065923  

set #r 10 // радиус к которому должен принадлежать таргет
set #r2 #r * 2

//таргеты мобов
set #maxmob 3 //количество макросов с таргетами
set %mob [1] f1
set %mob [2] f2
set %mob [3] f3
/////////////////////////////////////////////////

:start
set #nmob #nmob + 1
    send %mob [#nmob]
     waitfortarget 1s
if #nmob = #maxmob
set #nmob 0
end_if
    
set #x #xcentr - #r //начальная координата Х
set #y #ycentr - #r //начальная координата Y
set #xmax #xcentr + #r //конечная координата Х
set #ymax #ycentr + #r //конечная координата Y

set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr workwindow)
    if #a > 0
      hint (15 (нашёл $a ))
       goto ok
else
hint (15 ( не нашёл $a ))
  goto start
    end_if

//таргет найден
:ok
while #xtargethp #ytargethp #colortargethp //держать таргет пока не убьём
set #assist.2 1  //создаёт переменную для фарм скрипта, что можно брать ассисит
wait 1s
end_while
set #assist.2 0
goto start


P.S. не могу понять, для чего нужен массив %arr
P.S.S. вроде где-то читал, что можно задать цвет не диапазоном, а процентной погрешностью. как это реализовать в моём случае?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.2.2013, 23:54
Сообщение #4


***********

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



Цитата
workwindow

метод на "2" поменяйте.


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



дело в том, что я попробовал самые различные варианты:
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr workwindow)
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr 2 workwindow)
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr 1 workwindow)
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr )
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr 1 )
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr 2 )
set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr workwindow)
set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr workwindow)
set $a findcolor (#x, #y #xmax, #ymax 1 1 #color1 %arr workwindow)
и т.д.... возможно точка не находится из - за того, что она немного мерцает. но опять же, центр этой точки всегда одного цвета...
пробовал использовать разные версии пилота: v.2.2 , v.2.32...
нечего не помогло.. (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.2.2013, 1:29
Сообщение #6


***********

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



Цитата
set $a findcolor (#x, #y #xmax, #ymax 1 1 (#color1 #color2) %arr 2 )

Похож на правду. Варианты что делать дальше: убрать переменные #color1 и #color2 и заменить их числами, после превого цвета поставить запятую. Протестить на другом приложении.


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Протестировал все эти конструкции: (с запятой, с минусом, без диапазона, в режиме 1, 2 , workwindow) на блокноте - всё прекрасно работает и все варианты.
Протестировал на браузере google chrome на этом сайте пытался найти смайлик с лева первый без анимации который - нечего не нашёл.... радар в ла2 по прежнему не работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.2.2013, 2:12
Сообщение #8


***********

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



привязку к окну делаете?


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Да, причём пробовал и в ручную хендл прописывать и ctrl+a и на кнопочку [W] с права с верху.
привязывается правильно включил в настройка отображение процесса к которому привязано окно - всё гуд.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.2.2013, 3:59
Сообщение #10


***********

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



хмм... а другие объекты находит в л2 финдколором? Вообще проблем с финдколром быть не должно за исключением метода workwindow, это уже практика многолетняя. Либо координаты кривые либо цвет. Ну или с синтаксисом что-то путаете. Точную строку можно увидеть по 2 методу поиска с цифрами в виде координат и цвета?


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



я потому и писал так по идиотски (1 вариант скрипта), что не findcolor не findimage не работают... ну или я идиот, что-то где-то поломал и теперь пытаюсь понять, что и где.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.2.2013, 6:06
Сообщение #12


***********

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



Цитата
ну или я идиот, что-то где-то поломал и теперь пытаюсь понять, что и где.

Я не знаю расстрою вас или обрадую, но скорее всего оно так и есть).
Еще раз прошу: дайте точную строчку. Попробую прогнать ее. Версия пилота кстати какая?


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



UoPilot v.2.32 в нём иногда какая-то ошибка вылетает не могу пока скрин дать, не получается спровоцировать её появление. Ещё тестировал в UoPilot v.2.2
Код
 set $a findcolor (396, 80 416, 100 1 1 (15472108, 8065923) %arr 2) 
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 10.2.2013, 7:14
Сообщение #14


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



УРА! увеличил диапазон с 15472108 (светло-розового) до 7605370 ( не прилично тёмно-сиреневого)
Цитата
Либо координаты кривые либо цвет.
Вы были правы, большое спасибо DarkMaster
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.2.2013, 9:38
Сообщение #15


***********

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



Рад помочь.


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


****

Apprentice
Сообщений: 113
Регистрация: 8.1.2012
Группа: Пользователи
Наличность: 0
Из: Одесса
Пользователь №: 14.471
Возраст: 22



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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



нужно изменить переменные #xcentr, #ycentr - это центр радара и поставить в настройках радара в игре первую и последнюю галочку ( чтоб север был всегда с верху и не показывало направление чара )
#r - это радиус который нужно сделать под локацию.
А с помощью этих переменных можно управлять квадратом поиска: например искать в мобов только в прямоугольной комнате перед чаром. Думаю всё и без слов понятно....
set #x #xcentr - #r //начальная координата Х
set #y #ycentr - #r //начальная координата Y
set #xmax #xcentr + #r //конечная координата Х
set #ymax #ycentr + #r //конечная координата Y
Код

//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваивает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
set linedelay 1 //Для забывчивых
//ХП таргета 90%
set #xtargethp 201
set #ytargethp 29
set #colortargethp 4474495

//ищем цель в заданных пределах радара
//центр радара
set #xcentr 406
set #ycentr 90

//искомый диапазон цвета
set #color1 15472108  
set #color2 7605370  

set #r 10 // радиус к которому должен принадлежать таргет
set #r2 #r * 2

//таргеты мобов
set #maxmob 3 //количество макросов с таргетами
set %mob [1] f1
set %mob [2] f2
set %mob [3] f3
/////////////////////////////////////////////////

:start
set #nmob #nmob + 1
    send %mob [#nmob]
     waitfortarget 1s
if #nmob = #maxmob
set #nmob 0
end_if
    
set #x #xcentr - #r //начальная координата Х
set #y #ycentr - #r //начальная координата Y
set #xmax #xcentr + #r //конечная координата Х
set #ymax #ycentr + #r //конечная координата Y

if_not #xtargethp #ytargethp #colortargethp // есть ли таргет?
goto start
end_if

//set #a findcolor (396, 80 416, 100 1 1 (15472108-7605370) %arr 2)
set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr 2 )
    if #a > 0
      hint (15 (нашёл #a ))
       goto ok
else
hint (15 ( не нашёл #a ))
  goto start
    end_if

//таргет найден
:ok
while #xtargethp #ytargethp #colortargethp //держать таргет пока не начнут его бить
set #assist.2 1  //создаёт переменную для фарм скрипта, что можно брать ассисит
wait 1s
end_while
set #assist.2 0
goto start
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.2.2013, 1:57
Сообщение #18


***********

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



От себя хотелось бы добавить, что работа с несколькими скриптами реализована очень правильно.
Цитата
while #xtargethp #ytargethp #colortargethp //держать таргет пока не начнут его бить
set #assist.2 1 //создаёт переменную для фарм скрипта, что можно брать ассисит
wait 1s
end_while
set #assist.2 0

Этот кусок гарантия надежности и отсутствия глюков. Никаких start/stop скриптов.

// Еще бы форматирование кода выровнять - был бы идеал)


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


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Есть ещё маленькая проблема... иногда моб может появится где-нибудь на дереве или ещё где-то куда фармер не может добраться, и тогда скрипт радара удерживает этого моба, а фармер не может его убить...
Происходит "затуп"... Как бы сделать так, чтоб если моб не умер в течении скажем 20 сек. таргет снимался, и этот моб больше не выделялся.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.2.2013, 6:45
Сообщение #20


***********

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



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


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

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

 

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