Можно ли сюда еще добавить ходилку,чтоб не только на месте копал!Обкопал вокруг себя отошел на определенное расстояние,и опять копал.ШАРД ДРВ!МАЛЕНЬКАЯ ВИПКА!
Code: sub Mining() VAR MaxWeight=550 ; vash maksimal'niy ves VAR UnloadBox='0x402612CF' ; ID containera VAR UnloadBag='0x4010D55A' ; ID Meshka VAR Lopata='0x40411727' ; ID kirki&lopati VAR Timer=0
VAR MyX, MyY, MyZ, i, j
MyX = UO.GetX() MyY = UO.GetY() MyZ = UO.GetZ()
ToHide() Wait(1000) While NOT UO.Dead() For i = MyX-4 to MyX+4 For j = MyY-4 to MyY+4
UO.DeleteJournal() UO.Print("Now Mining In: "+str(MyX-i)+" "+str(MyY-j)) While NOT UO.InJournal("no ore") AND NOT UO.InJournal("far away") AND NOT UO.InJournal("in rock")# AND NOT UO.InJournal("Iron") AND NOT UO.InJournal("Copper") AND NOT UO.InJournal("Bronze") AND NOT UO.InJournal("Rusty") AND NOT UO.InJournal("no line") AND NOT UO.InJournal("Elemental") CheckLag() ToHide() UO.DeleteJournal() UO.WaitTargetTile("6044", str(i), str(j), str(MyZ)) UO.UseObject(Lopata)
Timer=0 While NOT UO.InJournal("You put") AND NOT UO.InJournal("but fail") AND NOT UO.InJournal("no ore") AND NOT UO.InJournal("far away") AND NOT UO.InJournal("in rock") AND NOT UO.InJournal("no line") AND NOT UO.InJournal("Elemental") AND NOT Timer>=600 Wait(500) Timer=Timer+1 Wend
If UO.InJournal('Elemental') then repeat Wait(1000) until UO.InJournal('go') EndIf
If UO.Weight>MaxWeight then WalkN(0,0,UnloadBox) Unload(UnloadBag) WalkN(MyX,MyY,'') Endif Wend Next Next Wend end sub
sub Unload(UnloadBox) VAR Exit,i DIM Ore[4] Ore[0]='0x19B7' ; 1 ore Ore[1]='0x19BA' ; 2 ore Ore[2]='0x19B8' ; 3 ore Ore[3]='0x19B9' ; 4 and more ore UO.SetReceivingContainer(UnloadBox) ToHide() For i=0 to 3 Exit=0 While Exit<>1 UO.FindType(Ore[i]) If UO.GetQuantity('finditem')>0 then UO.Grab('all','finditem') CheckLag() Wait(1000) Else Exit=1 Endif Wend Next UO.UnSetReceivingContainer() end sub
sub ToHide() While NOT UO.Hidden() UO.DeleteJournal() UO.Exec('warmode 0') UO.UseSkill('Stealth') Repeat Wait(100) Until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') OR UO.Dead() Wend end sub
sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat Wait(50) until UO.InJournal('backpack') end sub
#============================================================== # WalkN(X,Y,Serial) - char is walking by dX and dY step # sub using Home, End, PgUp, PgDown keys # d'not rebind this key from default action! # serial - Serial of target or "" - string # walkwait - delay after keypress # Example: # WalkN(2080,2113,'') - go to coordinates # WalkN(0,0,'0x12345678') - go to target position #-------------------------------------------------------------- sub WalkN(x,y,Target) VAR i,StepSucess VAR dx,dy,Exit=0 While Exit<>1 ToHide() 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 StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif Endif Endif
If dx>0 AND dy<0 Then StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow Endif Endif Endif
If dx<0 AND dy>0 Then StepSucess=Go(5,37,300) ;SW - LeftArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow Endif Endif Endif
If dx<0 AND dy<0 Then StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow StepSucess=Go(5,37,300) ;SW - LeftArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow Endif Endif Endif
Endif If dx<>0 AND dy==0 Then If dx>0 Then StepSucess=Go(2,34,300) ;E - PgDown If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow Endif StepSucess=Go(2,34,300) ;E - PgDown Endif Endif If dx<0 Then StepSucess=Go(6,36,300) ;W - Home If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif StepSucess=Go(6,36,300) ;W - Home Endif Endif Endif
If dx==0 AND dy<>0 Then If dy>0 Then StepSucess=Go(4,35,300) ;S - End If StepSucess==-1 Then StepSucess=Go(3,40,300) ;SE - DownArrow If StepSucess==-1 Then StepSucess=Go(5,37,300) ;SW - LeftArrow Endif StepSucess=Go(4,35,300) ;S - End Endif Endif If dy<0 Then StepSucess=Go(0,33,300) ;N - PgUp If StepSucess==-1 Then StepSucess=Go(1,39,300) ;NE - RightArrow If StepSucess==-1 Then StepSucess=Go(7,38,300) ;WN - UpArrow Endif StepSucess=Go(0,33,300) ;N - PgUp Endif Endif Endif Wend end sub
sub Go(dir,key,walkwait) VAR x,y, OldDir
x=UO.GetX() y=UO.GetY() OldDir=UO.GetDir()
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() Endif
If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then UO.Press(key) wait(walkwait) Endif
If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If x==UO.GetX() AND y==UO.GetY() Then UO.Print("Zasada!") return -1 Else return 1 Endif end sub
#============================================================== # Healing() - memoryzed current weapon, bandageself, armed #-------------------------------------------------------------- sub Healing() UO.SetArm('CWeapon') UO.Exec("bandageself") wait(500) UO.Arm('CWeapon') end sub
#============================================================== # Recconector #-------------------------------------------------------------- sub Reconnector() var ReconnectTime, RFlag ReconnectTime = '0' RFlag = 1 Repeat While (UO.ObjAtLayer('Bpack') == '') if RFlag Then ReconnectTime = MakeTime() RFlag = 0 endif Wait(20000) # WorldSave Protection UO.Say('') Wait(3000) UO.Say('') Wait(3000) UO.Say('') Wait(3000) UO.LDblClick(357,164) UO.LClick(616,459) Wait(3000) WEnd Wait(3000) if (RFlag == 0) and (ReconnectTime <> '0') Then ;UO.Exec('terminate all') ;UO.Exec('exec autoload') UO.TextOpen() UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) RFlag = 1 ReconnectTime = '0' endif Until false 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 = STR(UO.Date()) D = "" For i = 0 To Len(Ret) D = Ret[Len(Ret)-i] + D If (I == 2) OR (I == 4) Then D = "." + D EndIf Next Ret = T + " @ " + D RETURN Ret end sub
|