Page 1 of 1

DrW. Fishing.

Posted: 2007-08-30 16:01:42
by Owner
Все привет. На ДрВ перешел недавно. Играл ранее на асисте на буржуйском шарде.

Если вдруг у кого есть скрипт, какой я опишу ниже, или быть может кто напишет, пожалуйста, поделитесь.

Чар ходит по берегу, от точки к точке. (где-то видел пример с trip())
Пытается ловить только в воде. (тоже на форуме видел такой способ ловли)
Подбирает с пола только карты.
Когда пройдет все точки (штук 15) - телепортируется к сейфу.
В сейфе лежит 2 сумки: с мешками и пустая. Достаёт мешок и забивает его картами. Когда карт становится 255 - кладёт мешок в пустую сумку и достаёт новый.
Ещё чтобы в паке лежал еда, а когда чар хоть чуть-чуть проголодается - он её ел. (.hungry не работает).
Ну и наконец реконектор.

Заранее спасибо. Очень надеюсь на помощь.

Posted: 2007-08-30 20:46:50
by Question_GimFlex
я писал такой скрипт для дрв для себя и только для себя :roll: все как ты говоришь :roll: даже все места хотьбы уже промарчены :roll: я там не ловлю уже , так что осталось сойтись в цене :oops: :lol:

Posted: 2007-08-30 20:59:19
by I'm
Question_GimFlex wrote:я писал такой скрипт для дрв для себя и только для себя :roll: все как ты говоришь :roll: даже все места хотьбы уже промарчены :roll: я там не ловлю уже , так что осталось сойтись в цене :oops: :lol:
Давай сразу договоримся... Предложения такого рода в ПМ.

Posted: 2007-08-30 21:19:28
by Question_GimFlex
I'm wrote:
Question_GimFlex wrote:я писал такой скрипт для дрв для себя и только для себя :roll: все как ты говоришь :roll: даже все места хотьбы уже промарчены :roll: я там не ловлю уже , так что осталось сойтись в цене :oops: :lol:
Давай сразу договоримся... Предложения такого рода в ПМ.


да не моя цель не продават ьскрипт а поставить в изветность что его можно найти :)

Posted: 2007-08-31 07:40:16
by Owner
Question_GimFlex wrote:я писал такой скрипт для дрв для себя и только для себя :roll: все как ты говоришь :roll: даже все места хотьбы уже промарчены :roll: я там не ловлю уже , так что осталось сойтись в цене :oops: :lol:
На ДРВ я только пришел. Если скрипт работает - и точно такой, как я описал - через недельку с меня 2кк :)

Posted: 2007-08-31 12:30:09
by Question_GimFlex
Owner wrote:
Question_GimFlex wrote:я писал такой скрипт для дрв для себя и только для себя :roll: все как ты говоришь :roll: даже все места хотьбы уже промарчены :roll: я там не ловлю уже , так что осталось сойтись в цене :oops: :lol:
На ДРВ я только пришел. Если скрипт работает - и точно такой, как я описал - через недельку с меня 2кк :)


на нем за 2 дня 2кк сделать можно :wink:

Posted: 2007-08-31 16:51:56
by HellFire
Твоя цена?) :?:

Posted: 2007-08-31 18:57:14
by Question_GimFlex
запусчкать в веспере у банка точнее за банком

Code: Select all

var schet
sub main()
var time,kol=0
while not uo.dead()
 unload()
 time=MakeTime()
 uo.textprint("начало цикла "+time)
 go(2868,670,1)
 go(2865,682,0)
 go(2863,682,1)
 go(2866,684,0)
 go(2860,697,1)
 go(2871,701,0)
 go(2861,710,1)
 go(2847,715,1)
 go(2864,723,0)
 go(2867,746,0)
 go(2841,746,1)
 go(2855,756,1)
 go(2863,754,0)
 go(2871,757,1)
 go(2883,753,0)
 go(2883,776,1)
 go(2884,784,0)
 go(2900,779,1)
 go(2921,781,1)
 go(2931,789,0)
 go(2939,781,1)
 go(2933,789,0)
 go(2931,792,0)
 go(2927,803,1)
 go(2917,812,0)
 go(2917,832,1)
 go(2917,841,0)
 go(2925,843,0)
 go(2928,844,0)
 go(2930,845,0)
 go(2931,848,0)
 go(2945,846,1)
 go(2957,848,0)
 go(2956,833,0)
 go(2947,822,1)
 go(2947,805,1)
 go(2965,801,1)
 go(2973,808,0)
 go(2973,787,1)
 go(2973,768,1)
 go(2981,768,0)
 go(2981,746,1)
 go(2981,738,0)
 go(2959,738,1)
 go(2959,716,0)
 go(2946,716,1)
 go(2946,707,0)
 go(2927,707,1)
 go(2912,708,0)
 go(2913,689,0)
 go(2898,670,0)
 go(2891,665,0)
 go(2887,669,0)
 uo.findtype('0x14EB','-1','backpack')
 kol=uo.findcount()
 uo.textprint("выловлено карт "+str(kol))
wend
endsub

