На самом деле это конечно никакой не fast-loot, а просто ... ээм ... ускоренное лутанье ^_^ в свое время когда еще Z не прикрыли на drw и были актуальны бомбы он был очень полезен.
Скрипт позволяет за 1-4 секунд полутать основные вещи с трупа.
В первые секунды лут фула, во последующие всякой мелочи.Скрипт не лутает все вещи из трупа плеера.
Скорость достигаеца за счет того, что в UNSP на drw задержка лута 500мс., однако как фаст лут действия игрока распознаются, если полутано больше чем 2-3 вещи за 500мс.
В данном случае скрипт "порциями" по 3 вещи лутает с задержкой 500мс, т.е в идеале за 1с. лутается фул.
Скрипт еще когда на модеме был писал так что возможно таймауты поправлены. Да и сделан кое - как, без массивов ^_^. И вообще.
Code: Select all
sub loot_last()
uo.useobject('lastcorpse')
wait(100)
uo.waittargetobject('lastcorpse')
while loot() < 1
wait(500)
wend
wait(500)
uo.exec('canceltarget')
uo.waittargetobject('lastcorpse')
while loot_full() < 1
wait(500)
wend
end sub
sub loot_full()
var isset
var retr=1
uo.exec('addobject corpse')
while uo.targeting()
wait(100)
wend
uo.findtype('0x141A','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
else
uo.findtype('0x1411','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
endif
uo.findtype('0x1416','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
else
uo.findtype('0x1415','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
endif
uo.findtype('0x1410','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
if isset==1 then
wait(1200)
isset=false
end if
uo.findtype('0x1418','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
else
uo.findtype('0x1414','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
endif
uo.findtype('0x1413','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
uo.findtype('0x1412','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(100)
isset=1
endif
RETURN retr
uo.print('Full ok!')
end sub
sub loot()
var retr=1
uo.exec('addobject corpse')
while uo.targeting()
wait(100)
wend
uo.findtype('0x13B9','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x13BA','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x143E','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1406','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1B7A','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1086','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1B76','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1B77','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x1F5F','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x13FE','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x13B1','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x13FC','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x0E76','-1',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
uo.findtype('0x0F0E','0x09DF',uo.GetSerial('corpse'))
if uo.GetQuantity('finditem') then
uo.grab('0','finditem')
wait(600)
endif
UO.Print('Loot ok!')
RETURN retr
end sub
Забиваем на клавишу, например F1, "exec loot_last()" и давим рядом с трупом плеера ^_^[/b]