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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Раздача Целей В Замкнутом Пространстве., Вешаем "маяки" на мобов
Milerio
сообщение 11.12.2011, 15:16
Сообщение #1


**

Neophyte
Сообщений: 22
Регистрация: 11.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.372
Возраст: 23



Задался идеей усовершенствовать кач. Бегать по трупам животных палевно, а если в центре сидит перс(можно бафер) и раздает цели, проверяя расстояние до них - самое оно. Собственно сам скрипт

Маяки
Исходный код

//Тру маяки
//Радар справа вверху - должен быть виден
//В его настройках должны стоять ПЕРВАЯ и ПОСЛЕДНЯЯ галка.
//Больше никаких галок
//Кнопки менияем под себя:
set $t F1 F2 F3 //кнопки с таргетами мобов
set clipboard $t
get clipboard %t
set $m F4 F5 F6 F7 //кнопки с метками (сердце\луна и т.д.)
set clipboard $m
get clipboard %m
//
//
//C задержками
set #timescan 3000 //Время на сканирование моба(мс)
set #timepress 2000 //Время на срабатывание нажатой кнопки(мс)
//
//
set #iTarg 1
set #iMetk 1
set linedelay 1 //Для забывчивых (IMG:style_emoticons/default/wink.gif)
gosub xyScan
//
//
:targe //Нажимаем поочереди кнопки с таргетами мобов
if #iTarg > 3
set #iTarg 1
end_if
send %t[1 #iTarg]
wait #timepress
set #iTarg #iTarg + 1
//
//
:scanMob //Ищем на радаре красную точку "таргета"
set #tsc timer + #timescan
set #point -1
:scan2
if #tsc > timer
set #point findcolor (#xABS1, #yABS1 #xABS2, #yABS2 1 1 (R(180-246)+G(0-88)) %poi 2)
If #point > 0
hint #point
goto metka
end_if
// msg #xABS1, #yABS1 xABS2, #yABS2
end_if
if #tsc < timer
hint (15 (Не могу взять в таргет о_0))
goto targe
end_if
goto scan2
//
//
:metka //проверяем, принадлежит ли таргет нашей "зоне" (комнате)
set #po size (%poi)
if #x1 < %poi[1 1] and %poi[1 1] < #x2
if #y1 < %poi[1 2] and %poi[1 2] < #y2
goto znak
end_if
else
if (#x1 < %poi[#po 1] and %poi[#po 1] < #x2) and (#y1 < %poi[#po 2] and %poi[#po 2] < #y2)
goto znak
end_if
//hint mob daleko
send escape
goto targe
end_if
//
//
:znak //Вешаем поочередно сердце\луну и т.д.
if #iMetk > 4
set #iMetk 1
end_if
send %m[1 #iMetk]
wait #timepress
set #iMetk #iMetk + 1
goto targe
//
//
:XYscan //привязка к окну радара и задание координат "комнаты"
get windowpos 0 [#X #Y [#width #height [#result]]]
set $a FindImage (0 0 #width #height (N.bmp) %pic 2 80 1)
if $a < 70
hint (16 (Не могу найти радар!!!))
goto XYscan
end_if
set #xXX (%pic[1 1]) + 6
set #yYY (%pic[1 2]) + 79
set #x1 #xXX - 5
set #x2 #xXX + 5
set #y1 #yYY - 5
set #y2 #yYY + 5
set #yABS1 54
set #yABS2 116
set #xABS1 #width - 136
set #xABS2 #width - 76
return
end_script


Жмет последовательно на таргеты, проверяет по радару, чтоб таргет подходил условию и вешает на него "сердце\крест..". Ну а окно майна уже на другом скрипте может тупо брать ассист по сердцу\кресту.
На этом же скрипте можно повесить баф. Но лишь бы перс при этом не сдвигался с места.

Тут есть небольшая проблема, даже две).
1. Я никакого отношения к программированию не имею. Даже даже. Поэтому очень хотелось бы критики, пусть даже в мелочах.
2. Обычно скрипт находит по файндколору три-четыре точки(розовые, на радаре). И от первой и последней отталкивается. Но точка мигает постоянно, и зачастую находятся лишние пиксели (ореол вокруг самой точки) и происходит сбой) Выделяется моб за пределами радиуса. Есть мысли как это обойти? Может как то проверять, чтоб искомые точки находились вплотную к друг другу или использовать средние две-три-четыре точки. Может вообще все придумано до меня) Хотелось бы увидеть тогда.
Прикрепленный файл  N.zip ( 590 байт ) Кол-во скачиваний: 810
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.12.2011, 15:44
Сообщение #2


*********

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



1. В ла2 не играю, скажу только по коду. Код хорош и красив )

Разве что, может, я бы сократил похожие куски- там где жмутся макросы и вешаются метки. Сделал бы через указание номеров элементов массива, в котором записаны F1..F7


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


**

Neophyte
Сообщений: 22
Регистрация: 11.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.372
Возраст: 23



Цитата
Сделал бы через указание номеров элементов массива, в котором записаны F1..F7

А можно поподробней? Часто раздражают такие "большие куски", как ты говоришь.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.12.2011, 16:34
Сообщение #4


*********

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



Цитата(Milerio @ 11.12.2011, 14:48) *

А можно поподробней? Часто раздражают такие "большие куски", как ты говоришь.

Небольшой пример кода
Код
// Записываем значения в массив
set  $F F1 F2 F3 F4 F5 F6 F7
set clipboard $F
get clipboard %F

:targe
if #iTarg > 3
   set #iTarg 1
end_if
send %F[1 #iTarg]
wait #timepress
set #iTarg #iTarg + 1

....

if #iMetk > 7
   set #iMetk 4
end_if
send %F[1 #iMetk]
wait #timepress
set #iMetk #iMetk + 1


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


**

Neophyte
Сообщений: 22
Регистрация: 11.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.372
Возраст: 23



Класс) Огромное спасибо. Исправляю.

Возник другой вопрос. Если мне надо сделать последовательность не 1 2 3..1 2 3..1 2 3 а 1 2 3 2..1 2 3 2. Как это сделать проще и красивее? То есть пример из жизни, перс будет бегать по маякам не треугольником, а буквой V. Сделать то сделано, но как это сделать красивее, следуя твоему примеру?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.12.2011, 22:20
Сообщение #6


*********

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



Цитата(Milerio @ 11.12.2011, 17:12) *

Возник другой вопрос. Если мне надо сделать последовательность не 1 2 3..1 2 3..1 2 3 а 1 2 3 2..1 2 3 2. Как это сделать проще и красивее? То есть пример из жизни, перс будет бегать по маякам не треугольником, а буквой V. Сделать то сделано, но как это сделать красивее, следуя твоему примеру?

Код
set  $F F1 F2 F3 F4 F5 F6 F7 
set clipboard $F
get clipboard %F
set #f_size size(%F[1]) - 1

set #direction 1
set #i 1
:start
if #i > #f_size
   set #i #f_size - 1
   set #direction #direction * (-1)
end_if
if #i < 1
   set #i 2
   set #direction #direction * (-1)
end_if
msg %F[1 #i]
set #i #i + ( #direction )
goto start

end_script


Кстати, в первом посте goto scanmob - теперь лишнее, т.к. метка следует сразу за этой командой


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


**

Neophyte
Сообщений: 22
Регистрация: 11.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.372
Возраст: 23



Цитата(Zeleax @ 12.12.2011, 1:20) *




Спасибо, буду разбираться.

Вопрос с определением точек на радаре остается открытым. А если в целом - надо как то более продуманно сделать(. Есть квадрат из координат на радаре. Надо более точно определять, принадлежит ли точка из 3-5 пикселей нужного цвета этому квадрату. Цвет пикселей меняется, диапазон я более менее подобрал. Но ведь этот "сияние" вокруг точки сбивает весь поиск порой(. Как бы "отделить" сияиние от самой точки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 13.12.2011, 8:15
Сообщение #8


*********

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



Цитата(Milerio @ 11.12.2011, 22:09) *

Спасибо, буду разбираться.

Вопрос с определением точек на радаре остается открытым. А если в целом - надо как то более продуманно сделать(. Есть квадрат из координат на радаре. Надо более точно определять, принадлежит ли точка из 3-5 пикселей нужного цвета этому квадрату. Цвет пикселей меняется, диапазон я более менее подобрал. Но ведь этот "сияние" вокруг точки сбивает весь поиск порой(. Как бы "отделить" сияиние от самой точки.

Сложно советовать что-либо, не видя соответствующих скринов


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


**

Neophyte
Сообщений: 24
Регистрация: 13.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.380
Возраст: 21



Цитата(Milerio @ 12.12.2011, 0:09) *

Спасибо, буду разбираться.

Вопрос с определением точек на радаре остается открытым. А если в целом - надо как то более продуманно сделать(. Есть квадрат из координат на радаре. Надо более точно определять, принадлежит ли точка из 3-5 пикселей нужного цвета этому квадрату. Цвет пикселей меняется, диапазон я более менее подобрал. Но ведь этот "сияние" вокруг точки сбивает весь поиск порой(. Как бы "отделить" сияиние от самой точки.

все работает но вот как уменьшить радиус, или же как сделать чтоб выбирал мобов по каридуру по горизонтали или по вертикали подскажи плиз а то если меняю цифру в радиусе перестает вообще метку тыкать((((( ПЛИЗ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BadGuy
сообщение 24.12.2011, 3:18
Сообщение #10


**

Neophyte
Сообщений: 24
Регистрация: 13.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.380
Возраст: 21



все норм была проблема с проверкой хп, но для чего она если не работает,т.к. когда мало хп он не бьет след таржет а ждет когда его убьют при проверки хп
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
falcon
сообщение 2.1.2012, 15:15
Сообщение #11


*

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



народ можно по подробнеи расказать как привизать радар
а то пишит (не могу наити радар !!!)
подскажите и разложите по полочькам что и как сделать чтоб привезать радар тоесть начать поиск мобов! спс жду помощи.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2012, 19:39
Сообщение #12


***********

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



файл скачал?

По поводу лишних точек. Самый простой вариант отсеивать количество найденных результатов в финдоколоре - нашел больше, скажем, 4 - ищем заного. Переменная $a поможет. Так же второй способ - ты его уже озвучил. Получили массив из найденых точек, проверяем весь массив на соответсвие координата первой найденной точки +/- пара пикселей. По сути ничего сложного. Лучше наверное будет использовать оба способа одновременно.


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


**

Neophyte
Сообщений: 24
Регистрация: 13.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.380
Возраст: 21



Цитата(DarkMaster @ 2.1.2012, 20:39) *

файл скачал?

По поводу лишних точек. Самый простой вариант отсеивать количество найденных результатов в финдоколоре - нашел больше, скажем, 4 - ищем заного. Переменная $a поможет. Так же второй способ - ты его уже озвучил. Получили массив из найденых точек, проверяем весь массив на соответсвие координата первой найденной точки +/- пара пикселей. По сути ничего сложного. Лучше наверное будет использовать оба способа одновременно.

все работает но вот как уменьшить радиус????????
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
falcon
сообщение 2.1.2012, 21:31
Сообщение #14


*

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



фаил скачал а куда его теперь положить или че с ним делать ?(IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.1.2012, 8:14
Сообщение #15


***********

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



в папку с пилотом.


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


*

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



DarkMaster спс все работает
подскажте еше плиз в каком месте скрипта можно регулировать радиус обзора нужных мобов?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.1.2012, 11:18
Сообщение #17


***********

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



set #xXX (%pic[1 1]) + 6
set #yYY (%pic[1 2]) + 79
set #x1 #xXX - 5
set #x2 #xXX + 5
set #y1 #yYY - 5
set #y2 #yYY + 5
set #yABS1 54
set #yABS2 116
set #xABS1 #width - 136
set #xABS2 #width - 76
скорее всего где-то тут. мне не до конца понятна логика скрипта в некоторых моментах. в частности мне не ясно зачем искать на большой площади, а потом проверять принадлежит ли найденное другой мЕньшей. как по мне так разумнее просто искать в маленькой площади. поидее уменьшение любого из квадратов приведет к нужному эффекту


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


**

Neophyte
Сообщений: 22
Регистрация: 11.12.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.372
Возраст: 23



Цитата
в частности мне не ясно зачем искать на большой площади, а потом проверять принадлежит ли найденное другой мЕньшей. как по мне так разумнее просто искать в маленькой площади. поидее уменьшение любого из квадратов приведет к нужному эффекту

И правда.. Не помню, зачем так сделал.
По идее
тут
Исходный код
set #x1 #xXX - 5
set #x2 #xXX + 5
set #y1 #yYY - 5
set #y2 #yYY + 5

надо увеличить\уменьшить "5". В самом радаре я делал максимальное приближение.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kvizer
сообщение 27.1.2012, 19:54
Сообщение #19


*

Registred
Сообщений: 2
Регистрация: 27.1.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.547
Возраст: 26



готового скрипта в теме как я понимаю нет?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.1.2012, 1:44
Сообщение #20


***********

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



а в 1 посту что такое тогда? и что тема делат в готовых скриптах, если скрипта нет?


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

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

 

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