Вот собсно скрипт. Играл на одном из шардов всё работало, перешел на другой и с распиловкой траблы...
Вот скрипт: помогите
Code: var rb = '0x77936C0C' var GlSunduk = '0x7868587F'; Сундук откуда все берем и все проверяем var carptools = '0x1030' var nognizi = '0x0F9E' var bandage = '0x0E21' var scroll = '0x1F4C' var topor = '0x0F43' var gh = '0x0F0C' var havka = '0x097B' var agiliti = '' var log = '0x1BDD' var ms1 = "уже все вырублено" var ms2 = "Lumber complit" var ms3 = "Reconnector complit" var dagger = '0x0F51';velikolepniy kinjal var MaxVes = 215; max ves s kotorim hodit 4ar, ina4e delaem doski var mr = '0x0F86' var nsh = '0x0F88' var board = '0x1BD7' var korobka = '0x78685A14' ;korobka dlya dosok var korobka_topor = '0x786858B2';korobka s toporami i rubankami var XOJIODuJIbHuK = '0x78735CC2' var maxtime = 400 var t, i , rp var x,y,xp,yp
Sub Lumberjack() ;dlya zapuska scripta zapustit' etu proceduru var i = 0 UO.UseObject(korobka_topor) wait(1000) UO.UseObject(GlSunduk) wait(1000) UO.UseObject(XOJIODuJIbHuK) wait(1000) uo.useobject('backpack') wait(1000) Uo.FindType(topor, '-1', 'backpack') while uo.findcount('finditem') > 0 Uo.FindType(topor, '-1', 'backpack') UO.MoveItem('finditem','0', korobka_topor) wait(1200) wend Uo.FindType(carptools, '-1', 'backpack') while uo.findcount('finditem') > 0 Uo.FindType(carptools, '-1', 'backpack') UO.MoveItem('finditem','0', korobka_topor) wait(1200) wend
Uo.FindType(scroll, '-1', 'backpack') while uo.findcount('finditem') > 0 Uo.FindType(scroll, '-1', 'backpack') UO.MoveItem('finditem','-1', rb) wait(1200) wend
;Uo.FindType(bandage ,'-1',GlSunduk) ;UO.Grab('20','finditem') ;wait(500) ;UO.Print("Berem 20-t bintov") UO.Print("Berem 3 toporov") i = 0 repeat Uo.FindType(topor ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1100) i =(i + 1) until i == 4 wait(1100) Uo.FindType(scroll ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1100) Uo.FindType(scroll ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1100) UO.Print("Berem 2 scrolls") Uo.FindType(carptools ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1100) Uo.FindType(carptools ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1100) UO.Print("Berem 2 carptools")
Uo.FindType(havka ,'-1',XOJIODuJIbHuK) wait(1100) uo.usetype(havka ,'-1','XOJIODuJIbHuK')
while true
vihod() recall(212,112);Rub1 rub1() GoHome() vihod() recall(212,129);Rub2 rub2() GoHome() vihod() recall(212,143);Rub3 rub3() GoHome() vihod() recall(213,158);Rub4 rub4() GoHome()
wend EndSub
sub recall(xp,yp) x = uo.getx() y = uo.gety() repeat UO.UseObject(rb) wait(1500) uo.lclick(xp,yp) wait(12000) until uo.getx() <> x and uo.gety() <> y
endsub
sub w() var z,d,f,t Uo.FindType(board, '-1', 'backpack') z = uo.getserial('finditem') Uo.FindType(board, '-1', 'ground') if uo.findcount() >0 then d = uo.getx('finditem') f = uo.gety('finditem') t = uo.getz('finditem') UO.MoveItem(z,'all',uo.getserial('finditem'),d,f,40) wait(500) uo.print(str(uo.getx(z))) endif endsub
Sub GoHome() var z,d,f,t
var board1 recall(212,97);paseka UO.UseObject(korobka_topor) wait(1000) UO.UseObject(GlSunduk) wait(300) carp(1) UO.FindType(log,'-1','backpack') while UO.FindCount('finditem') > 0 UO.FindType(log,'-1','backpack') uo.moveitem('finditem',-1,korobka) wait(1000) wend Uo.FindType(nsh, '-1', 'backpack') UO.MoveItem('finditem','0',glsunduk) wait(1000) Uo.FindType(havka, '-1', 'backpack') UO.MoveItem('finditem','0',glsunduk) wait(1000) Uo.FindType(mr, '-1', 'backpack') UO.MoveItem('finditem','0',glsunduk) wait(1000)
Uo.FindType(board, '-1', 'backpack') UO.MoveItem('finditem','0', korobka) wait(1000)
z = uo.getserial('finditem') Uo.FindType(board, '-1', 'ground') if uo.findcount() >0 then d = uo.getx('finditem') f = uo.gety('finditem') t = uo.getz('finditem') UO.MoveItem(z,'all',uo.getserial('finditem'),d,f,40) wait(1000) uo.print(str(uo.getx(z))) endif Uo.FindType(topor, '-1', 'backpack') while uo.findcount('finditem') > 0 Uo.FindType(topor, '-1', 'backpack') UO.MoveItem('finditem','0', korobka_topor) wait(1000) wend Uo.FindType(carptools, '-1', 'backpack') while uo.findcount('finditem') > 0 Uo.FindType(carptools, '-1', 'backpack') UO.MoveItem('finditem','0', korobka_topor) wait(1000) wend i = 0 repeat Uo.FindType(topor ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1000) i = (i + 1) until i == 4 i = 0 repeat Uo.FindType(carptools ,'-1',korobka_topor) UO.Grab('1','finditem') wait(1000) i = (i + 1) Uo.FindType(carptools ,'-1',korobka_topor) until i == 2 or uo.findcount() == 0
endsub
Sub Vihod() var t = uo.timer() uo.waittargetobject('0x758AD64C') uo.findtype(nognizi,-1,korobka_topor) uo.useobject(uo.getserial('finditem')) repeat wait(1000) until uo.injournal("могли") or uo.timer() >= t + 150 uo.usetype(havka) uo.lclick(320,285) EndSub
Sub rub1() var xx,yy, tile UO.Print("Faza nomber One!") UO.DeleteJournal() Rubka(3299, 1688, 2871) Rubka(3280, 1688, 2868) Rubka(3280, 1688, 2865) Rubka(3283, 1688, 2862) Rubka(3290, 1688, 2856) Rubka(3302, 1692, 2856) Rubka(3299, 1692, 2859) Rubka(3286, 1692, 2862) Rubka(3288, 1692, 2865) Rubka(3280, 1692, 2868) Rubka(3280, 1692, 2871) Rubka(3299, 1696, 2871) Rubka(3277, 1696, 2865) Rubka(3283, 1696, 2862) Rubka(3302, 1696, 2859) Rubka(3277, 1696, 2856) Rubka(3277, 1700, 2856) Rubka(3296, 1700, 2862) Rubka(3283, 1700, 2868) Rubka(3286, 1704, 2865) Rubka(3286, 1704, 2862) Rubka(3277, 1704, 2859) Rubka(3302, 1704, 2853) Rubka(3290, 1708, 2850) Rubka(3299, 1708, 2847) endsub
Sub rub2() var xx,yy, tile UO.Print("Faza nomber Two!") UO.DeleteJournal() Rubka(3299, 1712, 2862) Rubka(3283, 1712, 2859) Rubka(3296, 1712, 2856) Rubka(3280, 1712, 2853) Rubka(3288, 1712, 2850) Rubka(3280, 1716, 2853) Rubka(3283, 1716, 2859) Rubka(3286, 1716, 2862) Rubka(3293, 1724, 2859) Rubka(3277, 1724, 2856) Rubka(3280, 1728, 2859) Rubka(3293, 1728, 2856) Rubka(3296, 1732, 2856) Rubka(3277, 1732, 2853) Rubka(3277, 1732, 2850) Rubka(3277, 1728, 2850) Rubka(3283, 1732, 2847) Rubka(3290, 1732, 2844) Rubka(3299, 1736, 2847) Rubka(3296, 1740, 2850) Rubka(3280, 1740, 2847) Rubka(3277, 1740, 2844) Rubka(3293, 1740, 2841) Rubka(3293, 1740, 2838) Rubka(3290, 1740, 2835) Rubka(3299, 1740, 2832) EndSub
sub rub3() var xx,yy, tile UO.Print("Faza nomber Thre!") UO.DeleteJournal() Rubka(3230, 1749, 2846) Rubka(3293, 1748, 2844) Rubka(3290, 1748, 2838) Rubka(3280, 1748, 2832) Rubka(3283, 1752, 2835) Rubka(3299, 1752, 2838) Rubka(3277, 1752, 2841) Rubka(3277, 1752, 2844) Rubka(3293, 1760, 2841) Rubka(3296, 1760, 2838) Rubka(3288, 1756, 2838) Rubka(3288, 1756, 2835) Rubka(3296, 1760, 2835) Rubka(3283, 1760, 2832) Rubka(3277, 1764, 2835) Rubka(3293, 1764, 2832) Rubka(3283, 1764, 2829) Rubka(3290, 1768, 2829) Rubka(3280, 1768, 2826) Rubka(3296, 1772, 2823) Rubka(3296, 1768, 2820) Rubka(3277, 1764, 2820) Rubka(3277, 1760, 2820) Rubka(3302, 1760, 2817) Rubka(3293, 1764, 2817) Rubka(3293, 1768, 2817) Rubka(3293, 1772, 2817) Rubka(3296, 1776, 2817) Rubka(3296, 1780, 2817) Rubka(3290, 1784, 2817) Rubka(3288, 1788, 2817) endsub
sub rub4() var xx,yy, tile UO.Print("Faza nomber Thre!") UO.DeleteJournal() Rubka(3286, 1644, 2853) Rubka(3283, 1644, 2856) Rubka(3293, 1644, 2859) Rubka(3299, 1644, 2862) Rubka(3288, 1644, 2865) Rubka(3286, 1644, 2871) Rubka(3302, 1644, 2874) Rubka(3283, 1644, 2877) Rubka(3288, 1648, 2880) Rubka(3302, 1648, 2874) Rubka(3296, 1648, 2871) Rubka(3280, 1648, 2868) Rubka(3302, 1648, 2865) Rubka(3290, 1652, 2868) Rubka(3288, 1652, 2871) Rubka(3293, 1652, 2877) Rubka(3286, 1652, 2880) Rubka(3296, 1656, 2880) Rubka(3299, 1656, 2877) Rubka(3280, 1660, 2880) Rubka(3302, 1660, 2877) Rubka(3277, 1664, 2880) Rubka(3302, 1664, 2877) Rubka(3288, 1664, 2874) Rubka(3302, 1668, 2874) Rubka(3280, 1672, 2877) Rubka(3302, 1672, 2874) Rubka(3299, 1672, 2871) Rubka(3283, 1672, 2868) Rubka(3283, 1672, 2865) Rubka(3302, 1672, 2862) Rubka(3299, 1672, 2859) Rubka(3280, 1672, 2856) Rubka(3277, 1672, 2853) Rubka(3293, 1672, 2850) endsub
Sub Rubka(tile, xx, yy)
UO.DeleteJournal() CheckLag() if uo.gethp() == uo.getmaxhp() then Walker(xx,yy) wait(777) t = uo.timer() UO.WaitTargetTile(Str(tile), Str(xx), Str(yy), '0') UO.UseType(topor) repeat wait(1000) until UO.InJournal(ms2) OR UO.InJournal(ms1) OR (t + maxtime) < UO.Timer() OR UO.InJournal(ms3) or uo.gethp() < uo.getmaxhp() havka() carp(0) UO.DeleteJournal() else endif EndSub
Sub Carp(x) dim ColorLog[7] ColorLog[1]= '0x0000' ColorLog[2]= '0x01BF';good ColorLog[3]= '0x0096' ColorLog[4]= '0x0164' ColorLog[5]= '0x01C3' ColorLog[6]= '0x0030' ColorLog[7]= '0x0028'
var colorchoice, k if x == 0 then IF UO.Weight > MaxVes Then
for k=1 to 7 UO.FindType(log,ColorLog[k],'backpack') if uo.getquantity(uo.getserial('finditem')) > 0 then uo.waittargetobject(uo.getserial('finditem')) UO.DeleteJournal() UO.UseType(carptools) wait(1500) UO.LClick(112,120);materials wait(1000) UO.LClick(73,178);doski wait(15000) UO.LClick(492,431);otmena endif next EndIF else
for k=1 to 7 UO.FindType(log,ColorLog[k],'backpack') if uo.getquantity(uo.getserial('finditem')) > 0 then uo.waittargetobject(uo.getserial('finditem')) UO.DeleteJournal() UO.UseType(carptools) wait(1500) UO.LClick(112,120);materials wait(1000) UO.LClick(73,178);doski wait(15000) UO.LClick(492,431);otmena endif next endif Endsub
Sub shaft() UO.FindType(log,'-1','backpack') while UO.FindCount() > 0 UO.DeleteJournal() UO.CancelMenu() UO.WaitTargetType(log) UO.UseType(dagger) UO.WaitMenu("Arrows", "Make shaft", "Arrows", "Make shaft");
wait(2000) wend endsub
Sub hill() Var shit = '0x1B76' Var kirka = '0x0F51 ' Uo.Equipt('Rhand', kirka) Uo.Equipt('Lhand', shit)
repeat If UO.GetHP() < UO.GetMaxHp()-40 Then uo.waittargetobject('self') Uo.UseType('0x0E21') Repeat ;Uo.Press(120) wait(3500) Uo.Equipt('Rhand', kirka) Uo.Equipt('Lhand', shit) wait(4000) Until UO.GetHP() >= UO.GetMaxHp() - 10 EndIf wait(1000) Until Uo.Dead() EndSub ;var Prec=1 # Как близко следует подойти к цели (Precision) ;var MaxTraceDistance=5 # Максимальная длина обхода. Желательно ставить с расчета возможных препятсвий. Если ставить очень большие числа, кодилка может пойти в обход пол мира чтобы дойти к соседнему дереву. ;var Speed=2 # Длина шага. Сколько шагов делать за раз. Выше 3 ставить смысла нет. Тоесть тупое умножение шагов. Для ламбера идеально 3, для майнинга - 1. ;var StepTimeOut=400 # Если уперлись в неопознанный обьект, сколько мсек ждать сдвига с места. Если по простому - таймаут шага. Если поставить сильно маленькие, ходилка начнет трассировать пустые места. ;UO.SetGlobal("Logging","1") # - показывать отладочные сообщения. ;UO.SetGlobal("BlindWalk","0") # - не использовать АСМ, а использовать ходьбу наощупь. ;В функции IsPass, содержиться список проходимых тайлов. ;Walker(X,Y) - идем к цели с координатами X,Y. Ничего не возвращает. ;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 Prec=1 var MaxTraceDistance=9 var Speed=1 var StepTimeOut=1000
Sub Walker(GoX,GoY) UO.SetGlobal("Logging","0") UO.SetGlobal("BlindWalk","0") var LastDir UO.SetGlobal("GlobalGoX",str(GoX)) UO.SetGlobal("GlobalGoY",str(GoY)) while not IsEnd(GoX,GoY) LogInfo('Just walking') LastDir=GoUntilHit(GoX,GoY) if not IsEnd(GoX,GoY) then LogInfo('Tracing') FullAroundTrace(LastDir,GoX,GoY) end if wend end sub
Sub FullAroundTrace(StartDir,GoX,GoY) var LineX=UO.GetX() var LineY=UO.GetY() var CurDir=StartDir var Direction=CountDirection(GoX,GoY,CurDir) var StartX,StartY var MovesDone=0 repeat StartX=UO.GetX() StartY=UO.GetY() CurDir=Tracer(CurDir,Direction) if (CurDir==GetDir(GoX,GoY)) then return endif if MovesDone>0 and PrevMoveCross(GetDirToDir(UO.GetDir()),LineX,LineY,GoX,GoY,StartX,StartY) then return end if MovesDone=MovesDone+1 CurDir=AddToDir(CurDir,-Direction) until MovesDone>MaxTraceDistance end sub
Sub CountDirection(GoX,GoY,StartDir) var GoDir=GetDir(GoX,GoY) 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) 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) end sub
Sub LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4) 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) 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) var LastDir LastDir=GetDir(GoX,GoY) var CouldMove repeat LastDir=GetDir(GoX,GoY) if LastDir<>0 and not IsEnd(GoX,GoY) then CouldMove=TryDir(LastDir) end if until LastDir==0 or IsEnd(GoX,GoY) or not CouldMove return LastDir end sub
Sub IsEnd(GoX,GoY) 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) 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) var CurDir=StartDir var Result repeat Result=TryDir(CurDir) if not Result then CurDir=AddToDir(CurDir,Direction) end if until Result return Result end sub
Sub AddToDir(Dir,Cnt) 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) 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(UO.asmMapGetTile(GoX,GoY,0)) then LogInfo(str(UO.asmMapGetTile(GoX,GoY,0))+' is not passable') return false end if return TurnAndGoDir(Dir) 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) var StartDir=GetDirToDir(UO.GetDir()) var StartX=UO.GetX() var StartY=UO.GetY() var EndDir var Counter=0 GoDir(Dir) repeat EndDir=GetDirToDir(UO.GetDir()) wait(100) Counter=Counter+1 until StartDir<>EndDir or StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=8 if Counter>=8 then return 0 end if if StartY<>UO.GetY() or StartX<>UO.GetX() then return Dir else GoDir(Dir) repeat wait(100) Counter=Counter+1 until StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/100 if Counter>=StepTimeOut/100 then LogInfo('Step timeout reached') return 0 else return Dir end if end if end sub
sub Test2() Tracer(7,1) end sub
Sub GetDirToDir(GotDir) var ChangedDir=-GotDir ChangedDir=AddToDir(ChangedDir,5) return ChangedDir end sub
Sub DirToInj(Dir) var OutDir if Dir==1 then OutDir=1 end if if Dir==2 then OutDir=2 end if if Dir==3 then OutDir=3 end if if Dir==4 then OutDir=6 end if if Dir==5 then OutDir=9 end if if Dir==6 then OutDir=8 end if if Dir==7 then OutDir=7 end if if Dir==8 then OutDir=4 end if return OutDir end sub
Sub GoDir(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
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(ID) if UO.GetGlobal("BlindWalk") then return true endif dim Types[60] Types[0]=4 Types[1]=3 Types[2]=5 Types[3]=6 Types[4]=203 Types[5]=197 Types[6]=212 Types[7]=242 Types[8]=241 Types[9]=196 Types[10]=198 Types[11]=199 Types[12]=1713 Types[13]=1724 Types[14]=243 Types[15]=240 Types[16]=219 Types[17]=209 Types[18]=214 Types[19]=57 Types[20]=24 Types[21]=52 Types[22]=22 Types[23]=56 Types[24]=23 Types[25]=25 Types[26]=58 Types[27]=53 Types[28]=61 Types[29]=59 Types[30]=580 Types[31]=585 Types[32]=581 Types[33]=582 Types[34]=583 Types[35]=584 Types[36]=596 Types[37]=152 Types[38]=81 Types[39]=93 Types[40]=95 Types[41]=83 Types[42]=142 Types[43]=503 Types[44]=141 Types[45]=143 Types[46]=500 Types[47]=1088 Types[48]=1089 Types[49]=1086 Types[50]=155 Types[51]=501 Types[52]=98 Types[53]=90 Types[54]=502 Types[55]=1087 Types[56]=598 Types[57]=582 Types[58]=200 Types[59]=216 for var i=0 to 59 if Types[i]==ID 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())+" - "+str(Line)); end if end sub
Sub Abs(X) if X>0 then return X else return (-X) end if end sub
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 fishing') UO.TextOpen() UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) ;UO.Say(ms3) carp() UO.Exec('terminate lumberjack') gohome() wait(2000) rp = 1 UO.Exec('exec lumberjack') 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
sub CheckLag() if uo.Waiting()>0 then uo.Exec('canceltarget') end if uo.Click('backpack') repeat wait(50) until uo.InJournal('backpack') end sub
sub havka()
If UO.InJournal("Вам не мешало") or UO.InJournal("быка")or UO.InJournal("голод") then repeat uo.findtype(havka,-1,'backpack') UO.UseType(havka) wait(400) until uo.injournal("сытым") or uo.injournal("елись") or uo.findcount() == 0 else endIf uo.deletejournal() wait(50) endsub
sub scroll() uo.exec('set finddistance 1') var scrol = '0x0E34' var i,x,y,z while true if uo.weight >=1990 then uo.findtype(scrol,-1,'ground') if uo.findcount() > 0 then i = uo.getserial('finditem') x = uo.getx(i) y = uo.gety(i) z = uo.getz(i) uo.findtype(scrol,-1,'backpack') uo.moveitem(uo.getserial('finditem'),-1,i,x,y,z) wait(5000) else uo.findtype(scrol,-1,'backpack') uo.drophere('finditem') endif else wait(5000) endif wend endsub
|