немогу понять...

Anything and all.

Moderators: Murderator+, Murderator

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

немогу понять...

Post by teror »

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='0x40114CFF' # ID рунбук 1-ая
var book2='0x400FBCA9' # ...2-ая
var book3='0x400000BF' # ...3-яя
var type1='0x0F7B'# соответствует типу покупаемого товара
var type2='0x0F85'# ...
var type3='0x0F7A'#
var type4='0x0F86'#
var type5='0x0E34'#
var type6='0x1005'#
var recall='0x1F4C' # тип рекола
var unloadseif='0x40106E9D' # ID сэйфа у дома
var tEat='0x097B' # тип еды(фиш стэйки)
var skokonada=0 # 0 -летаем по двум рунбукам; 1 -только по первой
##ВВедите ид вендоров ниже###
sub POGNALI()
var k,j,b
 DIM ven[8]
 DIM vem[8]
#####################
 ven[0]='0x0001C9B8' #
 ven[1]='0x0002A808' #
 ven[2]='0x0002DA7D' #
 ven[3]='0x000293B8' #
 ven[4]='0x0000E8E9' #
 ven[5]='0x00022274' #
 ven[6]='0x0000003B' #
 ven[7]='0x0002E2E8' #
 vem[0]='0x000175E1' #
 vem[1]='0x00025F98' #
 vem[2]='0x0000C979' #
 vem[3]='0x00013C58' #
 vem[4]='0x0002257F' #
 vem[5]='0x00026025' #
 vem[6]='0x00031D95' #
 ven[7]='0x00019A1B' #
#####################
  while not uo.dead()
   for k=1 to 8
    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 8
    repeat
     port(j,book2)
     uo.resend()
 
     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)
   SuperWalk(472,2072,'')
    unload()
    wait(2000)
    recharg(book1)
    wait(2000)
    recharg(book2)
    wait(2000)
    recharg(book3)
    wait(2000)
    ToEat()
    wait(2000)
   SuperWalk(385,3574,'')
    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(259, n*15+245)
   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(263,217)
 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
endsub

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

немогу понять, почему чар начинает кудато идти, когда прилетает по последней руне первого рунбука.
подскажите как сделать так, чтобы прилетев в магазин, чар скупал у двух или более вендоров. в данном скрипте 1 руна - 1 вендор.
666||TORCHKI
Posts: 257
Joined: 2006-11-14 16:19:03
Contact:

Post by 666||TORCHKI »

это не орегенал,скрипт переделавал ктото !
666||TORCHKI
Posts: 257
Joined: 2006-11-14 16:19:03
Contact:

Post by 666||TORCHKI »

Code: Select all

 DIM ven[8] 
 DIM vem[8]
#####################
 ven[0]='0x0001C9B8' #
 ven[1]='0x0002A808' #
 ven[2]='0x0002DA7D' #
 ven[3]='0x000293B8' #
 ven[4]='0x0000E8E9' #
 ven[5]='0x00022274' #
 ven[6]='0x0000003B' #
 ven[7]='0x0002E2E8' #
 vem[0]='0x000175E1' #
 vem[1]='0x00025F98' #
 vem[2]='0x0000C979' #
 vem[3]='0x00013C58' #
 vem[4]='0x0002257F' #
 vem[5]='0x00026025' #
 vem[6]='0x00031D95' #
 ven[7]='0x00019A1B' #
#####################


а где ven[8] ?

вот он на 8 слоте и за запаривается потому что не знает куда идти !
mez
Posts: 91
Joined: 2006-04-02 11:33:38
Contact:

Post by mez »

если я не ошибаюсь то там 8 их отсчет идет с 0 и до 7! и получаеться 8 :lol:
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

666||TORCHKI, Ты не прав.
mez wrote:если я не ошибаюсь то там 8 их отсчет идет с 0 и до 7! и получаеться 8 :lol:

Ты абсолютно прав.
Об этом периодически пишут :)
The End.
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

666||TORCHKI wrote:это не орегенал,скрипт переделавал ктото !

именно. но можно всётки ответить на мои вопросы.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Все очень просто, последняя руна почемуто VEN а должна быть VEM
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

Savage wrote:Все очень просто, последняя руна почемуто VEN а должна быть VEM

спасибо! это действительно решило проблему!
может подскажите ещё, как сделать чтобы к нескольким вендорам подходил...
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

То есть скрипт переделывать? Нет желания!
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

Savage wrote:То есть скрипт переделывать? Нет желания!

я думал это не сложно...
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

     while b>1
      SuperWalk(0,0,ven[k-1])
      b=UO.GetDistance(ven[k-1])
     wend
     bustreevseh1(ven[k-1])
     UO.Say("bye")

зделай на

Code: Select all

while b>1
SuperWalk(0,0,ven[k-1])
b=UO.GetDistance(ven[k-1])
wend
bustreevseh1(ven[k-1])
UO.Say("bye")
while b>1
SuperWalk(0,0,ven[k])
b=UO.GetDistance(ven[k])
wend
bustreevseh1(ven[k])
UO.Say("bye") 


и в массив пропишы по два вендора подрят, если нету, пропишы два одиниковых
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

NMY wrote:

Code: Select all

     while b>1
      SuperWalk(0,0,ven[k-1])
      b=UO.GetDistance(ven[k-1])
     wend
     bustreevseh1(ven[k-1])
     UO.Say("bye")

зделай на

Code: Select all

while b>1
SuperWalk(0,0,ven[k-1])
b=UO.GetDistance(ven[k-1])
wend
bustreevseh1(ven[k-1])
UO.Say("bye")
while b>1
SuperWalk(0,0,ven[k])
b=UO.GetDistance(ven[k])
wend
bustreevseh1(ven[k])
UO.Say("bye") 


и в массив пропишы по два вендора подрят, если нету, пропишы два одиниковых

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

Post by teror »

я так посмотрел, форум умирает...
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

И что ты этим хотел сказать?
Qualis Eram
Posts: 104
Joined: 2005-04-16 23:33:13
Contact:

Post by Qualis Eram »

А вместо рунбука можете с рунами сделать?
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

Savage wrote:И что ты этим хотел сказать?

раньше более активно отвечали и помогали.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

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

Post by teror »

Savage wrote:Сложные скрипты переделывать просто ломает, праздники. Нужное подчеркнуть!
Учись сам, это интересно и в жизни пригодится!

нету времени учится, да и желания нету. а всё связано с тем, что долгие периоды времени не нахожусь дома.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ты мне напомнил известную притчу. Мужик пилит дрова тупой пилой. Другой его спрашивает, ты чего пилу не наточишь? Некогда мне пилу точить, ине нужно дрова пилить! :)
teror
Posts: 79
Joined: 2005-09-11 00:53:44

Post by teror »

Savage wrote:Ты мне напомнил известную притчу. Мужик пилит дрова тупой пилой. Другой его спрашивает, ты чего пилу не наточишь? Некогда мне пилу точить, ине нужно дрова пилить! :)

:D у меня другая ситуация...да и врятли эти знания мне пригодятся, хотя кто знает...
Post Reply