В чём проблемма?

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

В чём проблемма?

Post by Spirit »

Вот нашёл я скрипт на скупку, настроил его, но проблемма: чар летает по рунбукам, подходит к вендорам, пишет буй, но нечё не покупает. :shock: Помогите пожалуйсто, мб я чёта не так делаю, мб в скрипте чёта не так.Заранее спасибо. :)

Code: Select all

###### 
#Opisanie 
###### 
#Чар летает по 2 рунбукам к вендорам если вендор далеко 
#подходит к нему и покупает товар.  
#Как закупился у всех летит домой и скидывает 
#все купленное в сэйф перезаряжает рунбуки хавает и опять 25 
###### 
#Nastroika 
###### 
#у чара в паке 3 рунбуки (люблю я рунбуки), в сэйфе у дома 
#еда(фишстэйки),реколы(побольше). В уо делаем список товара 
#который надо покупать(как это делать смотрим чуть ниже) список 
#называем list1, в переменных указываем типы покупаемых 
#товаров (у меня в скрипте подразумевается что товаров всего 4) 
#можно летать только по первой рунбуке для этого в переменных 
#нада переменную skokonada изменить на 1 
##### ОБЯЗАТЕЛЬНО!!!!######### 
#в игре набираем следущее-" ,set buydelay 3000 "(без ковычек) 
#в настройках инжекта ставим галку на trackworlditems 
########################## 
#Как сделать список покупки 
########################## 
#1-подходи к вендору 
#2-в настройках инжекта(закладка Main) жмем кнопку Buy/Sell 
#3-в поле Name пишем list1 жмем Create 
#4-в игре говорим вендору buy 
#5-идем опять в инжект и в окне Shoping list выбираем товар и жмем 
#Add можно сразу добавить несколько товаров 
#6-далее жмем Done и еще раз Done 
########################## 
#!! 1 и 2 рунбуки забиты рунами к вендорам в 3 рунбуке первая руна 
#домой 
#каждой руне соответствует вендор=>надо вбить ид вендоров 
#в соответствии с рунами 
#!!! введите ВСЕ переменные 
####### 
#from Question  with smile 
####### 
#Peremennue 
####### 
var book1='0x40231613' # ID рунбук 1-ая 
var book2='0x401E758A' # ...2-ая 
var book3='0x40325577' # ...3-яя 
var type1='0x0F87'# соответствует типу покупаемого товара 
var type2='0x0F85'# ... 
var type3='0x0F88'# ... 
var type4='0x0F7A'# ... 
var recall='0x1F4C' # тип рекола 
var unloadseif='0x401C18CF' # ID сэйфа у дома 
var tEat='0x097B' # тип еды(фиш стэйки) 
var skokonada=0 # 0 -летаем по двум рунбукам; 1 -только по первой 
##ВВедите ид вендоров ниже### 
sub POGNALI() 
var k,j,b 
 DIM ven[9] 
 DIM vem[9] 
##################### 
 ven[0]='0x00200130' #И  для 1-ой руны первой рунбуки 
 ven[1]='0x00479B7B' #Д  для 2-ой руны первой рунбуки 
 ven[2]='0x000876DA' # 
 ven[3]='0x004CC63E' # для 1-ой рунбуки 
 ven[4]='0x00455DA3' #В 
 ven[5]='0x0001BB18' #Е 
 ven[6]='0x00077E7B' #Н 
 ven[7]='0x000B8E13' #Д 
 ven[8]='0x00353C65' #О для 9-ой руны 1 рунбуки 
 ################## 
 vem[0]='0x00019CD2' #Р для 1-ой руны 2 рунбуки 
 vem[1]='0x0033EB76' #О 
 vem[2]='0x002E288F' #В 
 vem[3]='0x001F9AC2' # 
 vem[4]='0x002A02A2' #  для 2-ой рунбуки 
 vem[5]='0x004DC71E' # 
 vem[6]='0x004CCE40' # 
 vem[7]='0x0048E86C' # 
 vem[8]='0x002ECA33' # для 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 
:O
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

бай лист в инже настроил ? закладка майн:
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

NMY wrote:бай лист в инже настроил ? закладка майн:
Ага, всё по инструкции.Вендор в это время говорит: Oh.. You were so fast. Please repeat your order slower.
:O
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

Так, всё, я понял в чём ошибка - исправил, сори.г. :oops:
:O
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

:) ,set(buydelay
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

? wrote::) ,set(buydelay
Угу, я вместа 3000 сначала анписал 300. :)
:O
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

Так, опять нужна помощ. :oops:
Вот теперь я использую этот скрипт для скупки тряпок, летаю по 2ум рунбукам и после 1ой рунбуки вес у меня 900 и я не магу двигатся. Мне нуна, чтобы после 1ой рунбуки чар летел домой, разгружался и летел дальше по 2ой рунбуке. :)

Code: Select all

