Code:
Sub REZ()
var body = '0x2006'
var dagger = '0x0F51'
var corpse
UO.Set('quiet','1')
;uo.ignorereset() ; если случайно пропал нужный труп - раскомментировать
uo.set('finddistance', '3')
UO.filterspeech('clear')
UO.filterspeech('add','[Surprize ! Fast loot detected!]')
UO.filterspeech('add','[Зафиксирована ловкость рук]')
UO.filterspeech('on')
uo.findtype(body, -1, 'ground')
if uo.findcount() and Uo.GetDistance( 'finditem' ) < 3 then
var x = uo.GetGraphic(uo.ObjAtLayer('Lhand'))
var y = uo.GetGraphic(uo.ObjAtLayer('Rhand'))
uo.warmode(0)
wait(500)
corpse = uo.getSerial("finditem")
UO.WaitTargetObject(corpse)
UO.UseType(dagger)
wait(1000)
uo.Equipt('Lhand',x)
uo.Equipt('Rhand',y)
Loot()
uo.warmode(1)
endif
UO.Set('quiet','0')
end sub
Sub Loot()
;uo.ignorereset()
var lootwait = 500
var body = '0x2006'
var corpse, timemove
UO.Set('quiet','1')
uo.set('finddistance', '3')
uo.findtype(body, -1, 'ground')
IF uo.findcount() and Uo.GetDistance( 'finditem' ) <= 4 then
corpse = uo.getSerial('finditem')
uo.deletejournal()
uo.useobject(corpse)
wait(300)
UO.FindType( -1, -1, corpse )
while UO.FindCount()
if UO.Count ( uo.GetGraphic('finditem') ) < 1 then
timemove=UO.Timer()
while UO.ContainerOf( UO.GetSerial('finditem') )==corpse && timemove+20>UO.Timer()
uo.moveitem('finditem','0','backpack',30,150,0)
wait(lootwait)
wend
else
timemove=UO.Timer()
while UO.ContainerOf( UO.GetSerial('finditem') )==corpse && timemove+20>UO.Timer()
uo.moveitem('finditem','0','backpack')
wait(lootwait)
wend
endif
UO.FindType( -1, -1, corpse )
wend
endif
UO.Hide(corpse)
UO.Ignore(corpse)
UO.Set('quiet','0')
endsub
PS лут упрощен, но принцип думаю понятен. Каждый облутанный труп прячется и игнорится. Если в нем ничего нет то он сразу игнорируется.