Мининг по скале! проблема в том, что с крипт не скидывает руду при перевесе а идет и копает до конечной точки, как только дошёл до последней координаты идёт выкладывать руду, выложил и опять начинает с первой! Подправте пожалуйста что бы он при перевесе шел выкладывать руду а после разгрузки шел копать координату на которой закончил! заранее спасибо
 Code: var tSeif=''  var Kirka='0x0E85' 
  sub main()   while not uo.dead()    go(x,y,1)#k=1 капаем k<>1 холостой ход
    
 
    go(x,y,0)#подходим к сундуку   UnLoad()#выкидываем руду  wend  endsub 
  sub minround()  VAR TileNum = '-1'  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 ms8 = "You put the Iron Ore" VAR ms9 = "You have no line of sight to that location" VAR ms10 = "You put the Agapite Ore" VAR ms11 = "You put the Orion Ore" VAR ms12 = "You put the Shadow Ore" VAR ms13 = "You put the Crystal Ore" VAR ms14 = "You put the Golden Ore" VAR ms15 = "You put the Mytheril Ore" VAR ms16 = "You put the Magma Ore" VAR ms17 = "You put the Copper Ore" VAR ms18 = "You put the Valorite Ore" VAR ms19 = "You put the Verite Ore" VAR ms20 = "You put the Dwarf Ore" VAR ms21 = "You put the Silver Ore"
  var kolr,per  for y=-2 to 2  for x=-2 to 2     k = 0    repeat      UO.DeleteJournal()      t = UO.Timer()      k = k + 1      if uo.targeting() then       UO.CancelTarget()      endif      CheckLag()      wait(300)      UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)      UO.UseType( Kirka )      repeat       wait(300)      if Uo.injournal("You have found some") then      podbor()      end if     until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8) OR UO.InJournal(ms9) OR UO.InJournal(ms10) OR UO.InJournal(ms11) OR UO.InJournal(ms12) OR UO.InJournal(ms13) OR UO.InJournal(ms14) OR UO.InJournal(ms15) OR UO.InJournal(ms16) OR UO.InJournal(ms17) OR UO.InJournal(ms18) OR UO.InJournal(ms19) OR UO.InJournal(ms20) OR UO.InJournal(ms21) OR ((t + MaxTime) < UO.Timer())      uo.findtype('0x19B9','-1','backpack')      kolr=uo.getquantity('finditem')      per=uo.str*4+20-uo.weight      uo.print("kol-vo irona " + str(kolr) + " do perevesa " + str(per))       until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms10) AND NOT UO.InJournal(ms11) AND NOT UO.InJournal(ms12) AND NOT UO.InJournal(ms13) AND NOT UO.InJournal(ms14) AND NOT UO.InJournal(ms15) AND NOT UO.InJournal(ms16) AND NOT UO.InJournal(ms17) AND NOT UO.InJournal(ms18) AND NOT UO.InJournal(ms19) AND NOT UO.InJournal(ms20) AND NOT UO.InJournal(ms21)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 UnLoad()  var i  DIM Item[13] 
  Item[1]=0x19B9 ; >3 ore  Item[2]=0x19B7 ; 1 ore  Item[3]=0x19BA ; 2 ore  Item[4]=0x19B8 ; 3 ore  Item[5]=0x0F11 ; saphires  Item[6]=0x0F16 ; amethysts  Item[7]=0x0F18 ; tourmalines  Item[8]=0x0F15 ; citrines  Item[9]=0x0F10 ; emeralds  Item[10]=0x0F0F ; star sapphires  Item[11]=0x0F26 ; diamonds  Item[12]=0x0EED ; gold 
  for i = 1 to 12  UO.FindType(Item[i], '-1', 'backpack')  while UO.GetQuantity('finditem') > 0  UO.MoveItem('finditem','-1',tSeif)  Wait(1000)  CheckLag()  UO.FindType(Item[i],'-1','backpack')  wend  next  end sub
  sub podbor()  uo.findtype(0x19B9,-1,'ground')  uo.grab(0,'finditem') wait(1000) uo.findtype(0x19B8,-1,'ground')  uo.grab(0,'finditem') wait(1000) uo.findtype(0x19BA,-1,'ground')  uo.grab(0,'finditem') wait(1000) uo.findtype(0x19B7,-1,'ground')  uo.grab(0,'finditem') wait(1000) end sub 
 
  
		
		 |