###### 
#Opisanie 
###### 
#Чар летает по 2 рунбукам к вендорам если вендор далеко 
#подходит к нему и покупает товар.  
#Как закупился у всех летит домой и скидывает 
#все купленное в сэйф перезаряжает рунбуки хавает и опять 25 
###### 
#Nastroika 
###### 
#у чара в паке 3 рунбуки (люблю я рунбуки), в сэйфе у дома 
#еда(фишстэйки),реколы(побольше). В уо делаем список товара 
#который надо покупать(как это делать смотрим чуть ниже) список 
#называем list2, в переменных указываем типы покупаемых 
#товаров (у меня в скрипте подразумевается что товаров всего 4) 
#можно летать только по первой рунбуке для этого в переменных 
#нада переменную skokonada изменить на 1 
##### ОБЯЗАТЕЛЬНО!!!!######### 
#в игре набираем следущее-" ,set buydelay 3000 "(без ковычек) 
#в настройках инжекта ставим галку на trackworlditems 
########################## 
#Как сделать список покупки 
########################## 
#1-подходи к вендору 
#2-в настройках инжекта(закладка Main) жмем кнопку Buy/Sell 
#3-в поле Name пишем list1 жмем Create 
#4-в игре говорим вендору buy 
#5-идем опять в инжект и в окне Shoping list выбираем товар и жмем 
#Add можно сразу добавить несколько товаров 
#6-далее жмем Done и еще раз Done 
########################## 
#!! 1 и 2 рунбуки забиты рунами к вендорам в 3 рунбуке первая руна 
#домой 
#каждой руне соответствует вендор=>надо вбить ид вендоров 
#в соответствии с рунами 
#!!! введите ВСЕ переменные 
####### 
#from Question  with smile 
####### 
#Peremennue 
####### 
var book1='0x403BDE70' # ID рунбук 1-ая 
var book2='0x40091E46' # ...2-ая 
var book3='0x40325577' # ...3-яя 
var type1='0x0F87'# соответствует типу покупаемого товара 
var type2='0x175D'# ... 
var type3=''# ... 
var type4=''# ... 
var recall='' # тип рекола 
var unloadseif='0x401C18CF' # ID сэйфа у дома 
var tEat='0x097B' # тип еды(фиш стэйки) 
var skokonada=0 # 0 -летаем по двум рунбукам; 1 -только по первой 
##ВВедите ид вендоров ниже### 
sub POGNALI() 
var k,j,b 
 DIM ven[9] 
 DIM vem[9] 
##################### 
 ven[0]='0x0033B272' #ИД  для 1-ой руны первой рунбуки 
 ven[1]='0x0022BE27' #ИД  для 2-ой руны первой рунбуки 
 ven[2]='0x0024A4F9' #ИД  для 3-ой руны первой рунбуки 
 ven[3]='0x0015CD4D' #ИД  для 4-ой руны первой рунбуки 
 ven[4]='0x000B160A' #ИД  для 5-ой руны первой рунбуки 
 ven[5]='0x0009474F' #ИД  для 6-ой руны первой рунбуки  
 ven[6]='0x00354128' #ИД  для 7-ой руны первой рунбуки  
 ven[7]='0x004EA96A' #ИД  для 8-ой руны первой рунбуки  
 ven[8]='0x004560EB' #ИД  для 9-ой руны первой рунбуки 
 ################## 
 vem[0]='0x0018815E' #ИД  для 1-ой руны второй рунбуки
 vem[1]='0x0045456F' #ИД  для 2-ой руны второй рунбуки
 vem[2]='0x00240EF2' #ИД  для 3-ой руны второй рунбуки
 vem[3]='0x0014E6E5' #ИД  для 4-ой руны второй рунбуки 
 vem[4]='0x0027B311' #ИД  для 5-ой руны второй рунбуки
 vem[5]='0x00086F0F' #ИД  для 6-ой руны второй рунбуки  
 vem[6]='0x0015889D' #ИД  для 7-ой руны второй рунбуки 
 vem[7]='0x004B91B9' #ИД  для 8-ой руны второй рунбуки  
 vem[8]='0x000B160A' #ИД  для 9-ой руны второй рунбуки 
#####################  
  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)  
    ToEat() 
    wait(200000) 
    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('list2',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 
:O
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

добавь это между 1 и второй рунбукой :wink:

Code: Select all

    port(1,book3) 
    wait(2000) 
    unload() 
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

а точнее вот сюда

Code: Select all

     UO.Say("bye") 
    next 
 <----------------------------сюда =)
   if skokonada==0 then 
   for j=1 to 9 
Spirit
Posts: 101
Joined: 2006-03-23 19:25:23

Post by Spirit »

Пасиба большое, всё работает. :D
:O
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

Spirit wrote:Пасиба большое, всё работает. :D
терпенье и труд все перескрипт :)
Post Reply