????
Code: ############################################## #Crafted by 08 - 17j,2010 # #For DRW.ru Shard Injection 505.18 Vendor # #Lumberjacking v 7.1 # #?????? ????? ? ?????/?????? # #????? ????????? ??? ????????? ????, # #??? ??????? ?????? ?????. # #??? ?????? ????? ??? ????? # #???????,????????????? # #??????? ??? ???????? ??????? # ############################################# # ??? ????? # # 1= S???(1 ??),????? ? ???????? ? ???(1??) # # 2=???(pigs),?????(??? ? ????? ? ????????) # # 3= ?????? ?????? ????(????????) # # "battle axe" * "executioners axe" # # "a large battle axe" * "a two handed axe" # # 4=???? ? ????? ? ?????(9 ???? ?? ?????????) # ############################################# # FaQ # ############################################# #?????????? ???? ? ??????,? ???????? ????? # #[][][][][][][][][][][][][][][][][][][][][][] # #???????? ????? ?????? ?????????? ???????? # #??? ????? ??????? ,infotile # #??? .dat ?????,???????? ? ?????? ????? C:\ # #???????? ????? ? ??????? ??????? ?????- # # tr0.dat tr1.dat tr2.dat # #? ?????? ????????? ????,??? ?????? ???? ????? # #?? ?????????(??????? ?????????? ??? ??? ????? # #? ?????? ?????? ????). # #[][][][][][][][][][][][][][][][][][][][][][] # #???????? AUTORUN ? ?????????? ???? ??? ????? # #?????????? ??????? AR_On().?????? ? ?????? # #????????? ?????????? ??? ????. # #?????.???????????? ? ????????? ???????? "!" # ############################################ # ????????! # # ?????????????? ????? ? ???? # # ????????????? ???????! # # ????????? ??????? ??????? ? ?????? ??? # # ?? ?????? ????? ????? ??????? # ############################################ # ?????????? # ############################################ # ???????????? ?????? HELP # var helpX=980 # ?????????? ??? ???????! # var helpY=55 # ?????????? ??? ???????! # ############################################ var Runebook='0x404ACE9F' # ??? ?????? ?????. # ! var Runenr='1025' # ????? ???? ? ?????. # ! var food='0x09BB' # ??? ???(??????!) # var band='0x0E21' #??? ?????? # var sunduk='0x40556A9D' #???? #! var sumka_axe='0x4021CB0B'#????? ? ???????? #! var homeX=1111#?????????? X ????? ? ???????? #! var homeY=1111#?????????a Y ????? ? ???????? #! var homeXreserv=1112#????????? ?????????? #! var homeYreserv=1112#????????? ?????????? #! #????????? ?????.=?????.X,Y,?????????? ?? 1 # var StepTimeOut=350 #??????? ???? # ############################################ sub main() uo.set('quiet', '1') #?????????? ????????? 0 ????? ??????? ????? uo.set('finddistance','8') xy() Open(sunduk) Open(sumka_axe) wait(500) tallq() DropLogs() uo.exec('exec lumbera') uo.exec('exec Reconnector') uo.exec('exec Resurrector') endsub ####################LUMBER###################### #[][][][][][][][][][][][][][][][][][][]LUMBER_A[][][][][][][][][][][][][][][][] ############################################### sub lumbera() var f=file("C:\tr0.dat"),TreeCount=0,i dim TreeX[500],TreeY[500],TreeT[500] f.open() uo.exec('terminate cheker1') uo.exec('terminate cheker2') uo.exec('terminate cheker') uo.exec('terminate lumberc') uo.exec('exec cheker') TreeCount=safe call f.readNumber() for i=1 to TreeCount TreeT[i]=safe call f.ReadNumber() TreeX[i]=safe call f.ReadNumber() TreeY[i]=safe call f.ReadNumber() next f.close() while not uo.dead() for i=1 to TreeCount uo.Print('Lumber1=???? ? ?????? ????? '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) walker(treex[i],treey[i],1) GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz())) next DropLogs() uo.exec('exec lumberb') wend endsub #[][][][][][][][][][][][][][][][][][][]LUMBER_B[][][][][][][][][][][] sub lumberb() var f=file("C:\tr1.dat"),TreeCount=0,i dim TreeX[500],TreeY[500],TreeT[500] uo.exec('terminate cheker1') uo.exec('terminate cheker2') uo.exec('terminate cheker') uo.exec('terminate lumbera') f.open() uo.exec('exec cheker1') TreeCount=safe call f.readNumber() for i=1 to TreeCount TreeT[i]=safe call f.ReadNumber() TreeX[i]=safe call f.ReadNumber() TreeY[i]=safe call f.ReadNumber() next f.close() while not uo.dead() for i=1 to TreeCount uo.Print('Lumber2=???? ? ?????? ????? '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) walker(treex[i],treey[i],1) # ToHide() GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz())) next DropLogs() uo.exec('exec lumberc') wend endsub #[][][][][][][][][][][][][][][][][][][]LUMBER_C[][][][][][][][][][][] sub lumberc() var f=file("C:\tr2.dat"),TreeCount=0,i dim TreeX[500],TreeY[500],TreeT[500] uo.exec('terminate cheker1') uo.exec('terminate cheker2') uo.exec('terminate cheker') uo.exec('terminate lumberb') uo.exec('exec cheker2') f.open() TreeCount=safe call f.readNumber() for i=1 to TreeCount TreeT[i]=safe call f.ReadNumber() TreeX[i]=safe call f.ReadNumber() TreeY[i]=safe call f.ReadNumber() next f.close() while not uo.dead() for i=1 to TreeCount uo.Print('Lumber3=???? ? ?????? ????? '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i])) walker(treex[i],treey[i],1) # ToHide() GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz())) next DropLogs() uo.exec('exec lumbera') wend endsub #[][][][][][][][][][][][][][][][][][][]GET_TREE[][][][][][][][][][][][] Sub GetTree(type,x,y,z) var ms1="logs in your pack" var ms2="logs here to chop" var ms3="log in your pack" var ms4="You hack" var ms5="That is too far away" var ms6="You can't reach this" var Time Time=uo.Timer() wait(200) repeat uo.deletejournal() uo.waittargettile(type,x,y,z) uo.useobject('axe') #cheker() repeat wait(100) until uo.injournal(ms1) or uo.injournal(ms2) or uo.injournal(ms3) or uo.injournal(ms4) or uo.injournal(ms5) or uo.injournal(ms6) or Time+80<uo.Timer() until uo.injournal(ms2) or uo.injournal(ms5) or uo.injournal(ms6) or uo.injournal(ms4) or Time+50<uo.Timer() end sub #[][][][][][][][][][][][][][][][][][][]DROP_LOGS[][][][][][][][][][][][][] sub DropLogs() var a,Exit,Logs='0x1BDD' xy() ToHide() uo.findtype(Logs,'-1','backpack') while uo.findcount()>0 uo.moveitem('finditem','all',sunduk) wait(3000) uo.findtype(Logs,'-1','backpack') wend CheckLag() checkhpS() Getaxe() toeat() end sub #[][][][][][][][][][][][][][][][][][][]GOTO_XY[][][][][][][][][][][][][][][] #???? ? ???????,???????? ?? ???????? sub xy() while not uo.InJournal('Contains') repeat walker(homeX,homeY,1) Open(sunduk) Open(sumka_axe) ToHide() if uo.injournal('reach that') or uo.injournal('You can') then walker(homeXreserv,homeYreserv,1) ToHide() endif wend UO.DeleteJournal() endsub #[][][][][][][][][][][][][][][][][][][]GET_AXE[][][][][][][][][][][][][][][] sub Getaxe() var n dim instrument[4] instrument[1]='0x1442' #?????? ???? ??????. instrument[2]='0x0F45' instrument[3]='0x0F47' instrument[4]='0x13FA' if uo.count('0x13FA')==0 and uo.count('0x0F47')==0 and uo.count('0x0F45')==0 and uo.count('0x1442')==0 then for n=1 to 4 uo.findtype(instrument[n],-1,'0x4021CB0B') if uo.findcount() then Uo.exec("addobject axe finditem") uo.moveitem('finditem',0,'backpack') uo.print('axe found!') save() checklag() wait(700) return endif next else for n=1 to 4 uo.findtype(instrument[n],-1,'my') if uo.findcount() then Uo.exec("addobject axe finditem") uo.print('axe found in pack!') save() return endif next endif while 1 uo.print(' axe not found ') wait(3000) wend endsub ############################################## #[][][][][][][][][][][][][][][][][][][]CHECKER[][][][][][][][][][][][][][][][] ############################################## sub cheker() while true if CheckIfTree() ==1 then uo.exec('terminate lumbera') UO.DeleteJournal() uo.ignorereset() DropLogs() wait(15000) uo.exec('exec lumberb') end if repeat wait(2000) wend end sub #[][][][][][][][][][][][][][][][][][][]CHECKER1[][][][][][][][][][][][][][] sub cheker1() while true if CheckIfTree() ==1 then uo.exec('terminate lumberb') UO.DeleteJournal() uo.ignorereset() DropLogs() wait(15000) uo.exec('exec lumberc') end if repeat wait(1000) wend end sub #[][][][][][][][][][][][][][][][][][][]CHECKER2[][][][][][][][][][][][][][][] sub cheker2() while true if CheckIfTree() ==1 then uo.exec('terminate lumberc') UO.DeleteJournal() uo.ignorereset() DropLogs() wait(150000) uo.exec('exec lumbera') end if repeat wait(1000) wend end sub ################################################ #[][][][][][][][][][][][][][][][][][][]HEAL[][][][][][][][][][][][][][][][][][][]# ############################################### #Mihail var rn, max = uo.getmaxhp(object)/100 rn = uo.gethp(object)/max Return rn End Sub
sub checkhpS() if uo.life < 90 then getBND() while uo.life < 90 uo.WarMode(false) uo.WaitTargetObject('self') uo.UseType('band') wait(3500) CheckLag() wend dropBND() endif end sub
sub getBND() uo.findtype(band,-1,sumka_axe) if uo.findcount() then uo.moveitem('finditem','15','backpack') wait(600) endif endsub
sub dropBND() uo.findtype(band,-1,'backpack') if uo.findcount() then uo.moveitem('finditem',0,sumka_axe) wait(600) endif endsub
############################################## #[][][][][][][][][][][][][][][][][][][]OTHER[][][][][][][][][][][][][][][][][] ############################################## sub CheckIfTree() uo.findtype('0x002F',-1,'ground') if uo.findcount() then return 1 endif endsub #[][][][][][][][][][][][][][][][][][]TO_EAT[][][][][][][][][][][][][][][] sub toeat() uo.findtype(food,-1,sumka_axe) if uo.findcount() then uo.moveitem('finditem','1','backpack') checklag() wait(600) uo.usetype(food) wait(500) uo.findtype(food,-1,'backpack') if uo.findcount() then uo.moveitem('finditem',0,sumka_axe) checklag() wait(600) endif endif endsub #[][][][][][][][][][][][][][][][][][][]AUTORUN[][][][][][][][][][][][][][][] sub AR_On() if uo.GetRun('self')==0 then uo.press(122) endif uo.print('??? ???????') end sub #[][][][][][][][][][][][][][][][][][][]TOHIDE[][][][][][][][][][][][][][][][] Sub ToHide() while not UO.Hidden() uo.WarMode(false) uo.deletejournal() UO.UseSkill("Stealth") wait(3500) wend end sub #[][][][][][][][][][][][][][][][][][][]NUMB[][][][][][][][][][][][][][][][][] Sub Numb(num) if num>=0 then return num else return num*(-1) end if end sub #[][][][][][][][][][][][][][][][][][][]CHECKLAG[][][][][][][][][][][][][][][] Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(150) until UO.InJournal('backpack') end sub #[][][][][][][][][][][][][][][][][][][]WRITELOG[][][][][][][][][][][][][][][] sub writeLog() var ser var n for n=0 to 0 ser=uo.journalserial(n) uo.TextOpen() uo.TextPrint(uo.getname(ser)+' @ '+MakeTime()) endif next endsub #[][][][][][][][][][][][][][][][][][][]SAVE[][][][][][][][][][][][][][][][][] sub save() uo.exec('saveconfig') endsub #[][][][][][][][][][][][][][][][][][][]TERM_OTHER[][][][][][][][][][][][][][] sub tall() uo.exec('terminate main') uo.exec('terminate Reconnector') uo.exec('terminate lumbera') uo.exec('terminate lumberb') uo.exec('terminate lumberc') uo.exec('terminate cheker') uo.exec('terminate cheker1') uo.exec('terminate cheker2') endsub
sub tallq() uo.exec('terminate Resurrector') uo.exec('terminate Reconnector') uo.exec('terminate lumbera') uo.exec('terminate lumberb') uo.exec('terminate lumberc') uo.exec('terminate cheker') uo.exec('terminate cheker1') uo.exec('terminate cheker2') endsub #[][][][][][][][][][][][][][][][][][]RESSURECTOR[][][][][][][][][][][][][][][][] sub Resurrector() var oldX,oldY while 1 if uo.dead() then tall() # uo.TextOpen() uo.TextPrint('- dead - @ '+MakeTime()) wait(5000) oldX = Uo.GetX() oldY = Uo.GetY() uo.useobject('self') checklag() wait(700) repeat uo.lclick(helpX,helpY) checklag() wait(700) uo.lclick(264,308) checklag() wait(700) uo.lclick(175,203) checklag() wait(5000) until oldX<>UO.GetX() OR oldY<>UO.GetY() repeat uo.press(39) wait(2000) until UO.GetY()<534 repeat uo.useobject('0x4001BDF0') wait(3000) until uo.life>0 Open(uo.getserial('backpack')) wait(300000) oldX = Uo.GetX() oldY = Uo.GetY() uo.recall(Runebook,Runenr) repeat wait(700) until oldX<>uo.getx('self') && oldY<>uo.gety('self') Open(sunduk) if uo.waiting() then uo.canceltarget() endif uo.exec('exec main') endif wait(5000) wend endsub #[][][][][][][][][][][][][][][][][][][]OPEN[][][][][][][][][][][][][][][][][][][] sub Open(what) uo.useobject(what) checklag() wait(700) endsub #[][][][][][][][][][][][][][][][][][][]COUNT_LOGS[][][][][][][][][][][][][][][][] sub Get_Logs_Count() var type='0x1BDD' var i uo.FindType(type,'-1','0x40556A9D') uo.TextClear() for i = 0 to uo.FindCount() - 1 uo.FindType(type,'-1','0x40556A9D') uo.Click('finditem') uo.Print(uo.GetName('finditem')) wait(100) uo.TextOpen() uo.TextPrint(uo.GetName('finditem')) uo.Ignore('finditem') next uo.IgnoreReset() end sub
####################??????? 3 #var Prec=3 # ??? ?????? ??????? ??????? ? ???? (Precision) #var MaxTraceDistance=15 # ???????????? ????? ??????. ?????????? ??????? ? ??????? ????????? ??????????. ???? ??????? ????? #??????? ?????, ??????? ????? ????? ? ????? ??? ???? ????? ????? ? ????????? ??????. #var Speed=2 # ????? ????. ??????? ????? ?????? ?? ???. ???? 3 ??????? ?????? ???. ?????? ????? ????????? ?????. ??? ??????? #???????? 3, ??? ???????? - 1. #var StepTimeOut=400 # ???? ???????? ? ???????????? ??????, ??????? ???? ????? ?????? ? ?????. ???? ?? ???????? - ??????? #????. ???? ????????? ?????? ?????????, ??????? ?????? ???????????? ?????? ?????. #UO.SetGlobal("Logging","1") # - ?????????? ?????????? ?????????. #UO.SetGlobal("BlindWalk","0") # - ?? ???????????? ???????? ??????, ? ???????????? ?????? ???????. ??? ???????? ??????????? #????????. #? ??????? IsPass, ??????????? ?????? ?????????? ??????. #Walker(X,Y,Prec) - ???? ? ???? ? ???????????? X,Y. ?????????? 1 ? ?????? ????????? ?????????? ????, ? 0 - ??? ??????????? ?????? (???? ?? ??????) #Tracer(StartDir,Direction) - ??????????? 1 ????. ?????????? ??????????? ?? ???????? ?????????? ?????????? ? ?????. StartDir #- ??????????? ?????????? ????????, Direction (-1 ??? +1) ??????????? ??????. -1 - ?? ??????? ???????, +1 ?????? ??????? #???????. ??????????? ?????? ?????????? ??????? ???????: #1 - ????? ???? #2 - ???? #3 - ?????? ???? #4 - ?????? #5 - ?????? ????? #6 - ????? #7 - ????? ????? #8 - ????? #Tracer(StartDir,Direction) - ???????? ???????? ??? ??????? ????? ?????? ??? ??? ??? ????? ???????? ????? ?????????? (1 #?????? ??????? = 1 ??? ??????). ##################################################### # WW W WW AA LL Kk KK EE EE RRR # # WW W WW AA A LL Kk K EEE R R # # WW W WW AA A LL KKK EEEEE R R # # WW WW WW AAAA LL KKK EEE RRR # # WWW WWW AA A LLLL KK Kk EE EE R RR # #################################################### var MaxTraceDistance=10 var TraceLoopIncrease=5 #?????????? MaxTraceDistance ??? ?????????? ?????????? ????? var LimitTrace=20 #??????? ????? ? ??? ??????? ?? ????????? ????? ?????? ?????????? ??????? (?????? ???). var Speed=3 #var StepTimeOut=350 #??????? ????. ????????????? ?? ? ?????? ?????, ? ? ?????? ???? + ?????? ?????. # ??? ?????? - 500+Ping # ??? ????/?????? ?? ?????? - 300+Ping # ??? ?? ?????? - 150 + Ping
var CheckCnt=2 #?????????? ?????? ????????. ??????????? ? ??????? ??? ???????. ???????????? ?????? ?? ??????? ?? ???????????? ????????. ??? ??????? ????? ????? ????. var DynamicPause=30 #??????????? ????? ? ??????. ??? ?????? ????? - ??? ?????? ?????? ? ??? ?????? ???????? ??????????.
Sub Walker(GoX,GoY,Prec) UO.SetGlobal("Logging","0") UO.SetGlobal("BlindWalk","0") var LastDir var MoveRes var TracerCnt UO.SetGlobal("GlobalGoX",str(GoX)) UO.SetGlobal("GlobalGoY",str(GoY)) while not IsEnd(GoX,GoY,Prec) TracerCnt = MaxTraceDistance repeat LogInfo('Just walking') LastDir=GoUntilHit(GoX,GoY,Prec)
if IsEnd(GoX,GoY,Prec) then return 1 end if
LogInfo('Tracing') MoveRes = FullAroundTrace(LastDir,GoX,GoY,Prec,TracerCnt) if TracerCnt > LimitTrace then return 0 endif TracerCnt = TracerCnt + TraceLoopIncrease until MoveRes == 1 wend return 1 end sub Sub FullAroundTrace(StartDir,GoX,GoY,Prec,MaxTrace) var LineX=UO.GetX() var LineY=UO.GetY() var CurDir=StartDir var Direction=CountDirection(GoX,GoY,CurDir,Prec) var StartX,StartY var MovesDone=0 repeat StartX=UO.GetX() StartY=UO.GetY() CurDir=Tracer(CurDir,Direction,Prec) if (CurDir==GetDir(GoX,GoY,Prec)) then return 1 endif if MovesDone>0 and PrevMoveCross(GetDirToDir(UO.GetDir(),Prec),LineX,LineY,GoX,GoY,StartX,StartY,Prec) then return 1 end if MovesDone=MovesDone+1 CurDir=AddToDir(CurDir,-Direction,Prec) until MovesDone>MaxTrace return 0 end sub Sub CountDirection(GoX,GoY,StartDir,Prec) var GoDir=GetDir(GoX,GoY,Prec) var MyX=UO.GetX() var MyY=UO.GetY() if GoDir<StartDir then return -1 end if if GoDir>StartDir then return 1 end if if Abs(MyX-GoX)>Abs(MyY-GoY) then if (GoDir==3 and GoY>MyY) OR (GoDir==7 and GoY<MyY) then return -1 else return 1 end if else if (GoDir==1 and GoX<MyX) or (GoDir==5 and GoX>MyX) then return -1 else return 1 end if end if end sub Sub PrevMoveCross(Dir,x1,y1,x2,y2,StartX,StartY,Prec) var x3,y3,x4,y4 x3=StartX y3=StartY x4=StartX+(XFromDir(Dir)-StartX)*Speed y4=StartY+(YFromDir(Dir)-StartY)*Speed return LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4,Prec) end sub Sub LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4,Prec) if x1==x3 and y1==y3 then return false end if var z1=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1) var z2=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1) if z1*z2>0 then return false else LogInfo('Vector info:') LogInfo('x1= '+str(x1)) LogInfo('y1= '+str(y1)) LogInfo('x2= '+str(x2)) LogInfo('y2= '+str(y2)) LogInfo('x3= '+str(x3)) LogInfo('y3= '+str(y3)) LogInfo('x4= '+str(x4)) LogInfo('y4= '+str(y4)) return true end if end sub Sub IsDiap(X,X0,X1,Prec) if X<=X0+Prec and X>=X1-Prec OR X>=X0-Prec and X<=X1+Prec then return true end if return false end sub Sub GoUntilHit(GoX,GoY,Prec) var LastDir LastDir=GetDir(GoX,GoY,Prec) var CouldMove repeat LastDir=GetDir(GoX,GoY,Prec) if LastDir<>0 and not IsEnd(GoX,GoY,Prec) then CouldMove=TryDir(LastDir,Prec) end if until LastDir==0 or IsEnd(GoX,GoY,Prec) or not CouldMove return LastDir end sub Sub IsEnd(GoX,GoY,Prec) if Abs(UO.GetX()-GoX)<=Prec and Abs(UO.GetY()-GoY)<=Prec then LogInfo('END FOUND') return true else return false end if end sub Sub GetDir(GoX,GoY,Prec) var MyX=UO.GetX() var MyY=UO.GetY() var DiffX=Abs(UO.GetX()-GoX) var DiffY=Abs(UO.GetY()-GoY) var GoDir=0 if (DiffX/(DiffY+0.1))>=2 then if (MyX>GoX) then GoDir=7 else GoDir=3 end if else if (DiffY/(DiffX+0.1))>=2 then if (MyY>GoY) then GoDir=5 else GoDir=1 end if else if (MyX>GoX) and (MyY>GoY) then GoDir=6 else if (MyX>GoX) and (MyY<GoY) then GoDir=8 else if (MyX<GoX) and (MyY>GoY) then GoDir=4 else if (MyX<GoX) and (MyY<GoY) then GoDir=2 end if end if end if end if end if end if return GoDir end sub Sub Tracer(StartDir,Direction,Prec) var CurDir=StartDir var Result repeat Result=TryDir(CurDir,Prec) if not Result then CurDir=AddToDir(CurDir,Direction,Prec) end if until Result return Result end sub Sub AddToDir(Dir,Cnt,Prec) var NewDir=Dir NewDir=NewDir+Cnt while NewDir>8 NewDir=NewDir-8 wend while NewDir<1 NewDir=NewDir+8 wend return NewDir end sub Sub TryDir(Dir,Prec) var BegX=UO.GetX() # Ia?aeuiia O var BegY=UO.GetY() # Ia?aeuiia Y var Counter=0 var GoX=BegX var GoY=BegY GoX=XFromDir(Dir) GoY=YFromDir(Dir) if not IsPass(GoX,GoY) then LogInfo(str(GoX)+':'+str(GoY)+' is not passable') return false end if return TurnAndGoDir(Dir,Prec) end sub Sub XFromDir(Dir) if Dir==2 OR Dir==3 Or Dir==4 then return (UO.GetX()+1) end if if Dir==6 OR Dir==7 Or Dir==8 then return (UO.GetX()-1) end if return (UO.GetX()) end sub Sub YFromDir(Dir) if Dir==8 OR Dir==1 Or Dir==2 then return (UO.GetY()+1) end if if Dir==4 OR Dir==5 Or Dir==6 then return (UO.GetY()-1) end if return (UO.GetY()) end sub Sub TurnAndGoDir(Dir,Prec) var StartDir=GetDirToDir(UO.GetDir(),Prec) var StartX=UO.GetX() var StartY=UO.GetY() var EndDir var Counter=0 var TestCounter=CheckCnt
#Direction Test repeat Counter = 0 LogInfo('Dir: '+str(StartDir)+' Counter: '+str(Counter)) PressDir(Dir) repeat EndDir=GetDirToDir(UO.GetDir(),Prec) wait(DynamicPause) Counter=Counter+1 until StartDir<>EndDir or StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause TestCounter = TestCounter - 1 LogInfo('Dir: '+str(EndDir)+' Counter: '+str(Counter)) until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause
if Counter>=StepTimeOut/DynamicPause then LogInfo('Direction timeout reached') return 0 end if #End direction Test
if StartY<>UO.GetY() or StartX<>UO.GetX() then return Dir end if #Start Primary test TestCounter=CheckCnt repeat GoDir(Dir,Prec) Counter=0 repeat wait(DynamicPause) Counter=Counter+1 until StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause TestCounter = TestCounter - 1 until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause #End primary test
if Counter>=StepTimeOut/DynamicPause then LogInfo('Step timeout reached') return 0 else return Dir end if end sub Sub GetDirToDir(GotDir,Prec) var ChangedDir=-GotDir ChangedDir=AddToDir(ChangedDir,5,Prec) return ChangedDir end sub Sub DirToInj(Dir) dim Dirs[9] Dirs[1]=1 Dirs[2]=2 Dirs[3]=3 Dirs[4]=6 Dirs[5]=9 Dirs[6]=8 Dirs[7]=7 Dirs[8]=4 return (Dirs[Dir]) end sub
Sub PressDir(Dir) dim Dirs[9] Dirs[1]=35 Dirs[2]=40 Dirs[3]=34 Dirs[4]=39 Dirs[5]=33 Dirs[6]=38 Dirs[7]=36 Dirs[8]=37 UO.Press(Dirs[Dir],1) end sub
Sub GoDir(Dir,Prec) dim Dirs[9] Dirs[1]=35 Dirs[2]=40 Dirs[3]=34 Dirs[4]=39 Dirs[5]=33 Dirs[6]=38 Dirs[7]=36 Dirs[8]=37 var DistanceX=Abs(UO.GetX()-val(UO.GetGlobal("GlobalGoX"))) var DistanceY=Abs(UO.GetY()-val(UO.GetGlobal("GlobalGoY"))) var GoDistance if (DistanceX-Prec)<Speed then GoDistance=DistanceX-Prec else if (DistanceY-Prec)<Speed then GoDistance=DistanceY-Prec else GoDistance=Speed endif endif UO.Press(Dirs[Dir],GoDistance) end sub Sub IsPass(X,Y) if UO.GetGlobal("BlindWalk") then return true endif dim Types[60] Types[1]=3 Types[2]=25 Types[3]=51 Types[4]=63 Types[5]=113 Types[6]=140 Types[7]=172 Types[8]=219 Types[9]=232 Types[10]=235 Types[11]=239 Types[12]=243 Types[13]=248 Types[14]=251 Types[15]=264 Types[16]=267 Types[17]=282 Types[18]=289 Types[19]=321 Types[20]=379 Types[21]=420 Types[22]=440 Types[23]=476 Types[24]=499 Types[25]=513 Types[26]=542 Types[27]=578 Types[28]=586 Types[29]=622 Types[30]=700 Types[31]=804 Types[32]=1740 Types[33]=1758 Types[34]=1770 Types[35]=1779 Types[36]=1779 Types[37]=1881 Types[38]=1886 Types[39]=1801 Types[40]=1805 Types[41]=1813 Types[42]=1820 Types[43]=1831 Types[44]=1833 Types[45]=1843 Types[46]=1850 Types[47]=1873 Types[48]=1876 Types[49]=1885 Types[50]=1888 Types[51]=1946 Types[52]=1969 Types[53]=2500 Types[54]=2539 for var i=1 TO 53 STEP 2 if UO.PrivateGetTile(X,Y,-1,Types[i],Types[i+1]) then return true end if next return false end sub Sub LogInfo(Line) if not UO.GetGlobal("Logging")=="0" then UO.TextOpen() UO.TextPrint(str(UO.GetX())+":"+str(UO.GetY())+" - "+Line); end if end sub Sub Abs(X) if X>0 then return X else return (-X) end if end sub ########################################## ????? ??????? 3 ########################## sub Reconnector() var ReconnectTime, RFlag ReconnectTime = '0' RFlag = 1 Repeat While (UO.ObjAtLayer('Bpack') == '') if RFlag Then ReconnectTime = MakeTime() RFlag = 0 endif Wait(1000) 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 ############################################## # Readme # ############################################## #?????? ??? ? ????? #uo.recall(RuneBook,'21') ; 1-? #uo.recall(RuneBook,'33') ; 2-? #uo.recall(RuneBook,'46') ; 3-? #uo.recall(RuneBook,'58') ; 4-? #uo.recall(RuneBook,'64') ; 5-? #uo.recall(RuneBook,'73') ; 6-? #uo.recall(RuneBook,'88') ; 7-? #uo.recall(RuneBook,'94') ; 8-? #uo.recall(RuneBook,'1025');9-? ############################################### #???????? ???? ??????? ????? ???????? ,info #?????? ??????? ,info ############################################### #ID=0x40369130 Type=0x1BDD ESVMRMD Name= #Quantity: 8 Colour: 0x0014 Layer: 0 Has: 1 #X=55 Y=76 Z=0 C=0x400BEF55 F=0x00 ############################################### #???-ID=0x40369130=?????? ????? ???????? ############################################### #?????????? ????? ????? ????? ? ???? ??????? #??????? ?????? ??? "4343 3434 YokoInjection" #?????? ??? ?????????? ???????? ????? ????????? #? ?????????,??? ?? ????? ????? #http://forum.yoko.com.ua #????????? ???????? ???????,?? ?????? ???????? #???? C:\ltitles.txt. ??????????????? ??? ? #tr0.dat ? ????????? ?????? ???????,?? ?????? #??????? ????.???????? ??? ????? ????? ??????? #(tr0.dat tr1.dat tr2.dat) #??????? ????? ? ?????? ????? C:\ #(C:\tr0.dat)(C:\tr1.dat)(C:\tr2.dat) ############################################### #??????. #??? ????????????? ??????,??? ? ?????? ???? #?????? ??????????,????? ????????? ?????????? #? ?????? ??????? ?? ???????????. #?????????? ????? ??????? ? ????????,????? ??? #?????????? ???????????? ??????? ??? ????. #???? ? ??? ?????? ???? ??? ??? ????? ??????????? #?? ????????? ???? ?? ??????? #????-?????????-????? cmd,???? ???? #????? ????? ping ? ?? ????? ??????? #?? ?????? ????? ?????? ? ??????? #?????? - Ping 89.222.192.234 #??? ????? ????? ?????? ?? ??????? #??????? ?????? ?????????? var StepTimeOut=350 #?????? ?? ??????? 300+???? ????? ?????? #??????-???? ??????? ?????=136 ?? #?????? ?????????? ????????? ???????? 300+136=436 #??? ???? ??? ????? ?????????? ?????? ??? ???? ???? #?????????? ??? ?? ??????? ????? ????? ?? ???? #? ?????????? ???????? ?? ????? ??? ???? ?????? ################################################ #PC.??????? ????????????? ?? ??????????????? ??????? #Beyonder,Edred,Mikhail,Destruction,Dark Enemy. #? ???? ??? ??? ?? ????? ??? ????? Ultima Online. #by 08 17j,2010/18:40/Luxembourg.
|