Помогите подправить скриптик.....

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Balu
Posts: 76
Joined: 2004-10-30 21:28:19

Помогите подправить скриптик.....

Post by Balu »

Мининг по скале! проблема в том, что с крипт не скидывает руду при перевесе а идет и копает до конечной точки, как только дошёл до последней координаты идёт выкладывать руду, выложил и опять начинает с первой! Подправте пожалуйста что бы он при перевесе шел выкладывать руду а после разгрузки шел копать координату на которой закончил! заранее спасибо

Code: Select all

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 

Last edited by Balu on 2006-02-06 12:36:44, edited 2 times in total.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

а тебе зачем именно так? если у тебя капалка вдоль скалы пусть так и будет
если же невтерпеж то вот функция можешь добавить ее checklag()

Code: Select all

sub maxvess()
var maxves=700#<-------сюда впиши вес перегруза
var x1,y2
if uo.weight>=maxves then
 x1=uo.getx()
 y1=uo.gety()
 go(x,y,0)#<----------координаты рядом с сундуком
 unload()#<-----------функция на разгруз
 go(x1,y1,1)#<-------возвращаемся откуда ушли( не менять)
endif
endsub
Balu
Posts: 76
Joined: 2004-10-30 21:28:19

Post by Balu »

Question wrote:а тебе зачем именно так? если у тебя капалка вдоль скалы пусть так и будет
если же невтерпеж то вот функция можешь добавить ее checklag()

Code: Select all

sub maxvess()
var maxves=700#<-------сюда впиши вес перегруза
var x1,y2
if uo.weight>=maxves then
 x1=uo.getx()
 y1=uo.gety()
 go(x,y,0)#<----------координаты рядом с сундуком
 unload()#<-----------функция на разгруз
 go(x1,y1,1)#<-------возвращаемся откуда ушли( не менять)
endif
endsub
Тема в том, что чар не разгружается когда накопает максимум веса, и продолжает копать и вся руда сыпется под ноги, поэтому и нужен этот саб что ты написал, только вот я не догнал куда его вставить нужно?
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

Code: Select all

var tSeif='000000000' 
var Kirka='0x0F39' 
var maxves=700 ; sdelai chyt pomenshe

var xs=34 ;koordinatu y syndyka
var ys=89 ;

var ma

sub main() 
 while not uo.dead() 
 go(x,y,k)
 ........ 
wend 
endsub 

sub minround() 
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) 
  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))  
  maxvess()
 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 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 maxvess()
var x1,y2
if uo.weight>=maxves then
 x1=uo.getx()
 y1=uo.gety()
 go(xs,ys,0)
 unload()
 go(x1,y1,1)
endif
endsub
Balu
Posts: 76
Joined: 2004-10-30 21:28:19

Post by Balu »

короче фигня такая! когда идет капает по координатам всё нормально, но когда идёт для выгрузки или обратно к последней точке ходилка не может обойти некоторые припятствия! народ помогите плиз!?
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

Balu wrote:короче фигня такая! когда идет капает по координатам всё нормально, но когда идёт для выгрузки или обратно к последней точке ходилка не может обойти некоторые припятствия! народ помогите плиз!?
выход один искать хорошую ходилку или путь к точке разделять на несколько стационарных стабильных точек
Balu
Posts: 76
Joined: 2004-10-30 21:28:19

Post by Balu »

А можно ли сделать что бы чар при выгрузе и при возвращении на точку у которой закончил шёл по уже готовым координатам по тем которые я задал для копания? т.е. чар будет ходить строго по координатам вдоль скалы, у меня координаты проставлены через шаг!Сундук у меня стоит рядом с начальной координатой для копания! я думаю это решило бы проблему с обходом припятствий! А? народ помогите!!!!
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

если доверишься мне то могу к тебе прийти и написат для твоей капалки если ты на дрв играешь
Balu
Posts: 76
Joined: 2004-10-30 21:28:19

Post by Balu »

Question wrote:если доверишься мне то могу к тебе прийти и написат для твоей капалки если ты на дрв играешь
Доверюсь не вопрос только я на оскоме
Post Reply