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

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