Page 2 of 2
Posted: 2008-01-26 21:05:55
by Kynep
Destruction wrote:Kynep wrote:Grin wrote:;) ему надо найти ближайшего;)
а что бы это сделать надо перебрать все объекты, циклов может быть куда больше;)
Помоему где то видел сриптег, который считает расстояние до обьекта, вроде в топике Полезности. Можно ешо заюзать.
uo.getDistance() ?)
А ваще - циклически пробежаццо по всем найденным и выбрать ближайшего, имхо

Ну дык ты видел что ему надо? искать в одной клетке потом в двух и т.д. Бред(имхо)
Posted: 2008-01-26 22:34:51
by Avel Mink
Я не говорю что мне нужно именно такое решение, мне просто нужно найти ближайшего, каким способом это будет реализовано мне все равно. Скрипт оч надо
Posted: 2008-01-26 22:53:02
by Destruction
Я хз о чём речь, вкратце выглядит так:
Code: Select all
var max_distance = 12
var item = "0x0000"
var c_item
uo.set( 'finddistance', str( max_distance ) )
uo.findtype( item, "-1", "ground" )
while uo.findcount()
if uo.getDistance( 'finditem' ) <= max_distance then
max_distance = uo.getDistance( 'finditem' )
c_item = uo.getSerial( 'finditem' )
endif
uo.ignore( 'finditem' )
uo.findtype( item, "-1", "ground" )
wend
Ну общий смысл таков

Posted: 2008-01-26 23:22:08
by Avel Mink
поставил на поиск синих чаров, но он ниче не находит
Code: Select all
sub a()
var max_distance = 20
var item = '0x0190'
var c_item
uo.set( 'finddistance', str( max_distance ) )
uo.findtype( item, "-1", "ground" )
while uo.findcount()
if uo.getDistance( 'finditem' ) <= max_distance then
max_distance = uo.getDistance( 'finditem' )
c_item = uo.getSerial( 'finditem' )
endif
uo.ignore( 'finditem' )
uo.findtype( item, "-1", "ground" )
wend
endsub
мне сюда еще надо добавить атаку найденого чара, если он ближний ко мне
Posted: 2008-01-29 00:15:41
by Avel Mink
ПОмогите пожалуйста
Posted: 2008-01-29 10:17:03
by AGRS
Несколько поправок к скрипту выше
1) надо бы перед началом поиска игнор ресет задействовать.
2) разумеется ближайший ко мне человек это я сам, поэтому себя надо бы заигнорить.
3) в игре есть еще девочки.
Code: Select all
sub a()
var max_distance = 20
var item1 = '0x0190'
var item2 = '0x0191'
var c_item = 0
uo.ignorereset()
uo.ignore('self')
uo.set( 'finddistance', str( max_distance ) )
uo.findtype( item1, "-1", "ground" )
while uo.findcount()
if uo.getDistance( 'finditem' ) <= max_distance then
max_distance = uo.getDistance( 'finditem' )
c_item = uo.getSerial( 'finditem' )
endif
uo.ignore( 'finditem' )
uo.findtype( item1, "-1", "ground" )
wend
uo.findtype( item2, "-1", "ground" )
while uo.findcount()
if uo.getDistance( 'finditem' ) <= max_distance then
max_distance = uo.getDistance( 'finditem' )
c_item = uo.getSerial( 'finditem' )
endif
uo.ignore( 'finditem' )
uo.findtype( item2, "-1", "ground" )
wend
if c_item then
if not uo.warmode() then
uo.warmode( 1 )
endif
uo.attack( c_item )
endif
uo.print( 'ATTACK TARGET!' )
uo.print( uo.getname( c_item ) )
endsub
Posted: 2008-01-29 23:05:02
by Avel Mink
ТО что доктор прописал, огромное спасибо