та я скоро кончусь с этим поиском...с 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
я вот так както переделал свой скрипт и скрипт какойто с этого форума....но в нем он копает доупора...как проверку сделать когда скрипт должен закончится и ити выгружать ??
|