Здавствуйте.Помогите пожалуйста поправить скриптик.
Code: sub main() while not uo.dead()
go(1455,1529,0) go(1455,1529,1) go(1453,1529,1) go(1452,1529,1) go(1450,1530,1) go(1448,1528,1) go(1447,1527,1) go(1445,1526,1) go(1444,1524,1) go(1446,1522,1) go(1448,1522,1) go(1451,1521,1) go(1452,1520,1) go(1452,1518,1) go(1450,1517,1) go(1448,1515,1) go(1450,1513,1) go(1450,1511,1) go(1450,1509,1) go(1451,1507,1) go(1453,1505,1) go(1455,1505,1) go(1457,1506,1) go(1455,1505,1) go(1453,1505,1) go(1451,1507,1) go(1450,1509,1) go(1450,1511,1) go(1450,1513,1) go(1448,1515,1) go(1450,1517,1) go(1452,1518,1) go(1452,1520,1) go(1451,1521,1) go(1448,1522,1) go(1446,1522,1) go(1444,1524,1) go(1445,1526,1) go(1447,1527,1) go(1448,1528,1) go(1450,1530,1) go(1452,1529,1) go(1453,1529,1) wend
endsub
sub minround()
VAR Kirka = '0x0e85' VAR TileNum = '1339' VAR x, y, t, k VAR MaxTime = 100 VAR ms1 = "There is no ore here to mine" VAR ms2 = "You can't use" VAR ms3 = "You put the" VAR ms4 = "You loosen some rocks" VAR ms5 = "You are too far away" VAR ms6 = "Try mining in rock" VAR ms7 = "You can't see that" var kolr,per for y=-1 to 1 for x=-1 to 1
k = 0 repeat UO.DeleteJournal()
t = UO.Timer() k = k + 1 if uo.targeting() then UO.CancelTarget() endif CheckLag() wait(300) ToHide() UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) UO.UseType( Kirka ) repeat wait(300) 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 UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer()) uo.findtype('0x19B9','-1','backpack') kolr=uo.getquantity('finditem') per=uo.str*4+30-uo.weight uo.print("kol-vo irona " + str(kolr) + " do perevesa " + str(per)) if per<=30 then ToRecall() wait(700) endif until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
next next endsub
Sub go(x,y,k)
VAR i VAR dir,ldir,rdir,key,olddir VAR dx,dy,Exit=0 VAR CacheLimit=9,CacheIndex="Text" DIM CacheX[10], CacheY[10]
CacheX[0]="Test" While Exit<>1
dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 Then Exit=1 Endif
If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then ; GoSE dir=3 ldir=2 rdir=4 key=40 ; DownArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=0 rdir=1 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=5 rdir=6 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx>0 AND dy<0 Then ; GoNE dir=1 ldir=0 rdir=2 key=39 ; RightArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=6 rdir=7 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 AND dy>0 Then ; GoSW dir=5 ldir=4 rdir=6 key=37 ; LeftArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==6 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 AND dy<0 Then ; GoWN dir=7 ldir=6 rdir=0 key=38 ; UpArrow olddir=UO.GetDir() If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then If olddir==0 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif
If dx<>0 AND dy==0 Then If dx>0 Then ; GoE dir=2 key=34 ; PgDown olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=3 rdir=4 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoNE dir=1 ldir=1 rdir=0 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dx<0 Then ; GoW dir=6 key=36 ; Home key olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==0 Then ; GoWN dir=7 ldir=7 rdir=0 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=4 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif
If dx==0 AND dy<>0 Then If dy>0 Then ; GoS dir=4 key=35 ; End If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoSE dir=3 ldir=2 rdir=3 key=40 ; DownArrow While UO.GetDir()<>3 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoSW dir=5 ldir=6 rdir=5 key=37 ; LeftArrow While UO.GetDir()<>5 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif
If dy<0 Then ;GoN dir=0 key=33 ; PgUp olddir=UO.GetDir() If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then If olddir==2 Then ; GoNE dir=1 ldir=1 rdir=2 key=39 ; RightArrow While UO.GetDir()<>1 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Else ; GoWN dir=7 ldir=7 rdir=6 key=38 ; UpArrow While UO.GetDir()<>7 StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Wend Endif Endif Endif Endif Wend if k==1 then minround() endif end sub
Sub StepEdit(x,y,dir,key) VAR walkwait=300 VAR ErrLevel=0 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() If x==UO.GetX() AND y==UO.GetY() Then ;zatik ErrLevel=1 Endif Endif Return ErrLevel end sub
Sub StepArrow(x,y,dir,ldir,rdir,key) VAR walkwait=300 VAR ErrLevel=0 If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then CheckLag() Endif Endif
If UO.GetX()==x AND UO.GetY()==y Then UO.Press(key) wait(walkwait) If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then CheckLag() If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then ; zatik ErrLevel=1 Endif Endif Endif Return ErrLevel end sub
Sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') end sub Sub ToHide() var CheckTime while NOT UO.Hidden() UO.Print('Hidden...') UO.Exec("warmode 0") wait(1000) UO.UseSkill('Stealth') CheckTime=UO.Timer() REPEAT wait(300) Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead() Wend End sub
sub ToRecall() RecallToHome() wait (10000) DropOre() wait (10000) RecallToOre() wait (10000) end sub
sub RecallToHome() uo.Print('Прыгаем Домой.') uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 ) end sub
sub RecallToOre() uo.Print('Прыгаем в Пещеру.') uo.exec("recall Runebook 94") ; домой ( в рунбуке слот 8 ) end sub
sub DropOre() VAR Chest='0x400AFA2F' var o,exit dim Ore[14] Ore[0]=0x19B9 Ore[1]=0x19B7 Ore[2]=0x19BA Ore[3]=0x19B8 Ore[4]=0x0F11 Ore[5]=0x0F16 Ore[6]=0x0F18 Ore[7]=0x0F15 Ore[8]=0x0F10 Ore[9]=0x0F0F Ore[10]=0x0F26 Ore[11]=0x1F4C Ore[12]=0x0EED Ore[13]=0x0F20 ToHide() if uo.Waiting() then uo.CancelTarget() end if uo.SetReceivingContainer('Chest') wait(500) for o=0 to 13 exit=0 repeat uo.FindType(Ore[o]) if uo.GetQuantity('finditem')>0 then uo.Grab('0','finditem') wait(1500) else exit=1 end if until exit==1 next uo.UnSetReceivingContainer('Chest') end sub
Минут 5 копает потом выдает ошибку.Помогите пожалуйста.
|