Про массивы!!!

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Про массивы!!!

Post by Savage »

Сегодня потерял уйму времени пока не выяснил что элементы массивов в инже начинаются с 1 а не с 0. Будьте внимательны :)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Re: Про массивы!!!

Post by Edred »

Savage wrote:Сегодня потерял уйму времени пока не выяснил что элементы массивов в инже начинаются с 1 а не с 0. Будьте внимательны :)


Как так?

Code: Select all

Sub Recycle()
   ; ------- улов -------
   DIM Fish[17]
   Fish[0]  = '0x170B'   ; сапоги
   Fish[1]  = '0x170F'   ; тапки
   Fish[2]  = '0x170D'   ; сандалии
   Fish[3]  = '0x1711'   ; сапоги
   Fish[4]  = '0x09CC'   ; тип рыбы 1
   Fish[5]  = '0x09CD'   ; тип рыбы 2
   Fish[6]  = '0x09CE'   ; тип рыбы 3
   Fish[7]  = '0x09CF'   ; тип рыбы 4
   Fish[8]  = '0x0FC4'   ; ракушка, тип 1
   Fish[9]  = '0x0FC5'   ; ракушка, тип 2
   Fish[10] = '0x0FC6'   ; ракушка, тип 3
   Fish[11] = '0x0FC7'   ; ракушка, тип 4
   Fish[12] = '0x0FC8'   ; ракушка, тип 5
   Fish[13] = '0x0FC9'   ; ракушка, тип 6
   Fish[14] = '0x0FCA'   ; ракушка, тип 7
   Fish[15] = '0x0FCB'   ; ракушка, тип 8
   Fish[16] = '0x0FCC'   ; ракушка, тип 9
   VAR Razmer = 16      ; размер массива - 1
   ; ------- инструмент -------
   VAR Scissor = '0x0F9E'   ; тип ножниц
   VAR Cleaver = '0x0EC2'   ; кливер
   ; ------- конечный продукт -------
   VAR Bandag = '0x0E21'   ; тип бинтов
   VAR Pearl = '0x0F7A'   ; жемчуг
   VAR Steak = '0x097A'   ; рыбное филе

   VAR i, Rakush
   ; Ищем что у нас валяется под ногами, если надо перерабатываем
   ; и складируем в трюм.
   For i=0 To Razmer
      UO.FindType( Fish[i], -1, 'ground' )
      If UO.FindCount() > 0 Then
         UO.Grab( 0, 'finditem' )
         Wait( 1500 )
         ; Взяли в пак. Теперь разберемся что это
         If i < 4 Then
            ; сапоги и тапки
            ; режем ножницами на бинты и скидываем бинты
            UO.WaitTargetObject( 'finditem' )
            UO.UseType( Scissor )
            Wait( 3000 )
            ; Скинем бинты в трюм
            UO.FindType( Bandag )
            If UO.FindCount() > 0 Then
               UO.MoveItem( 'finditem', '0' , Trum )
               wait( 2000 )
            Endif
         Endif



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

Post by Savage »

Значит это был жестокий глюк. Но если у кого то еще возникнет похожая проблемма - в первую очередь меняйте начальный индекс на 1 :)
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

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

Post by Savage »

Не знаю как возник такой глюк, но при определенных обстоятельствах этот суб работает токо с 1 а не с нуля.

Code: Select all

sub test()
   VAR Bag,Index=0
   DIM Asd[10]
   UO.FindType('0x0E76',-1,'my') ; meshok
   IF UO.GetQuantity('finditem')>0 Then
      Asd[Index]=UO.GetSerial('finditem')
      UO.Print("Asd[Index]="+Asd[Index])
   Else
      UO.Print("Net v pake meshkov")
   Endif
end sub


Я уж начал чесать репу как передавать указатели в массив, потому что в переменную он отлично записывался но массиву даже из переменной не присваивался.

х.з. что это было, но счас все работает.
Post Reply