Sub fish()
var mx,my,mz,i,j,inFishing=0
var spining='0x0DBF'
var map='0x14EB'
DIM text[6]
 text[0] = 'You pull out a'
 text[1] = 'You fish a while'
 text[2] = 'That is too far away'
 text[3] = 'Try fishing in water'
 text[4] = 'There are no fish here'
 text[5] = 'location'
 text[6] = 'return'
var ms1="Prize"
var ms2="Truly"
var ms3="treasure"
var ms4="fishing net"
uo.set('finddistance','1')
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-6 to mx+6
 for j = my -6 to my+6
  if IsWater(i,j) then
   inFishing=0
   while inFishing==0
    UO.DeleteJournal()
    UO.Waittargettile("1341", str(i), str(j), str(mz))
    UO.Usetype(spining)
    repeat
     wait(50)
    Until UO.InJournal(text[0]) OR UO.InJournal(text[1]) OR UO.InJournal(text[2]) OR UO.InJournal(text[3]) OR UO.InJournal(text[4]) OR UO.InJournal(text[5]) OR UO.InJournal(text[6])
    if not UO.InJournal(text[1]) then
     inFishing=1
    endif
   wend
   uo.findtype(map,'-1','ground')
   if uo.findcount() then
    uo.moveitem('finditem','1','backpack')
    wait(500)
   endif
  endif
  UO.DeleteJournal()
 next
 uo.resend()
next
end sub

Sub IsWater(X,Y)
 if UO.PrivateGetTile(X, Y, -1, 6039, 6065) then
  return 1
 else
  return 0
 endif
end sub

sub unload()
var cont
var map='0x14EB'
var mesh='0x0E75'
var sm,fl=1,kol
uo.ignorereset()
uo.say("bank")
wait(1000)
cont=uo.getserial('lastcontainer')
uo.findtype(map,'-1','backpack')
while uo.findcount()
   fl=1
   uo.findtype(mesh,'-1',cont)
   sm=uo.getserial('finditem')
   uo.useobject(sm)
   wait(500)
   uo.findtype(map,'-1',sm)
   while fl<>0
    uo.findtype(map,'-1','backpack')
    if not uo.findcount() then
     fl=0
    endif
    uo.findtype(map,'-1',sm)
    kol=uo.findcount()
    if kol<250 then
      uo.findtype(map,'-1','backpack')
      if uo.findcount() then
       uo.moveitem('finditem','1',sm)
       wait(700)
      endif
     else
      fl=0
      uo.ignore(sm)
    endif
   wend
   uo.findtype(map,'-1','backpack')
wend   
endsub

Sub go(x,y,k)
   VAR i,m,p
   VAR dir,ldir,rdir,key,olddir
   VAR dx,dy,Exit=0
   VAR CacheLimit=9,CacheIndex="Text"
   DIM CacheX[10], CacheY[10]
   uo.resend()
   CacheX[0]="Test"
   While Exit<>1   
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         ;for m=-1 to 1
          ;for p=-1 to 1
           If dx==0 AND dy==0 Then
            Exit=1
           Endif
          ;next
         ;next
      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
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         ;for m=-1 to 1
          ;for p=-1 to 1
           If dx==0 AND dy==0 Then
            Exit=1
           Endif
          ;next
        ; next
   Wend
   if k==1 then
    fish()
   endif
end sub


Sub StepEdit(x,y,dir,key)
   VAR walkwait=100
   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
         ErrLevel=1
      Endif
   Endif
   Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
   VAR walkwait=100
   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           
            ErrLevel=1
         Endif
      Endif
   Endif
   Return ErrLevel
end sub

Sub CheckLag()
   uo.DeleteJournal()
   uo.Click('backpack')
   repeat
      wait(10)
   until uo.InJournal('backpack') or UO.Dead()
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 = T
RETURN Ret
end sub

Posted: 2007-08-31 19:18:56
by Owner
Question_GimFlex wrote:запусчкать в веспере у банка точнее за банком

Code: Select all

var schet
sub main()
var time,kol=0
while not uo.dead()
 unload()
 time=MakeTime()
 uo.textprint("начало цикла "+time)
 go(2868,670,1)
 go(2865,682,0)
 go(2863,682,1)
 go(2866,684,0)
 go(2860,697,1)
 go(2871,701,0)
 go(2861,710,1)
 go(2847,715,1)
 go(2864,723,0)
 go(2867,746,0)
 go(2841,746,1)
 go(2855,756,1)
 go(2863,754,0)
 go(2871,757,1)
 go(2883,753,0)
 go(2883,776,1)
 go(2884,784,0)
 go(2900,779,1)
 go(2921,781,1)
 go(2931,789,0)
 go(2939,781,1)
 go(2933,789,0)
 go(2931,792,0)
 go(2927,803,1)
 go(2917,812,0)
 go(2917,832,1)
 go(2917,841,0)
 go(2925,843,0)
 go(2928,844,0)
 go(2930,845,0)
 go(2931,848,0)
 go(2945,846,1)
 go(2957,848,0)
 go(2956,833,0)
 go(2947,822,1)
 go(2947,805,1)
 go(2965,801,1)
 go(2973,808,0)
 go(2973,787,1)
 go(2973,768,1)
 go(2981,768,0)
 go(2981,746,1)
 go(2981,738,0)
 go(2959,738,1)
 go(2959,716,0)
 go(2946,716,1)
 go(2946,707,0)
 go(2927,707,1)
 go(2912,708,0)
 go(2913,689,0)
 go(2898,670,0)
 go(2891,665,0)
 go(2887,669,0)
 uo.findtype('0x14EB','-1','backpack')
 kol=uo.findcount()
 uo.textprint("выловлено карт "+str(kol))
