та я скоро кончусь с этим поиском...с 9 утра сижу ищу...понаходил все...никак не пойму..пожешь ссылку дать ?
Code:
sub pusk()
while not uo.dead()
#GoToTile(1658,2882,0, False )
#GoToTile(1652,2882,0, False )
#GoToTile(1652,2894,0, False )
GoToTile(1648,2894,0, False )
kopka()
GoToTile(1652,2894,0, False )
GoToTile(1652,2882,0, False )
GoToTile(1658,2882,0, False )
GoToTile(1658,2878,0, False )
hiding()
grabore()
GoToTile(1658,2882,0, False )
GoToTile(1652,2882,0, False )
GoToTile(1652,2894,0, False )
wend
endsub
#Ïðè ðàáîòå äîëæíà áûòü "îòæàòà" êíîïêà NumLock
Var MoveDelay=500 # Ïðîìåæóòîê ìåæäó øàãàìè
Var Ep=0.179 # Çíà÷åíèå øèðèíû óãëà õîæäåíèÿ ïðè îïðåäåëåíèè íàïðàâëåíèÿ. Åñëè íà ïóòè âñòðå÷àþòñÿ ñëîæíûå è øèðîêèå ïðåïÿòñòâèÿ - óâåëè÷èòü. 0.172 - ñáàëàí÷èðîâàííûé.
Sub Perp(Dir)
Var D
D=Dir
If Dir==1 Then
D=3
EndIf
If Dir==2 Then
D=4
EndIf
If Dir==3 Then
D=-1
EndIf
If Dir==4 Then
D=-2
EndIf
If Dir==-1 Then
D=-3
EndIf
If Dir==-2 Then
D=-4
EndIf
If Dir==-3 Then
D=1
EndIf
If Dir==-4 Then
D=2
EndIf
RETURN D
EndSub
Sub MoveOnce(Dir,Del)
Var D=UO.GetDir(),X=UO.GetX(),Y=UO.GetY(),T=UO.Timer()
If (Dir<>0) Then
If Dir==1 Then
UO.Press(38)
EndIf
If Dir==2 Then
UO.Press(33)
EndIf
If Dir==3 Then
UO.Press(39)
EndIf
If Dir==4 Then
UO.Press(34)
EndIf
If Dir==-1 Then
UO.Press(40)
EndIf
If Dir==-2 Then
UO.Press(35)
EndIf
If Dir==-3 Then
UO.Press(37)
EndIf
If Dir==-4 Then
UO.Press(36)
EndIf
While (Del>(UO.Timer()-T)*100) and (X==UO.GetX()) and (Y==UO.GetY()) and (D==UO.GetDir())
Wait(100)
Wend
If D<>UO.GetDir() Then
MoveOnce(Dir,Del-(UO.Timer()-T)*100)
EndIf
EndIf
EndSub
Sub GetQDir(x,y)
Var J=0
If X==0 Then
J=1
Else
If (Y/X)<ep Then
J=3
Else
If (X/Y)<ep Then
J=1
Else
J=2
EndIf
EndIf
EndIf
RETURN J
EndSub
Sub GetDir(myx,myy,ox,oy)
Var I,J
J=0
Var X=ox-myx
Var Y=oy-myy
I=GetQDir(Abs(X),Abs(Y))
If X>=0 Then
If Y>=0 Then
If I==1 Then
J=-2
Else
If I==2 Then
J=-1
Else
If I==3 Then
J=4
EndIf
EndIf
EndIf
Else
If I==1 Then
J=2
Else
If I==2 Then
J=3
Else
If I==3 Then
J=4
EndIf
EndIf
EndIf
EndIf
Else
If Y>=0 Then
If I==1 Then
J=-2
Else
If I==2 Then
J=-3
Else
If I==3 Then
J=-4
EndIf
EndIf
EndIf
Else
If I==1 Then
J=2
Else
If I==2 Then
J=1
Else
If I==3 Then
J=-4
EndIf
EndIf
EndIf
EndIf
EndIf
RETURN J
endsub
Sub GetDistance(X,Y)
return max(abs(X-uo.getx()),abs(Y-uo.gety()))
endsub
Sub GoToTile(OX,OY,N,S)
var myx, myy, MD, J
var Lx1 ,Ly1
var Lx2 ,Ly2
var Sx ,Sy
var T
var Des=N
J=1
MD=MoveDelay*1.5
myx=uo.getx()
myy=uo.gety()
MoveOnce(GetDir(uo.getx(),uo.gety(),ox,oy),MD)
Sx=0
Sy=0
Lx1=uo.getx()/2
Ly1=uo.gety()/2
Lx2=Lx1/2
Ly2=Ly1/2
T=UO.Timer()
While ((GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N)) and (OX>=0) and (OY>=0)
If ((UO.Timer()-T)*15>MoveDelay) Then
T=UO.Timer()
Lx2=Lx1
Ly2=Ly1
Lx1=myx
Ly1=myy
myx=uo.getx()
myy=uo.gety()
endIf
MD=MoveDelay
If ((OX-uo.getx())*(OX-uo.getx())+(OY-uo.gety())*(OY-uo.gety())>0) Then
MD=MD*3/GetDistance(ox,oy)
EndIf
If GetDistance(OX,OY)>Des Then
MoveOnce(GetDir(uo.GetX(),uo.GetY(),ox,oy),MD)
Else
If S Then
If GetDistance(OX,OY)<Des Then
If GetDistance(OX,OY)<>0 Then
MoveOnce(GetDir(ox,oy,uo.GetX(),uo.GetY()),MD)
Else
MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD)
EndIf
EndIf
EndIf
EndIf
If (GetDistance(OX,OY)<=3) Then
Wait(MoveDelay*(4-GetDistance(OX,OY)))
EndIf
If GetDistance(OX,OY)<>Des Then
If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
J=0
EndIf
J=J+1
UO.Resend()
Sx = uo.getx()
Sy = uo.gety()
Stun(ox,oy,J)
EndIf
EndIf
Wend
endsub
Sub Stun(X,Y,N)
Var I
Var myx
Var myy
myx = uo.getx()
myy = uo.gety()
For I=1 to N
MoveOnce(perp(GetDir(myx,myy,x,y)),MoveDelay)
Next
Wait(MoveDelay)
UO.Resend()
If (myx==uo.getx()) and (myy==uo.gety()) Then
For I=1 to N
MoveOnce(-perp(GetDir(myx,myy,x,y)),MoveDelay)
Next
Wait(MoveDelay)
UO.Resend()
EndIf
If (myx==uo.getx()) and (myy==uo.gety()) Then
For I=1 to N
MoveOnce(-GetDir(myx,myy,x,y),MoveDelay)
Next
Wait(MoveDelay)
Stun(x,y,N)
EndIf
EndSub
Sub NearTile(Obj,Des,S)
var ox, oy, myx, myy, MD, J
var Lx1 ,Ly1
var Lx2 ,Ly2
var Sx ,Sy
var T
UO.Click(Obj)
MD=MoveDelay*1.5
ox=uo.GetX(Obj)
oy=uo.GetY(Obj)
J=1
myx = uo.getx()
myy = uo.gety()
Sx=0
Sy=0
Lx1=myx/2
Ly1=myy/2
Lx2=Lx1/2
Ly2=Ly1/2
T=UO.Timer()
While not (UO.GetDistance(Obj)==Des)
ox=uo.GetX(Obj)
oy=uo.GetY(Obj)
If ((UO.Timer()-T)*15>MoveDelay) Then
T=UO.Timer()
Lx2=Lx1
Ly2=Ly1
Lx1=myx
Ly1=myy
myx=uo.getx()
myy=uo.gety()
endIf
MD=MoveDelay*1.5
If (UO.GetDistance(Obj)>0) Then
MD=MD/UO.GetDistance(Obj)
EndIf
If UO.GetDistance(Obj)>Des Then
MoveOnce(GetDir(uo.GetX(),uo.GetY(),uo.GetX(obj),uo.GetY(obj)),MD)
Else
If S Then
If UO.GetDistance(Obj)<Des Then
If UO.GetDistance(Obj)<>0 Then
MoveOnce(-GetDir(uo.GetX(),uo.GetY(),uo.GetX(obj),uo.GetY(obj)),MD)
Else
MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD)
EndIf
EndIf
EndIf
EndIf
If (UO.GetDistance(Obj)<=3) Then
Wait(MoveDelay*(4-UO.GetDistance(Obj)))
EndIf
If UO.GetDistance(Obj)<>Des Then
If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
J=0
EndIf
J=J+1
UO.Resend()
Sx = uo.getx()
Sy = uo.gety()
Stun(uo.GetX(obj),uo.GetY(obj),J)
EndIf
EndIf
Wend
UO.Exec('terminate PermResend')
endsub
Sub abs(a)
Var b
If a<0 Then
b=-a
Else
b=a
endif
return b
endsub
Sub max(A,B)
Var C
If A>B Then
C=A
Else
C=B
EndIf
Return C
EndSub
Sub hiding()
uo.WarMode(0)
while not UO.Hidden()
UO.UseSkill('Stealth')
wait(3500)
wend
end sub
sub grabore()
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x401C9BAF' ; ID ñóíäóêà äëÿ ðóäû
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
endsub
var pickaxe
sub kopka()
var mx, my, mz, i, j, f
mx = UO.GetX('self')
my = UO.GetY('self')
mz = UO.GetZ('self')
GetPickaxe()
while 1
for i = mx-4 to mx+4
for j = my -4 to my+4
repeat
if uo.injournal('You loosen some rocks but fail') then
wait(10000)
endif
Tohide()
UO.Print('Êîïàåì â êîîðäèíàòàõ: '+str(mx-i)+' '+str(my-j))
DigAhole(i,j,mz)
until not uo.injournal('You loosen some rocks but fail')
next
next
wend
endsub
sub Tohide()
while not uo.Hidden()
uo.warmode(0)
uo.Print('Ïûòàåìñÿ óéòè â õàéä...')
uo.UseSkill('Hiding')
wait(4000)
wend
end sub
sub GetPickaxe()
var n
dim instrument[4]
instrument[1]='0x0F39'
instrument[2]='0x0F3A'
instrument[3]='0x0E86'
instrument[4]='0x0E85'
for n=1 to 4
uo.findtype(instrument[n],-1,'my')
if uo.findcount() then
pickaxe=uo.getserial('finditem')
return
endif
next
while 1
uo.print(' pickaxe not found ')
wait(3000)
wend
endsub
sub DigAhole(i,j,mz)
var f
for f=0 to 10
checklag()
uo.waittargettile('1341',i,j,mz)
uo.useobject(pickaxe)
if waitforore()==1 then
return
endif
next
endsub
sub waitforore()
var n
for n=0 to 50
if uo.injournal('no ore here|location|far away|in rock|You have been revealed|You put') then
return 1
endif
if uo.injournal('but fail') then
return
endif
wait(500)
next
endsub
sub CheckLag()
repeat
UO.DeleteJournal()
UO.Click('backpack')
until backpack()==1
endsub
sub backpack()
var n
for n=0 to 200
if uo.injournal('a backpack') then
return 1
endif
wait(200)
next
endif
endsub
#################çàùèòà îò ýëåìîâ######################
sub Pause() ; Ïàóçà ñêðèïòà åñëè âûêîïàëè Ýëåìà (ïðîäîëæèòü ñêàçàâ GO )
UO.DeleteJournal()
REPEAT
uo.playwav("C:\exit.wav")
WAIT(1000)
UO.Print("!!!ÑÊÐÈÏÒ ÍÀ ÏÀÓÇÅ!!!!")
WAIT(10000)
st()
UNTIL UO.InJournal('GO')
UO.Print("!!!ÑÊÐÈÏÒ ÏÐÎÄÎËÆÅÍ!!!!")
endif
end sub
Sub st()
uo.msg('\w Rayva òàùè ñâîþ Æ ñïàñàòü ìîåãî êîïàëêó ')
WAIT(200)
uo.msg('\w Ona Ona Onana: òàùè ñâîþ Æ ñïàñàòü ìîåãî êîïàëêó ')
end sub
Sub CheckLag()
UO.DeleteJournal('backpack')
UO.Click('backpack')
repeat
wait(100)
until UO.InJournal('backpack')
wait(300)
end sub
sub GMstep()
If UO.GetGlobal('GMstepCheck')=='on' Then
UO.SetGlobal('GMstepCheck','off')
UO.Print("GM Step: Off")
UO.Morph('0')
Else
UO.SetGlobal('GMstepCheck','on')
UO.Print("GM Step: On")
UO.Morph('0x03DB')
Wait(100)
UO.Msg(".resync")
End If
end sub
я вот так както переделал свой скрипт и скрипт какойто с этого форума....но в нем он копает доупора...как проверку сделать когда скрипт должен закончится и ити выгружать ??