Что-то уже глаз замылился, не вижу ошибки.
Скрипт отрабатывает 1 раз нормально, из списка запущенных функций исчезает.
Но если после этого вручную потаскать вещи обратно на труп - вылетает неисправимая ошибка (или как там) и предлагает закрыть UO.
Вплоть до ошибки в какой-то dll. Такое впечатление, что в памяти что-то остается и продолжает крутить.
Code: Select all
####
# based on "Loot script" by Incorrect User, 2014, http://forum.yoko.com.ua/viewtopic.php?f=17&t=17411&hilit=0x2006#p96654
# modified by Kobol, March2014
var clr=38, clo=43, cly=53, clg=63, clb=3, cla=89, clda=83, clp=120 , clgr=1088, clw=1156, cldg=1162
# красный - "38" или "0x0026" # темно-бирюзовый - "83" или "0x0053"
# оранжевый - "43" или "0x002B" # голубой - "89" или "0x0059"
# желтый - "53" или "0x0035" # синий - "3" или "0x0003"
# зеленый - "63" или "0x003F" # фиолетовый - "120" или "0x0078"
# "1088" - по умолчанию
# 1152 - бирюзовый 1151 - черный 1155 - фиолетовый 1156 - белый 1158 - кр 1161 - синий 1162 - темно зел 1166 ткр 1169 сз
# 2500 2524 - оранж 2517 кр 2567 малин 2566=0x0A06 белый
# 2998 - белый 3008 3221 3600 и выше - контур
###########################################
sub LootMinoc()
var box, i, itemT, dist ;, find = 1
dim Nado[10]
Nado[0] = "0x0F91" ; wyrms hearts
Nado[1] = "0x0F78" ; batwings
Nado[2] = "0x0F87" ; eyes of newt
Nado[3] = "0x0F0E" #bottle
Nado[4] = "0x0df2" #wand
Nado[5] = "0x0df3" #wand
Nado[6] = "0x0df4" #wand
Nado[7] = "0x0df5" #wand
Nado[8] = "0x0EED" #gold
Nado[9] = "0x09F1" # test meat
uo.ignorereset()
repeat ; запускаем цикл поиска трупов <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
uo.findtype("0x2006", -1, "ground", 4) ;0x2006 ищем трупы по округе
uo.charprint("0x09DC","Corpse num="+str(uo.findcount())) ; количество найденых
If UO.FindCount() > 0 Then ; если нашли, то
box = uo.getserial("finditem"); берем его сериал
uo.charprint("0x09DC","Corpse ser="+box)
wait (10)
dist=UO.GetDistance("finditem") ; определям дистанцию до трупа
uo.charprint("0x09DC","distance="+str(dist))
wait (10)
if dist <3 then ;" если до трупа дотянуться
uo.useobject(box) ; открываем труп
wait(300)
repeat ; запускаем цикл поиска вещей на трупе ==------------------------------------==
uo.findtype(-1, -1, box) ; ищем на трупе все подряд
if uo.findcount() then ; "если труп не пустой
itemT=uo.getgraphic("finditem") ; берем тип того, что нашли
for i=0 to 9 ; сравниваем с нужными нам типами
;uo.charprint("0x09D2","2. Nado T="+(Nado[i]))
;uo.charprint("0x09D3","2. It T="+itemT)
;wait(50)
if itemT==Nado[i] then ; если совпадает, то забираем себе
uo.moveitem("finditem", "-1", "backpack")
wait(600)
else
uo.ignore("finditem") ; если вещь не нужна - в игнор
end if
wait(5)
next
wait(50)
else ;" если в трупе пусто
end if
until not uo.findcount() ; ==------------------------------------==
end if
uo.ignore(box) ; закончили с трупом - в игнор его
else
box = 0
end if
wait (50)
until box == 0 ; трупов больше нет <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
uo.ignorereset()
wait (150)
uo.charprint("0x09D4","Finished!")
end sub