wend
endsub

Sub fish()
var mx,my,mz,i,j,inFishing=0
var spining='0x0DBF'
var map='0x14EB'
DIM text[6]
 text[0] = 'You pull out a'
 text[1] = 'You fish a while'
 text[2] = 'That is too far away'
 text[3] = 'Try fishing in water'
 text[4] = 'There are no fish here'
 text[5] = 'location'
 text[6] = 'return'
var ms1="Prize"
var ms2="Truly"
var ms3="treasure"
var ms4="fishing net"
uo.set('finddistance','1')
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-6 to mx+6
 for j = my -6 to my+6
  if IsWater(i,j) then
   inFishing=0
   while inFishing==0
    UO.DeleteJournal()
    UO.Waittargettile("1341", str(i), str(j), str(mz))
    UO.Usetype(spining)
    repeat
     wait(50)
    Until UO.InJournal(text[0]) OR UO.InJournal(text[1]) OR UO.InJournal(text[2]) OR UO.InJournal(text[3]) OR UO.InJournal(text[4]) OR UO.InJournal(text[5]) OR UO.InJournal(text[6])
    if not UO.InJournal(text[1]) then
     inFishing=1
    endif
   wend
   uo.findtype(map,'-1','ground')
   if uo.findcount() then
    uo.moveitem('finditem','1','backpack')
    wait(500)
   endif
  endif
  UO.DeleteJournal()
 next
 uo.resend()
next
end sub

Sub IsWater(X,Y)
 if UO.PrivateGetTile(X, Y, -1, 6039, 6065) then
  return 1
 else
  return 0
 endif
end sub

sub unload()
var cont
var map='0x14EB'
var mesh='0x0E75'
var sm,fl=1,kol
uo.ignorereset()
uo.say("bank")
wait(1000)
cont=uo.getserial('lastcontainer')
uo.findtype(map,'-1','backpack')
while uo.findcount()
   fl=1
   uo.findtype(mesh,'-1',cont)
   sm=uo.getserial('finditem')
   uo.useobject(sm)
   wait(500)
   uo.findtype(map,'-1',sm)
   while fl<>0
    uo.findtype(map,'-1','backpack')
    if not uo.findcount() then
     fl=0
    endif
    uo.findtype(map,'-1',sm)
    kol=uo.findcount()
    if kol<250 then
      uo.findtype(map,'-1','backpack')
      if uo.findcount() then
       uo.moveitem('finditem','1',sm)
       wait(700)
      endif
     else
      fl=0
      uo.ignore(sm)
    endif
   wend
   uo.findtype(map,'-1','backpack')
wend   
endsub

Sub go(x,y,k)
   VAR i,m,p
   VAR dir,ldir,rdir,key,olddir
   VAR dx,dy,Exit=0
   VAR CacheLimit=9,CacheIndex="Text"
   DIM CacheX[10], CacheY[10]
   uo.resend()
   CacheX[0]="Test"
   While Exit<>1   
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         ;for m=-1 to 1
          ;for p=-1 to 1
           If dx==0 AND dy==0 Then
            Exit=1
           Endif
          ;next
         ;next
      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
         dx=x-UO.GetX()
         dy=y-UO.GetY()
         ;for m=-1 to 1
          ;for p=-1 to 1
           If dx==0 AND dy==0 Then
            Exit=1
           Endif
          ;next
        ; next
   Wend
   if k==1 then
    fish()
   endif
end sub


Sub StepEdit(x,y,dir,key)
   VAR walkwait=100
   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
         ErrLevel=1
      Endif
   Endif
   Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
   VAR walkwait=100
   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           
            ErrLevel=1
         Endif
      Endif
   Endif
   Return ErrLevel
end sub

Sub CheckLag()
   uo.DeleteJournal()
   uo.Click('backpack')
   repeat
      wait(10)
   until uo.InJournal('backpack') or UO.Dead()
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 = T
RETURN Ret
end sub


Спасибо... но ведь так ГЗ.
И где указывать сейф.. рунбук...?

Posted: 2007-08-31 20:34:20
by HellFire
Надо опробывать будет. Спасибо.

Posted: 2007-09-01 01:41:09
by HellFire
Вроде пашет. Мерси. :wink: :)

Posted: 2007-09-17 16:35:09
by Кролик роджер
а у тебя он нормально работает?просто я играю н6а другом шарде и он у меня отказывается рыбу ловить!все время орет БАНК, а када я становлюсь на самую первую координату из скрипта,он вырубается!подскажите.что не так?