Code:
sub KillThemAll()
Var Victim=0x03CA
var CuttingTool=0x143E #Чем рЭзать (в данном случае - алебардой)
var n=6
var x=uo.GetX()
var y=uo.GetY()
;uo.print('001')
uo.ignorereset()
;uo.print('002')
;uo.forget('far')
;uo.print('003')
;uo.forget('counters')
;uo.print('004')
uo.SetGlobal('KillCount', 0)
;uo.print('005')
uo.Set('finddistance',str(n))
Repeat
wait(500)
uo.FindType(victim, -1,'ground')
if uo.FindCount() then
wait(100)
if uo.IsNPC('finditem') then
; uo.info('finditem')
while uo.IsNPC('finditem')
if uo.GetDistance('finditem') > 1 then
MoveTo('finditem', 1)
uo.attack('finditem')
end if
wait(100)
wend
uo.SetGlobal('KillCount', val(uo.GetGlobal('KillCount'))+1)
uo.forget('finditem')
; uo.warmode(0)
uo.waittargetobject('lastcorpse')
wait(100)
uo.usetype(CuttingTool)
wait(100)
uo.useobject('lastcorpse')
wait(550)
# ЕСЛИ БЫ ТЫ ПРОЧИТАЛ УРОКИ ТО ПОНЯЛ БЫ ЧТО СЛЕДУЮЩИЕ 2 КОМАНДЫ И ЕСТЬ ЛУТ!!!
#uo.waittargetobject('lastcorpse')
#uo.say(',emptycontainer 550')
#А ТЕБЕ НАДО СДЕТАТЬ ВОТ ТАК
LootLastCorpse()
while uo.waiting()
wait(100)
wend
; uo.disarm()
n=1
else
uo.Ignore('finditem')
end if
else
n=n+1
if n > 20 then
if (uo.GetX() <> x) or (uo.GetY() <> y) then
MoveToXY(x, y, 1)
end if
n=1
end if
end if
Until uo.Dead()
end sub
sub Stat()
uo.charprint(257, 'Х-ха! Уже '+uo.GetGlobal('KillCount')+' скелетов заготовлено!')
end sub
sub Abs(num)
if num < 0 then
return -num
end if
return num
end sub
sub Sig(num)
if num < 0 then
return -1
else
if num == 0 then
return 0
endif
endif
return 1
end sub
sub MoveToXY(x, y, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
dx=x-uo.GetX()
dy=-y+uo.GetY()
while (Abs(dx) > prec) or (Abs(dy) > prec)
dx=x-uo.GetX()
dy=-y+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub
sub MoveTo(object, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
while uo.GetDistance(object) > prec
dx=uo.GetX(object)-uo.GetX()
dy=-uo.GetY(object)+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub
sub ExtendedInfo()
var ObjectSerial
var ObjectGraphics
var ObjectIsNPC
var ObjectNotoriety
UO.Print('Select object to explore')
UO.AddObject('ObjectToExplore')
While UO.Targeting()==2
Wait(50)
WEnd
UO.Click('ObjectToExplore')
Wait(500)
UO.Print('Object name is: '+UO.GetName('ObjectToExplore'))
ObjectSerial = UO.GetSerial('ObjectToExplore')
UO.Print('Object serial is : '+ObjectSerial)
ObjectGraphics = UO.GetGraphic('ObjectToExplore')
UO.Print('Object type is : '+ObjectGraphics)
ObjectIsNPC = UO.IsNPC('ObjectToExplore')
UO.Print('Object IsNPC number is : '+str(ObjectIsNPC))
ObjectNotoriety = UO.GetNotoriety('ObjectToExplore')
UO.Print('Object notoriety is : '+str(ObjectNotoriety))
end sub
# А НИЖЕ ВПИСАТЬ ТИПЫ ТРЕБУЕМЫХ ПРЕДМЕТОВ
sub LootLastCorpse()
DIM Nado[20]
Nado[0] = '0x0F7A' ; pearls, black pearls
Nado[1] = '0x0F7B' ; bood moss
Nado[2] = '0x0F84' ; garlic
Nado[3] = '0x0F85' ; ginseng
Nado[4] = '0x0F86' ; mandrake root
Nado[5] = '0x0F88' ; night shade
Nado[6] = '0x0F8C' ; sulphorous ash
Nado[7] = '0x0F8D' ; spiders silk
Nado[8] = '0x0E34' ; blank scrolls
Nado[9] = '0x0F78' ; batwings
Nado[10] = '0x0F7E' ; bones
Nado[11] = '0x0F7D' ; vials of blood
Nado[12] = '0x0F80' ; daemons bones
Nado[13] = '0x0F81' ; fertile dirt
Nado[14] = '0x0F82' ; dragons blood
Nado[15] = '0x0F87' ; eyes of newt
Nado[16] = '0x0F8E' ; serpents scales
Nado[17] = '0x0F90' ; dead woods
Nado[18] = '0x0F91' ; wyrms hearts
Nado[19] = '0x0F8F' ; volcanic ash
; я специально ограничился только регами и паган регами, вы сами можете расширять массив
; на те предметы, которые хотите лутить
VAR i
; Для начала откроем последний труп на экране
UO.UseObject( 'lastcorpse' )
wait(1000)
For i = 0 To 19
; Ищем по очереди весь лут в последнем трупе
UO.FindType( Nado[i], '-1', 'lastcorpse' )
; Пока количество найденного больше 0
While UO.FindCount() > 0
; Забираем найденное в пак
UO.MoveItem( 'finditem' )
wait( 1000 )
; Ищем снова - вдруг в трупе объектов с таким типом больше одного
UO.FindType( Nado[i], '-1', Cont )
Wend
Next
UO.Print( 'The loot was finished' )
endsub
Уж если и так не получится то начни с простых скриптов. Всетаки боты на убийство это на любом языке программирования практически высший пилотаж.