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) в игре есть еще девочки. :roll:

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
ТО что доктор прописал, огромное спасибо