Page 1 of 1
Таргетинг
Posted: 2017-06-28 15:10:10
by Яблочный Джем
Подсобите скриптом, что б можно было перешелкивать таргеты, раземееться что б можно было вписать друзей... находил что то похожее ниже, но тамс скрипт
запускается и весит постоянно сам переключаясь на цели... что б работало как встроенная функция таргет некст но пропускала НПЦ, и перекидывалось сразу с аттакой.
Re: Таргетинг
Posted: 2017-06-28 16:08:52
by Incorrect User
uo.findman() у меня почему-то не работает, поэтому сделал через findlist
Code: Select all
sub Attack()
#uo.ignore("ID друга")
#uo.ignore("ID друга")
#uo.ignore("ID друга")
uo.addfindlist("Player", "0x0190") # Man
uo.addfindlist("Player", "0x0191") # Woman
if uo.findlist("Player", "ground", 18) then
uo.ignore("finditem")
uo.attack("finditem")
else
uo.ignorereset()
if uo.findlist("Player", "ground", 18) then
uo.ignore("finditem")
uo.attack("finditem")
end if
end if
end sub
Re: Таргетинг
Posted: 2017-06-29 09:03:06
by Mirage
Надо у Джусса спросить как они реализовали алгоритм поиска по местности. По дефолту работало по +1 тайл от чара до дальней точки и только потом переходило к следующему +1 от чара. Я делал руками что бы дистанция циклически увеличивалась на +1 диаметр. Как локатор, расходящимися кругами, а не принцип вращения палки. Так подольше но шанс поймать ближайшего к тебе чара выше.
Re: Таргетинг
Posted: 2017-06-29 09:52:55
by Incorrect User
Так и есть
- Поисковые функции при поиске объектов на земле теперь всегда возвращают самый ближайший к игроку объект (если такой был найден и исключая Nearest=1)
Re: Таргетинг
Posted: 2017-06-29 22:26:35
by Mirage
Смотри:
Code: Select all
sub Attack1()
uo.addfindlist("Player", "0x0190") # Man
uo.addfindlist("Player", "0x0191") # Woman
if uo.findlist("Player", "ground", 18) then
uo.click("finditem")
uo.charprint('finditem', 1061, str(UO.GetDistance('finditem')))
else
uo.ignorereset()
if uo.findlist("Player", "ground", 18) then
uo.click("finditem")
uo.charprint('finditem', 1061, str(UO.GetDistance('finditem')))
end if
end if
end sub

- скрипт1.JPG (252.02 KiB) Viewed 3050 times
Code: Select all
sub Attack2()
VAR d, n, name, targetID
VAR vrag = 0
uo.ignore('self')
for d = 1 to 16
for n = 1 to 6
uo.FindType(-1,-1,'ground',d,n,1)
If uo.FindCount()> 0 then
targetID = UO.GetSerial('finditem')
uo.click(targetID)
uo.charprint(targetID, 1061, str(UO.GetDistance('finditem')))
return
end if
next
next
end sub

- скрипт2.JPG (258.89 KiB) Viewed 3050 times
В первом случае в 2 из 5 запусков кликается дальний НПС.
Во втором случае ВСЕГДА кликнется ближний чар.
А вот такая модицикация почти всегда кликает в дальнего чара потому что он ниже а поиск идет как я написал по принципу кручения палки:
Code: Select all
sub Attack2()
VAR d, n, name, targetID
VAR vrag = 0
uo.ignore('self')
for n = 1 to 6
uo.FindType(-1,-1,'ground',16,n,1)
If uo.FindCount()> 0 then
targetID = UO.GetSerial('finditem')
uo.charprint(targetID, 1061, str(UO.GetDistance('finditem')))
uo.click(targetID)
return
end if
next
end sub

- снимок.JPG (27.71 KiB) Viewed 3048 times
При стандартном поиске на дистанции 18 тайлов красный противник в обоих случаях найдется первым несмотря на то что желтый ближе. Потому что до красного поиск дойдет быстрее.
Re: Таргетинг
Posted: 2017-06-29 22:42:45
by Incorrect User
Всё коряво как всегда, а я вообще клиентский таргетнекст пользую.