как переделать ?

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
teror
Posts: 79
Joined: 2005-09-11 00:53:44

как переделать ?

Post by teror »

нашёл на форуме скриптик.собственно сложность с буками...
неполучается переделать полёт по бооку на такую формулу
uo.say ( ',recall 0x4002D5B9 2' )
перезарядка боока uo.say ( ',recall 0x4002D5B9 1' )
или на такую

sub recall1()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(266,388)
wait(500)
UO.LClick(453,348)
wait(9000)
endsub


сам скрипт...

Code: Select all

var book1='0x400FBCA9' # ID рунбук 1-ая 
var book2='0x40318452' # ...2-ая
var book3='0x40056A27' # ...3-яя
var type1='0x175D'# соответствует типу покупаемого товара
var type2='0x1F03'# ...
var type3='0x175D'# ...
var type4='0x175D'# ...
var recall='0x1F4C' # тип рекола
var unloadseif='0x4044211D' # ID сэйфа у дома
var tEat='0x097B' # тип еды(фиш стэйки)
var skokonada=1 # 0 -летаем по двум рунбукам; 1 -только по первой
##ВВедите ид вендоров ниже###
sub POGNALI()
var k,j,b
 DIM ven[9]
 DIM vem[9]
#####################
 ven[0]='0x000E4137' #И  для 1-ой руны первой рунбуки
 ven[1]='0x00289D44' #Д  для 2-ой руны первой рунбуки
 ven[2]='0x00164D2E' #
 ven[3]='0x0030D2DB' # для 1-ой рунбуки
 ven[4]='0x0041A5F3' #В
 ven[5]='0x00286C87' #Е
 ven[6]='0x00286C87' #Н
 ven[7]='0x00286C87' #Д
 ven[8]='0x00286C87' #О для 9-ой руны 1 рунбуки
 ##################
 vem[0]='0x00286C87' #Р для 1-ой руны 2 рунбуки
 vem[1]='0x00289D44' #О
 vem[2]='0x00164D2E' #В
 vem[3]='0x0030D2DB' #
 vem[4]='0x0041A5F3' #  для 2-ой рунбуки
 vem[5]='0x00286C87' #
 vem[6]='0x00286C87' #
 vem[7]='0x00286C87' #
 vem[8]='0x00286C87' # для 9-ой руны 2 рунбуки
##################### 
  while not uo.dead()
   for k=1 to 9
    repeat
     port(k,book1)
     uo.resend()
     b=UO.GetDistance(ven[k-1])
     while b>1
      SuperWalk(0,0,ven[k-1])
      b=UO.GetDistance(ven[k-1])
     wend
     bustreevseh1(ven[k-1])
     UO.Say("bye")
    next
   if skokonada==0 then
   for j=1 to 9
    repeat
     port(j,book2)
     uo.resend()
     b=UO.GetDistance(vem[j-1])
     while b>1
      SuperWalk(0,0,vem[j-1])
      b=UO.GetDistance(vem[j-1])
     wend 
     bustreevseh1(vem[j-1])
     UO.Say("bye")   
    next
    endif
    port(1,book3)
    wait(2000)
    unload()
    wait(2000)
    recharg(book1)
    wait(2000)
    recharg(book2)
    wait(2000)
    recharg(book3)
    wait(2000) 
    ToEat()
    wait(2000)
    unload()
  wend
endsub

sub port(n,book)
var oldX=UO.GetX()
var oldY=UO.GetY()
var time
   NoTarget()
   UO.UseObject(book)
   FastLootCheck()
   CheckLag()
   UO.LClick(135, n*15+55)
   time=UO.Timer()
   Repeat
     wait(500)
   Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer()
end sub

sub FastLootCheck()
   UO.DeleteJournal()
   wait(600)
   if UO.InJournal("FastLoot") OR UO.InJournal("World save") then
      CheckLag()
   endif
end sub

sub NoTarget()
   if UO.Waiting() then
      UO.CancelTarget()
   endif
end sub

sub bustreevseh1(imya)
var vend, ven='vendor' 
   ven=UO.GetName(imya)
   uo.buy('list1',ven)
endsub

#==============================================================
#  SuperWalk(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!
#     walkwait - delay after keypress
#--------------------------------------------------------------
sub SuperWalk(x,y,Target)
   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   
      If Target<>"" Then
         dx=UO.GetX(Target)-UO.GetX()
         dy=UO.GetY(Target)-UO.GetY()
;         UO.Print("Target locked!")
         If UO.GetDistance(Target)<3 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 ; 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
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 recharg(kniga)
 CheckLag()
 wait(1000)
 uo.useobject(unloadseif)
 CheckLag()
 wait(1000)
 uo.findtype(recall,'-1',unloadseif)
 CheckLag()
 wait(1000)
 uo.moveitem('finditem','9','backpack')
 CheckLag()
 wait(1000)
 uo.UseObject(kniga)
 CheckLag()
 wait(1000)
 uo.Lclick(296,91)
 CheckLag()
 wait(1000)
endsub

