Code: Select all
sub main()
VAR n , x, q
VAR maxrune = 16
uo.exec("set norbcheck 1")
uo.exec("set norbcalc 1")
uo.exec("set grabdelay 0")
Dim rune[16]
rune[1] = '20';home
rune[2] = '22';and reagents
rune[3] = '24'
rune[4] = '26'
rune[5] = '28'
rune[6] = '30'
rune[7] = '32'
rune[8] = '34'
rune[9] = '36'
rune[10]= '38'
rune[11]= '40'
rune[12]= '42'
rune[13]= '44'
rune[14]= '46'
rune[15]= '48'
rune[16]= '50'
uo.exec('addobject runebook')
while uo.targeting()
wait(200)
wend
uo.exec('addobject safe')
while uo.targeting()
wait(200)
wend
uo.exec('addobject bag')
while uo.targeting()
wait(200)
wend
Check()
While true and NOT uo.dead()
uo.ignorereset()
For n = 2 To maxrune
uo.deletejournal()
If uo.mana < 20 then
repeat
uo.warmode(0)
uo.useskill('Meditation')
wait(2000)
until uo.mana >= uo.int
endif
fizzle:
uo.recall('runebook', rune[n] )
x = uo.getx()
q = 0
repeat
q = q + 1
wait(500)
checklag()
until uo.getx()<>x or q >= 20
if q >= 20 then
goto fizzle
endif
checklag()
wait(2000)
GOandBUY()
endif
next
GOandDROP()
hide()
wait(220000)
wend
end sub
sub GOandBUY()
var f=0, name, s
uo.ignore('self')
uo.set('finddistance','15')
Dim Vname[31]
Vname[1] = 'Gilana'#1
Vname[2] = 'Lene'#1
Vname[3] = 'Donna'#2
Vname[4] = 'Fayme'#2
Vname[5] = 'Dagny'#3
Vname[6] = 'Daren'#3
Vname[7] = 'Janice'#3
Vname[8] = 'Lorenzo'#4
Vname[9] = 'Keith'#5
Vname[10]= 'Russ'#5
Vname[11]= 'Meyer'#6
Vname[12]= 'Sharman'#7
Vname[13]= 'Ianthe'#7
Vname[14]= 'Geoff'#8
Vname[15]= 'Arley'#8
Vname[16]= 'Jamie'#9
Vname[17]= 'Bella'#10
Vname[18]= 'Palmiera'#10
Vname[19]= 'Kegan'#11
Vname[20]= 'Morgance'#11
Vname[21]= 'Hamlin'#12
Vname[22]= 'Kayin'#12
Vname[23]= 'Hilliard'#13
Vname[24]= 'Elliott'#13
Vname[25]= 'Chaya'#13
Vname[26]= 'Walter'#13
Vname[27]= 'Kedar'#14
Vname[28]= 'Beval'#14
Vname[29]= 'Aitan'#14
Vname[30]= 'Ramon'#15
Vname[31]= 'Melian'#15
Dim Vser[31]
Vser[1] = '0x00109355'#1
Vser[2] = '0x0010D3F0'#1
Vser[3] = '0x0010781B'#2
Vser[4] = '0x000DBB5A'#2
Vser[5] = '0x000DE57B'#3
Vser[6] = '0x000D7DB9'#3
Vser[7] = '0x000DC725'#3
Vser[8] = '0x000DD62F'#4
Vser[9] = '0x000C8930'#5
Vser[10]= '0x000CD150'#5
Vser[11]= '0x0009293B'#6
Vser[12]= '0x0011FF45'#7
Vser[13]= '0x0011F3D2'#7
Vser[14]= '0x000E5568'#8
Vser[15]= '0x000DDE3E'#8
Vser[16]= '0x000E0EF7'#9
Vser[17]= '0x000D8CE8'#10
Vser[18]= '0x000E578E'#10
Vser[19]= '0x00117DFC'#11
Vser[20]= '0x000CF22F'#11
Vser[21]= '0x001132BF'#12
Vser[22]= '0x00058509'#12
Vser[23]= '0x000CAA6A'#13
Vser[24]= '0x000D65FB'#13
Vser[25]= '0x000CDCB1'#13
Vser[26]= '0x000DA9D8'#13
Vser[27]= '0x00069511'#14
Vser[28]= '0x001108EE'#14
Vser[29]= '0x000CC865'#14
Vser[30]= '0x000CE00D'#15
Vser[31]= '0x0004F575'#15
search:
checklag()
uo.findtype('0x0190', -1 ,'ground')
if uo.findcount() == 0 then
uo.findtype('0x0191', -1 ,'ground')
if uo.findcount() == 0 then
return
else
f = 1
endif
else
f = 1
endif
if f == 1 then
For s = 1 to 31 #
If uo.getserial('finditem') == Vser[s] then
ignore()
uo.deletejournal()
WalkME( 0 , 0 ,Vser[s])
WalkME( 0 , 0 ,Vser[s])
while not uo.InJournal("Begging|no money", 10)
uo.DeleteJournal()
UO.WaitTargetObject(Vser[s])
uo.UseSkill('Begging')
while not uo.InJournal("Begging|no money|must wait", 10)
CheckLag()
; GOandbuy()
; uo.closeuo()
; endif
uo.ignore(Vser[s])
goto search
endif
next
uo.ignore('finditem')
goto search
endif
end sub
sub GOandDROP()
VAR y, w
fizzle:
uo.recall('runebook', 20 )
y = uo.gety()
w = 0
repeat
w = w + 1
wait(500)
checklag()
until uo.gety()<>y or w >= 20
if w >= 20 then
goto fizzle
endif
WalkME( 0 , 0 ,'safe')
uo.useobject('bag')
CheckLag()
uo.findtype( -1 , -1 ,'bag')
While uo.findcount()
uo.moveitem('finditem', 0 ,'safe')
wait(200)
CheckLag()
uo.ignore('finditem')
uo.findtype( -1 , -1 ,'bag')
wend
Check()
end sub
sub ignore()
uo.findtype( -1 )
While uo.findcount()
uo.ignore('finditem')
wait(200)
uo.findtype( -1 )
wend
CheckLag()
end sub
sub drag()
uo.findtype( -1 )
While uo.findcount()
uo.moveitem('finditem', 0 ,'bag')
wait(200)
CheckLag()
uo.findtype( -1 )
wend
end sub
sub check()
VAR r
Dim reg[3]
reg[1] = 0x0F7B
reg[2] = 0x0F86
reg[3] = 0x0F7A
uo.ignorereset()
if uo.count(reg[1])<50 or uo.count(reg[2])<50 or uo.count(reg[3])<50 then
If UO.GetDistance('safe')>3 then
WalkMe( 0 , 0 ,'safe')
endif
uo.useobject('safe')
CheckLag()
For r = 1 to 3
uo.findtype(reg[r], -1 ,'safe')
If uo.findcount() == 0 then
uo.msg('You must have reagents for recall in your fucking safe chest you stupid fuck!')
uo.exec('terminate all')
endif
uo.moveitem('finditem','50','backpack')
wait(400)
CheckLag()
next
endif
end sub
sub hide()
while NOT uo.hidden()
uo.useskill('Hiding')
wait(5000)
wend
end sub
################# W A L K E R ######################
sub WalkME(x,y,Target)
VAR i
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]
CacheX[0]="Test"
While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()
; UO.Print("Target locked!")
If UO.GetDistance(Target)<2 Then
return
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 Then
Exit=1
Endif
Endif
If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then ; GoSE
dir=3
ldir=2
rdir=4
key=40 ; DownArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=0
rdir=1
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=5
rdir=6
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx>0 AND dy<0 Then ; GoNE
dir=1
ldir=0
rdir=2
key=39 ; RightArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=6
rdir=7
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy>0 Then ; GoSW
dir=5
ldir=4
rdir=6
key=37 ; LeftArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==6 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy<0 Then ; GoWN
dir=7
ldir=6
rdir=0
key=38 ; UpArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx<>0 AND dy==0 Then
If dx>0 Then ; GoE
dir=2
key=34 ; PgDown
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoNE
dir=1
ldir=1
rdir=0
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 Then ; GoW
dir=6
key=36 ; Home key
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx==0 AND dy<>0 Then
If dy>0 Then ; GoS
dir=4
key=35 ; End
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=6
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dy<0 Then ;GoN
dir=0
key=33 ; PgUp
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoWN
dir=7
ldir=7
rdir=6
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
Wend
end sub
sub StepEdit(x,y,dir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
checkstam()
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
;zatik
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub
sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
CheckLag()
Endif
Endif
If UO.GetX()==x AND UO.GetY()==y Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
CheckLag()
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub
sub checkstam()
var refresh = '0x0F0B'
if uo.stamina < 10 then
uo.findtype(refresh,-1,'backpack')
if uo.findcount() then
uo.usetype(refresh)
wait(1000)
else
uo.print("Nety Refreshey! Stoim...")
repeat
wait(500)
until uo.stamina >= 10
endif
else
endif
endsub
Sub CHECKLAG()
del('backpack')
uo.click('backpack')
repeat
wait(200)
until uo.injournal('backpack')
del('backpack')
endsub
Sub DEL(msg)
while uo.injournal(msg)
uo.setJournalLine(uo.injournal(msg)-1,"Is Empty!")
wend
endsub
##########################################
Sub test()
##########################################
If uo.getglobal('test')=='On' then
uo.setglobal('test',0)
uo.print(' !!! -= Test: OFF =- !!! ')
uo.exec('terminate test')
else
uo.setglobal('test','On')
uo.print(' !!! -= Test: On =- !!! ')
end if
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
if uo.weight > uo.str*4-400 then
uo.print(' ok ')
endif
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
uo.setglobal('test', 0 )
uo.print(' !!! -= Test: OFF =- !!! ')
##########################################
end sub
##########################################