подскажите, почему скрипт не пашет(скупает только у первого вендора и стоит тупит) никак не могу разобраться..
Code: sub main() DIM rune[6] DIM ven[6] var i, n rune[1]='0x4005BFB5' ;moonglow ╤■фр тэюё Єё IP Ёєэ ъ тхэфюЁрь rune[2]='0x4005BFC5' ;moonglow2 6 °Єєъ, ьюцэю ёъюы№ъю єуюфэю rune[3]='0x4005BFAC' ;Jhelom яЁюёЄю тёх °хёЄхЁъш т ёъЁшяЄх rune[4]='0x4005C008' ;BucDen чрьхэ ■Єё эр эєцэє■ ЎшЇЁє rune[5]='0x4005BFD6' ;Shakra rune[6]='0x4005BFD9' ;nuj ;rune[7]='0x40FA2AB3' ;rune[8]='0x40F0053F' ;rune[9]='0x40E01B62'
ven[1]='0x003E160A' ; moonglow1 IP тхэфюЁют є ъюЄюЁ√ї ёъєяр■Єё Ёхуш ven[2]='0x00403929' ; moonglow2 ven[3]='0x00371C8F' ; Jhelom ven[4]='0x0013D20C' ; BucDen ven[5]='0x0018EA59' ; Shakra ven[6]='0x001E4E54' ;nuj ;ven[7]='0x00F7F78E' ;ven[8]='0x00FE4D67' ;ven[9]='0x00FE0F71'
repeat for i=1 to 6 recall(i,rune) WalkN(0,0,ven[i]) UO.buy('regs','vendor') wait(500) UO.Say("bye") UO.DeleteJournal() UO.Click(rune[i]) repeat wait(500) until UO.InJournal('jumps left') takenum() if res < 10 then ; юёЄрЄюъ чрЁ фют эр Ёєэх Mark(i,rune) endif med() next until UO.Dead() end sub ##################################### sub takenum() var ns, j, i, n var str, num num='' ns=0 n=uo.InJournal('jumps left')-1 str=uo.Journal(n) UO.Print(str) j = len( str ) - 1 for i = 0 to j
if ns==1 and str[i]<>' ' then num=num+str[i] else ns=0 endif if str[i] =='(' then ns=1 endif next res = val(num) UO.Print(str(res)) end sub ##################################### sub Recall(i,rune) var b uo.print('Recoll Rune '+str(i)) for b=1 to 10 uo.deletejournal() uo.waittargetobject(rune[i]) uo.cast('Recall',rune[i]) if WaitForRecall()==1 then return 1 end if next return 0 end sub ##################################### sub Mark(i,rune) uo.waittargetobject(rune[i]) uo.cast('Mark',rune[i]) end sub ##################################### sub WaitForRecall() var Text1=uo.getname()+": The spell fizzles." var mess='',lastX=uo.getX(),lastY=uo.getY() for var v=0 to 200 mess=uo.journal(0) if uo.Journal(0)==Text1 then return 0 end if if uo.getX()<>lastX OR uo.getY()<>LastY then return 1 end if wait(50) next return 0 end sub ###################################### sub med() VAR LastTimer while UO.Mana<60 LastTimer=UO.Timer() UO.UseSkill('Meditation') repeat wait(100) until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 UO.DeleteJournal() wait(200) wend 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 If Target<>"" Then dx=UO.GetX(Target)-UO.GetX() dy=UO.GetY(Target)-UO.GetY() 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 ######################################### sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('Backpack') end sub
|