oshibka - parser!?

Anything and all.

Moderators: Murderator+, Murderator

Locked
Bangbuss
Posts: 228
Joined: 2005-07-06 18:17:24

oshibka - parser!?

Post by Bangbuss »

vot u menja skript vrode normalnij, kogda zapuskaju ego vidajot oshibku:

Code: Select all

Unhandled exceptions in parser


vot i sam skript:


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='0x4005A6CE' # ID рунбук 1-ая
var book2='0x40318452' # ...2-ая
var book3='0x400D4CFE' # ...3-яя
var type1='0x0F86'# соответствует типу покупаемого товара
var type2='0x0F85'# ...
var recall='0x1F4C' # тип рекола
var unloadseif='0x40084350' # ID сэйфа у дома
var tEat='0x097B' # тип еды(фиш стэйки)
var skokonada=0 # 0 -летаем по двум рунбукам; 1 -только по первой
##ВВедите ид вендоров ниже###
sub POGNALI()
var k,j,b
 DIM ven[9]
 DIM vem[9]
#####################
 ven[0]='0x000E3DA4' #И  для 1-ой руны первой рунбуки
 ven[1]='0x000D82D1' #Д  для 2-ой руны первой рунбуки
 ven[2]='0x000E51E2' #
 ven[3]='0x000DF17C' # для 1-ой рунбуки
 ven[4]='0x0005B571' #В
 ven[5]='0x0003026B' #Е
 ven[6]='0x0012B6AB' #Н
 ven[7]='0x0012C238' #Д
 ven[8]='0x00104032' #О для 9-ой руны 1 рунбуки
 vem[9]='0x0011460D' #Р для 1-ой руны 2 рунбуки
 vem[10]='0x00054FCD' #О
 vem[11]='0x000CAA6A' #В
 vem[12]='0x0011A81A' #
 vem[13]='0x000D8CE8' #  для 2-ой рунбуки
 vem[14]='0x000BDF1D' #
 vem[15]='0x000E2161' #
#####################
  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
endsub

sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
endsub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

размерность массивов посчитай.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Скорее всего где-то не закрыт цикл... Я не маньяк, чтобы это проверять. Ищи сам, это ошибка в синтаксисе.
DerMeister сейчас на нейрале!
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Далеко ходить не надо.

Code: Select all

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
Bangbuss
Posts: 228
Joined: 2005-07-06 18:17:24

Post by Bangbuss »

You must die ti bi ne mog izpravit` oshibku? potomu6to ja nemogu naiti ee.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Не мог.

Действительно трудно найти :\
Bangbuss
Posts: 228
Joined: 2005-07-06 18:17:24

Post by Bangbuss »

da ti znaesh gde oshibka... prosta prikalovaesha.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Смотри 2 поста выше. Я тебе выложил даже отрывок и четко показал где ошибка. Вглядись получше
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

афтар у тебя 4 раза повторяется repeat а until тока 2
делай выводы
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Если автор имеет хотябы какое то представление о табуляции и скриптописании в целом, то думаю там не сложно было бы увидеть.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

Если не знает, пусть не берётся. Тема закрыта. Если кто то решит помоч, пусть редактирует свой пост, либо откроет тему ибо тут отписались только модераторы.
ЗЫ: Закртыто за транслит + нефиг тупить. Мы не платный ресурс, чтобы с нас что то требовать. to Bangbuss: Тебе указали на твою ошибку, ищи... :evil:
DerMeister сейчас на нейрале!
Locked