Page 1 of 1

Поиск вокруг себя

Posted: 2009-03-17 17:33:04
by Nevers
Нужно искать объект вокруг персонажа, но игнорировать при этом тотже объект под ногами персонажа. Можно ли это?

Пример, вокруг валяется руда. Нужно складывать её себе под ноги в пачку.

Posted: 2009-03-17 18:55:47
by Destruction
Можно.

Posted: 2009-03-17 19:52:39
by Nevers
Destruction wrote:Можно.

Спасибо.

Posted: 2009-03-17 19:57:23
by Nevers
Я поискал через поиск на этом сайте.... Но не смог найти. Искал до вашего ответа, но такого не нашел. Может подскажете вариант?

Вот пример моего кода..


sub grabbing()
uo.Print('Выберите сундук для складывания: ')
uo.canceltarget()
uo.Exec('addobject Sunduk')
while uo.Targeting()
wait(100)
wend
uo.set('finddistance',2)
uo.FindType( '0x0f3b', '-1', 'ground' );Искомая руда
If uo.FindCount() Then
uo.moveitem('finditem','0','Sunduk')
End If
uo.moveitem('Sunduk', '-1', 'ground');
end sub

Пришлось класть в сундук и его пожнимать постоянно, чтобы тот не прпал с земли... Но обойтись без сундука?? а просто класть под ноги, копить кучку.

Posted: 2009-03-17 20:22:11
by RP7BXI
Проблема в том, что кусок руды, которую ты перебросишь под ноги изменит сериал лежащей кучки на свой. Соответственно тебе надо запоминать сериал перетаскиваемой кучи, ignorereset, заносить новый сериал в игнор и искать дальше. И так по кругу.

Posted: 2009-03-17 21:20:42
by Nevers
RP7BXI wrote:Проблема в том, что кусок руды, которую ты перебросишь под ноги изменит сериал лежащей кучки на свой. Соответственно тебе надо запоминать сериал перетаскиваемой кучи, ignorereset, заносить новый сериал в игнор и искать дальше. И так по кругу.


Проблемма не в этом. А в то что постоянно перекладывается та кучка руды, которая скопилась под ногами. Я же ищу вещи по типу. А тип у них одинаковый.
Как вариант придумал делать так.... Сначал складываем эту руду к себе в пак, пока ей не станет больше 1. Измениться тогда графика объекта. И тогда можно будет искать далее по графике. Но это кривовато.

Posted: 2009-03-17 23:18:36
by RP7BXI

Code: Select all

sub ore2pile()
   uo.set('finddistance',3)
   repeat
      uo.findtype('0x19B9', '-1', 'ground' )
      if  (uo.getx('finditem') == uo.getx('self')) and (uo.gety('finditem') == uo.gety('self')) then
         uo.ignore('finditem')
      else
         uo.grab('-1','finditem')
         wait (500)
         uo.drophere('finditem')
         wait (500)
      end if
   until uo.dead()
end sub


Коряво, но работает. Проверку различных кучек руды вставишь уже сам.