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
Коряво, но работает. Проверку различных кучек руды вставишь уже сам.