Code: Select all
################
# You Must Die #
# The Myst #
# themyst.ru #
## Mining 1.0 ##
################
# Находим сами горы на экране,из которых копаем руду.
# Как тока нашли-идём к ним,и копаем пока всё не выкопаем.
# Ходилка Savage. SuperWalk() -иметь в том же файле что и скрипт на мининг.
#
sub The_Myst_Mining()
DIM color[6]
color[0]='0x0B09' # Iron жила
color[1]='0x0B08' # Cooper жила
color[2]='0x0792' # Silver жила
color[3]='0x0A9C' # Gold жила
color[4]='0x0B10' # Amberit жила
color[5]='0x07AE' # Verite жила
var mountain='0x1772' # Тип жил из которых копаем
var pickaxe='0x0E85' # Тип кирки
var i , k
var ryda
uo.Set('finddistance','10')
uo.DeleteJournal()
uo.IgnoreReset()
while not uo.Dead()
while uo.Weight < 500
mine:
for i = 0 to 5
uo.FindType(mountain,color[i],'ground')
if uo.FindCount() then
ryda = uo.GetSerial('finditem')
uo.Click(ryda)
wait(100)
goto dig
else
goto mine
end if
next
dig:
SuperWalk(0,0,'finditem')
uo.DeleteJournal()
while not uo.InJournal('Here no more')
uo.DeleteJournal()
uo.WaitTargetObject(ryda)
uo.UseType(pickaxe)
if uo.InJournal("You can't see") then
goto mine
end if
wait(100)
k = 0
repeat
wait(100)
k = k + 1
if uo.InJournal("You can't see") then
goto mine
end if
until uo.InJournal('You put') or uo.InJournal('Here no more') or ( k > 100 )
wait(100)
wend
next
wend
wend
end sub
sub main()
DIM tree[38]
tree[0]='0x0c95' # тип дерева
tree[1]='0x0c96' # тип дерева
tree[2]='0x0cca' # тип дерева
tree[3]='0x0ccb' # тип дерева
tree[4]='0x0ccc' # тип дерева
tree[5]='0x0ccd' # тип дерева
tree[6]='0x0cd0' # тип дерева
tree[7]='0x0cd3' # тип дерева
tree[8]='0x0cd6' # тип дерева
tree[9]='0x0cd8' # тип дерева
tree[10]='0x0cd9' # тип дерева
tree[11]='0x0cda' # тип дерева
tree[12]='0x0cdb' # тип дерева
tree[13]='0x0cdc' # тип дерева
tree[14]='0x0cdd' # тип дерева
tree[15]='0x0cde' # тип дерева
tree[16]='0x0cdf' # тип дерева
tree[17]='0x0ce0' # тип дерева
tree[18]='0x0ce3' # тип дерева
tree[19]='0x0ce6' # тип дерева
tree[20]='0x0cf8' # тип дерева
tree[21]='0x0cfb' # тип дерева
tree[22]='0x0cfe' # тип дерева
tree[23]='0x0d01' # тип дерева
tree[24]='0x0d41' # тип дерева
tree[25]='0x0d42' # тип дерева
tree[26]='0x0d43' # тип дерева
tree[27]='0x0d44' # тип дерева
tree[28]='0x0d5a' # тип дерева
tree[29]='0x0d5b' # тип дерева
tree[30]='0x0d6e' # тип дерева
tree[31]='0x0d6f' # тип дерева
tree[32]='0x0d70' # тип дерева
tree[33]='0x0d71' # тип дерева
tree[34]='0x0d72' # тип дерева
tree[35]='0x0d84' # тип дерева
tree[36]='0x0d85' # тип дерева
tree[37]='0x0d86' # тип дерева
var axe='0x0F43' # Oei oiii?a
var a , b
var trees
uo.Set('finddistance','17')
uo.DeleteJournal()
uo.IgnoreReset()
while not uo.Dead()
while uo.Weight < 500
hack:
for a = 0 to 37
uo.FindType(tree[a],'-1','ground')
if uo.FindCount() then
trees = uo.GetSerial('finditem')
uo.Click(trees)
wait(100)
end if
SuperWalk(0,0,'finditem')
uo.DeleteJournal()
while not uo.InJournal('Here no more')
uo.DeleteJournal()
uo.WaitTargetObject(trees)
uo.UseType(axe)
if uo.InJournal("You can't see") then
goto hack
end if ###<--------------------------------LINE 140!!!
wait(100)
b = 0
repeat
wait(100)
b = b + 1
if uo.InJournal("You can't see") then
goto mine
end if
until uo.InJournal('You put') or uo.InJournal('You fail to find') or ( b > 100 )
wait(100)
wend
next
wend
wend
end sub
sub SuperWalk(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
Exit=1
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
Делает два шага вверх и вылетает Run TimeError Line 140.