Да простят меня те кто не успеет схватить свою 50-ую фантом или демоник палку Функция fastloot() - запускает лут если рядом найден труп, .
Функция loot() - основная лутящая функция содержит список приоритетных для лута вещей (которые будут лутиться в первую очередь)
Функция lootlag() - динамическая задержка, ожидаем пока в трупе появятся предметы
Функция clearloot() - добавляет список вещей которые лутить не надо =)
Функция skining() - режем и долучиваем тело
Функция findcorps() - ищет трупы под ногами
Если по простому, то для лута надо запустить фастлут, он ищет труп под ногами, если есть то сначала лутит приоритетные вещи, потом долучивает труп.
Если есть сумка куда складывать лут то складывает в неё, если нет такой сумки то лутит в пак.
Code:
sub fastloot()
var corpse
corpse = findcorps()
if not corpse == 'null' then
UO.addobject('corps', corpse)
lootlag()
loot()
else
uo.print('CORPS NOT FOUND!')
uo.print('CORPS NOT FOUND!')
uo.print('CORPS NOT FOUND!')
uo.ignore('corps', 'off')
end if
uo.msg('.upd')
end sub
sub loot()
var bag = '0x0E75' ; Тип сумки в которую складываем лут.
var all = 1 ; Если 1 то лутит все, если 0 то лутит только приоритетные вещи.
var clear = 1 ; Если 1 то игнорирует вещи из списка, если 0 то не игнорирует.
if uo.findtype(bag,"-1","backpack") then
uo.addobject('lootpack', 'finditem')
else
uo.addobject('lootpack', 'backpack')
end if
DIM Loot[10] # сколько вещей в списке
var a
# Указываем типы приоритетных для лута вещей.
# Эти вещи будут лутиться в первую очередь.
Loot[1]="0x1F08" ; Necklace
Loot[2]="0x1088" ; Gold Necklace
Loot[3]="0x1B76" ; Heater Shield
Loot[4]="0x1B75" ; Kite Shield
Loot[5]="0x1B76" ; Heater Shield
Loot[6]="0x1BC3" ; Chaos Shield
Loot[7]="0x1B7A" ; Shield of Energy
Loot[8]="0x14EF" ; Recipe
Loot[9]="0x13F9" ; Staff
Loot[10]="0x0EED" ; Gold
loot:
for a=1 to 10
uo.findtype(Loot[a],"-1","corps")
if UO.FindCount()>0 and Uo.GetDistance("corps")<=2 then
uo.moveitem("finditem", "-1", "lootpack")
wait(1000)
goto loot
end if
next
if all == 1 then
if clear == 1 then
clearloot("corps")
end if
allloot:
uo.findtype("-1","-1","corps")
if uo.findCount() > 0 and Uo.GetDistance("corps")<=2 then
uo.moveitem("finditem", "-1", "lootpack")
wait(1000)
goto allloot
else if uo.findCount() == 0 then
uo.print('Ignore Corps!')
uo.ignore("corps", "on")
end if
end if
skining()
end sub
sub lootlag()
var timer
timer = uo.timer()
repeat
uo.findtype("-1","-1","corps")
wait(50)
until uo.findcount() > 0 or timer + 3 <= uo.timer()
end sub
sub skining()
UO.WaitTargetObject('corps')
UO.UseType('0x0EC4')
wait(500)
allloot:
uo.findtype("-1","-1","corps")
if uo.findCount() > 0 and Uo.GetDistance("corps")<=2 then
uo.moveitem("finditem", "-1", "lootpack")
goto allloot
wait(200)
end if
end sub
sub clearloot(corpse)
DIM Item[89]
VAR i
##################################################
# Тут указываем типы игнорируемых для лута вещей.#
##################################################
Item[0] = "0x0E20" ; Bloody Bandage
Item[1] = "0x14FB" ; Lockpicks
Item[2] = "0x0F39" ; Shovel
Item[3] = "0x0F36" ; Sheaf of hay
Item[4] = "0x14F5" ; Spyglass
Item[5] = "0x14F5" ; Sextant
Item[6] = "0x0F86" ; MR
Item[7] = "0x0F85" ; GS
Item[8] = "0x0F7A" ; BP
Item[9] = "0x0F84" ; GA
Item[10] = "0x0F88" ; NS
Item[11] = "0x0F8D" ; SS
Item[12] = "0x0F8C" ; SA
Item[13] = "0x0F7B" ; BM
Item[14] = "0x1F65" ; Earthquake scroll
Item[15] = "0x1F54" ; Summon Creature scroll
Item[16] = "0x1F49" ; Greater Heal scroll
Item[17] = "0x1F64" ; Polymorph scroll
Item[18] = "0x1F31" ; Heal scroll
Item[19] = "0x1F52" ; Paralyze scroll
Item[20] = "0x1F2D" ; Reactive Armor scroll
Item[21] = "0x1F4E" ; Dispel Field scroll
Item[22] = "0x1F48" ; Fire Field scroll
Item[23] = "0x1F50" ; Magic Reflection scroll
Item[24] = "0x1F59" ; Mark scroll
Item[25] = "0x1F69" ; Summon Deamon scroll
Item[26] = "0x1F3C" ; Strength scroll
Item[27] = "0x1F53" ; Poison Field scroll
Item[28] = "0x1F2E" ; Clumsy scroll
Item[29] = "0x1F4B" ; Mana Drain scroll
Item[30] = "0x1F5D" ; Chain Lightning scroll
Item[31] = "0x1F4C" ; Recall scroll
Item[32] = "0x1F55" ; Dispel scroll
Item[33] = "0x1F67" ; Resurrection scroll
Item[34] = "0x1F5A" ; Mass Curse scroll
Item[35] = "0x1F4D" ; Blade Spirits scroll
Item[36] = "0x1F5F" ; Flame Strike scroll
Item[37] = "0x1F42" ; Teleport scroll
Item[38] = "0x1F4A" ; Lightning scroll
Item[39] = "0x1F40" ; Poison scroll
Item[40] = "0x1F61" ; Mana Vampire scroll
Item[41] = "0x1F39" ; Magic Trap scroll
Item[42] = "0x1F44" ; Wall of Stone scroll
Item[43] = "0x1F33" ; Night Sight scroll
Item[44] = "0x1F45" ; Arch Cure scroll
Item[45] = "0x1F5B" ; Paralyze Field scroll
Item[46] = "0x1F51" ; Mind Blast scroll
Item[47] = "0x1F36" ; Cunning scroll
Item[48] = "0x1F56" ; Energy Bolt scroll
Item[49] = "0x1F34" ; Weaken scroll
Item[50] = "0x1F35" ; Agility scroll
Item[51] = "0x1F4F" ; Incognito scroll
Item[52] = "0x1F30" ; Feeblemind scroll
Item[53] = "0x1F3B" ; Protection scroll
Item[54] = "0x1F38" ; Harm scroll
Item[55] = "0x1F37" ; Cure scroll
Item[56] = "0x1F47" ; Curse scroll
Item[57] = "0x0E76" ; Bag
Item[58] = "0x1F3E" ; Fireball scroll
Item[59] = "0x1F44" ; Wall of Stone scroll
Item[60] = "0x1F33" ; Night Sight scroll
Item[61] = "0x1F45" ; Arch Cure scroll
Item[62] = "0x1F5B" ; Paralyze Field scroll
Item[63] = "0x1F51" ; Mind Blast scroll
Item[64] = "0x1F36" ; Cunning scroll
Item[65] = "0x1F56" ; Energy Bolt scroll
Item[66] = "0x1F34" ; Weaken scroll
Item[67] = "0x1F35" ; Agility scroll
Item[68] = "0x1F4F" ; Incognito scroll
Item[69] = "0x1F30" ; Feeblemind scroll
Item[70] = "0x1F3B" ; Protection scroll
Item[71] = "0x1F38" ; Harm scroll
Item[72] = "0x1F37" ; Cure scroll
Item[73] = "0x1F47" ; Curse scroll
Item[74] = "0x1F3A" ; Magic Untrap scroll
Item[75] = "0x1F41" ; Telekinesis scroll
Item[76] = "0x1F5C" ; Reveal scroll
Item[77] = "0x1F32" ; Magic Arrow scroll
Item[78] = "0x1F6C" ; Summon Water Elemental scroll
Item[79] = "0x1F63" ; Meteor Swarm scroll
Item[80] = "0x1F43" ; Unlock scroll
Item[81] = "0x1F3D" ; Bless scroll
Item[82] = "0x1F60" ; Gate Travel scroll
Item[83] = "0x1F62" ; Mass Dispel scroll
Item[84] = "0x1F2F" ; Create Food scroll
Item[85] = "0x1F57" ; Explosion scroll
Item[86] = "0x1F58" ; Invisibility scroll
Item[87] = "0x1F66" ; Energy Vortex scroll
Item[88] = "0x1F3F" ; Magic Lock scroll
Item[89] = "0x1F6B" ; Summon Fire Elemental scroll
for i=0 to 89
ignoreitem:
uo.findtype(Item[i],"-1",corpse)
if UO.FindCount()>0 and Uo.GetDistance(corpse)<=2 then
uo.ignore("finditem")
goto ignoreitem
# wait(10) ; раскомментировать если крашит
end if
next
end sub
sub findcorps()
DIM body[4]
var a
Uo.Set('finddistance','2')
body[1] = '0x0ECA';
body[2] = '0x2006';
body[3] = '0x0E40'; Treasyre Chest Lvl 5
body[4] = '0x0E41'; Treasyre Chest Lvl 5
For a = 1 to 4
Uo.FindType(body[a],'-1','ground')
If Uo.FindCount()>0 then
uo.useobject('finditem')
return Uo.GetSerial('finditem')
endif
next
return 'null'
end sub