Code: Select all
var schet
sub main()
var time,kol=0
while not uo.dead()
unload()
time=MakeTime()
uo.textprint("начало цикла "+time)
go(2868,670,1)
go(2865,682,0)
go(2863,682,1)
go(2866,684,0)
go(2860,697,1)
go(2871,701,0)
go(2861,710,1)
go(2847,715,1)
go(2864,723,0)
go(2867,746,0)
go(2841,746,1)
go(2855,756,1)
go(2863,754,0)
go(2871,757,1)
go(2883,753,0)
go(2883,776,1)
go(2884,784,0)
go(2900,779,1)
go(2921,781,1)
go(2931,789,0)
go(2939,781,1)
go(2933,789,0)
go(2931,792,0)
go(2927,803,1)
go(2917,812,0)
go(2917,832,1)
go(2917,841,0)
go(2925,843,0)
go(2928,844,0)
go(2930,845,0)
go(2931,848,0)
go(2945,846,1)
go(2957,848,0)
go(2956,833,0)
go(2947,822,1)
go(2947,805,1)
go(2965,801,1)
go(2973,808,0)
go(2973,787,1)
go(2973,768,1)
go(2981,768,0)
go(2981,746,1)
go(2981,738,0)
go(2959,738,1)
go(2959,716,0)
go(2946,716,1)
go(2946,707,0)
go(2927,707,1)
go(2912,708,0)
go(2913,689,0)
go(2898,670,0)
go(2891,665,0)
go(2887,669,0)
uo.findtype('0x14EB','-1','backpack')
kol=uo.findcount()
uo.textprint("выловлено карт "+str(kol))
wend
endsub
Sub fish()
var mx,my,mz,i,j,inFishing=0
var spining='0x0DBF'
var map='0x14EB'
DIM text[6]
text[0] = 'You pull out a'
text[1] = 'You fish a while'
text[2] = 'That is too far away'
text[3] = 'Try fishing in water'
text[4] = 'There are no fish here'
text[5] = 'location'
text[6] = 'return'
var ms1="Prize"
var ms2="Truly"
var ms3="treasure"
var ms4="fishing net"
uo.set('finddistance','1')
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-6 to mx+6
for j = my -6 to my+6
if IsWater(i,j) then
inFishing=0
while inFishing==0
UO.DeleteJournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Usetype(spining)
repeat
wait(50)
Until UO.InJournal(text[0]) OR UO.InJournal(text[1]) OR UO.InJournal(text[2]) OR UO.InJournal(text[3]) OR UO.InJournal(text[4]) OR UO.InJournal(text[5]) OR UO.InJournal(text[6])
if not UO.InJournal(text[1]) then
inFishing=1
endif
wend
uo.findtype(map,'-1','ground')
if uo.findcount() then
uo.moveitem('finditem','1','backpack')
wait(500)
endif
endif
UO.DeleteJournal()
next
uo.resend()
next
end sub
Sub IsWater(X,Y)
if UO.PrivateGetTile(X, Y, -1, 6039, 6065) then
return 1
else
return 0
endif
end sub
sub unload()
var cont
var map='0x14EB'
var mesh='0x0E75'
var sm,fl=1,kol
uo.ignorereset()
uo.say("bank")
wait(1000)
cont=uo.getserial('lastcontainer')
uo.findtype(map,'-1','backpack')
while uo.findcount()
fl=1
uo.findtype(mesh,'-1',cont)
sm=uo.getserial('finditem')
uo.useobject(sm)
wait(500)
uo.findtype(map,'-1',sm)
while fl<>0
uo.findtype(map,'-1','backpack')
if not uo.findcount() then
fl=0
endif
uo.findtype(map,'-1',sm)
kol=uo.findcount()
if kol<250 then
uo.findtype(map,'-1','backpack')
if uo.findcount() then
uo.moveitem('finditem','1',sm)
wait(700)
endif
else
fl=0
uo.ignore(sm)
endif
wend
uo.findtype(map,'-1','backpack')
wend
endsub
Sub go(x,y,k)
VAR i,m,p
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]
uo.resend()
CacheX[0]="Test"
While Exit<>1
dx=x-UO.GetX()
dy=y-UO.GetY()
;for m=-1 to 1
;for p=-1 to 1
If dx==0 AND dy==0 Then
Exit=1
Endif
;next
;next
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
dx=x-UO.GetX()
dy=y-UO.GetY()
;for m=-1 to 1
;for p=-1 to 1
If dx==0 AND dy==0 Then
Exit=1
Endif
;next
; next
Wend
if k==1 then
fish()
endif
end sub
Sub StepEdit(x,y,dir,key)
VAR walkwait=100
VAR ErrLevel=0
If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub
Sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=100
VAR ErrLevel=0
If UO.GetDir()<>dir Then
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
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
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub
Sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(10)
until uo.InJournal('backpack') or UO.Dead()
end Sub
Sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = T
RETURN Ret
end sub