sub unload() 
         UO.FindType(type1, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)                     
         UO.FindType(type1,'-1','backpack')
       wend
         UO.FindType(type2, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)                     
         UO.FindType(type2,'-1','backpack')
       wend
         UO.FindType(type3, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)                     
         UO.FindType(type3,'-1','backpack')
       wend
         UO.FindType(type4, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)                     
         UO.FindType(type4,'-1','backpack')
       wend
         UO.FindType(recall, '-1', 'backpack')
       while UO.GetQuantity('finditem') > 0
         UO.MoveItem('finditem','-1',unloadseif)
         CheckLag()
         Wait(700)                     
         UO.FindType(recall,'-1','backpack')
       wend
endsub

sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
endsub

sub ToEat()
   UO.UseObject(unloadseif)
   CheckLag()
   wait(500)
   UO.FindType(tEat,'0x0000',unloadseif)
   CheckLag()
   wait(500)
   if UO.FindCount() > 0 then
      UO.MoveItem('finditem','20','backpack')
   end if
   repeat     
      CheckLag()
      uo.UseType(tEat)
      while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
         wait(100)
      wend
   until uo.InJournal('too full') or UO.Dead()
   UO.FindType(tEat, '0x0000','backpack')
   if UO.FindCount() > 0 then
      UO.MoveItem('finditem','20',unloadseif)     
   end if
end sub


shard - Oldparadise
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

,set norbcheck 1
,set norbcalc 1
,saveconfig
*log out*
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

NMY wrote:,set norbcheck 1
,set norbcalc 1
,saveconfig
*log out*

что они значат ?
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

напишы это в окне УО и зделай лог аут, потом рекал должен работать если в скрипте у тебя все правильно...
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

неработает... :( некак не получается переделать,нашёл скрипт другой, но без ходилки. если есть у кого желание помоч с первого скрипта вставить ходилку во второй.
собственно скрипт...

Code: Select all

sub buy()
var Chest='0x4003194B'   
Start:
UO.Print("Taking recall needed reagents")
wait(1000)
UO.Findtype( 0x0F7B, 0x0000, Chest )
UO.Exec( "moveitem finditem 25" )
wait(3000)
UO.Findtype( 0x0F86, 0x0000, Chest )
UO.Exec( "moveitem finditem 25" )
wait(3000)
UO.Findtype( 0x0F7A, 0x0000, Chest )
UO.Exec( "moveitem finditem 25" )
wait(3000)
recall1()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall2()
wait(1000)
UO.Say(",buy buying")
wait(3000)
uo.UseSkill('Meditation')
wait(2000)
recall3()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall4()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall5()
wait(1000)
UO.Say(",buy buying")
wait(3000)
uo.UseSkill('Meditation')
wait(2000)
recall6()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall7()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall8()
wait(1000)
UO.Say(",buy buying")
wait(3000)
uo.UseSkill('Meditation')
wait(2000)
recall9()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall10()
wait(1000)
UO.Say(",buy buying")
wait(3000)
uo.UseSkill('Meditation')
wait(2000)
recall11()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall12()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall13()
wait(1000)
UO.Say(",buy buying")
wait(3000)
uo.UseSkill('Meditation')
wait(2000)
recall14()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recall15()
wait(1000)
UO.Say(",buy buying")
wait(3000)
recallhouse()
wait(1000)
gochest()
wait(1000)
UO.FindType("0x0F87" )
UO.moveitem ('finditem' ,1000, Chest)
wait(3000)
UO.FindType("0x0F7B" )   
UO.moveitem ('finditem' ,1000, Chest)
wait(3000)
UO.FindType("0x0F86" )   
UO.moveitem ('finditem' ,1000, Chest)
wait(3000)
UO.FindType("0x0F7A" )   
UO.moveitem ('finditem' ,1000, Chest)
wait(2000)
uo.UseSkill('Meditation')
wait(400000)
goto Start
end sub

sub recall1()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(266,388)
wait(500)
UO.LClick(453,348)
wait(9000)
endsub

sub recall2()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(300,388)
wait(500)
UO.LClick(283,347)
wait(9000)
endsub

sub recall3()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(300,388)
wait(500)
UO.LClick(451,350)
wait(9000)
endsub

sub recall4()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(336,387)
wait(500)
UO.LClick(277,352)
wait(9000)
endsub

sub recall5()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(336,387)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recall6()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(370,386)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub recall7()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(370,386)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recall8()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(434,383)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub recall9()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(434,383)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recall10()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(470,387)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub recall11()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(470,387)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recall12()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(506,384)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub recall13()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(506,384)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recall14()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(539,387)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub recall15()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(539,387)
wait(500)
UO.LClick(452,350)
wait(9000)
endsub

sub recallHouse()
UO.UseType("0x0EFA")
wait(500)
UO.LClick(264,387)
wait(500)
UO.LClick(282,353)
wait(9000)
endsub

sub gochest()
  var x, y, i, tmp, inside, goto_x, st, first , posit


 posit=UO.GetY()
 posit=posit+1
 while UO.GetY() < posit
  UO.Press (40, 1, 500)
 wend 
endif
Post Reply