Page 1 of 1

Нужна хэлп...

Posted: 2008-01-27 15:40:05
by GroundBeast
Написал скрипт... И именно эта ошибка вылетает при прокрутке программы.... Причем, как ни странно, но ошибка вылетает в конце первого цикла, предварительно использовав макс. число онго из компонентов бля создания стрел... Причем, хотя в программе и говориться: брать и перетаскивать по одному шафту из пака в бэкпак, а потом юзать из бэкпака один шафт и кликать по перьям, но он все равно использует макс число, расходуя все перья и оставляя остаток шавтов... вот код:

Шавты валяются в мешочке, который валяется в бэкпаке, стрелы складываются в другой пак...

sub Bowcraft()

;если их не описать, то ошибка не сходит...
Var BagID
Var BagForArrowsId
Var ShaftType
Var FeatherType
Var ArrowType
Var i

;узнаем и запоминаем ID мешка с шавтами внутри
UO.Print('Shoose bag with shafts')
UO.AddObject('BagId')
While UO.Targeting() == 2
Wait(500)
Wend
UO.SaveConfig()
UO.Print('Done')
Wait(500)
;узнаем и запоминаем ID мешка для складирования стрел
UO.Print('Shoose empty bag for arrows')
UO.AddObject('BagForArrowsId')
While UO.Targeting() == 2
Wait(500)
Wend
UO.SaveConfig()
UO.Print('Done')
Wait(500)
;выбираем тип шавтов
UO.Print('Choose type of shafts')
UO.AddType('ShaftType')
While UO.Targeting() == 2
Wait(500)
Wend
UO.SaveConfig()
UO.Print('Done')
Wait(500)
;выбирает тип перьев
UO.Print('Choose type of feathers')
UO.AddType('FeathersType')
While UO.Targeting() == 2
Wait(500)
Wend
UO.SaveConfig()
UO.Print('Done')
Wait(500)
;выбираем тип стрел
UO.Print('Choose type of Arrows')
UO.AddType('ArrowType')
While UO.Targeting() == 2
Wait(500)
Wend
UO.SaveConfig()
UO.Print('Done')
Wait(500)
;делаем 500 попыток
For i = 0 to 500
;проверка наличия шавтов
If UO.Count('ShaftType') > 0 Then
;Проверка наличия перьев
If UO.Count('FeathersType') > 0 Then
;ищем перья в паке !!!!!!!!!!!!!!!!!!!! RUN TIME ERROR
UO.FindType(ShaftType,'-1',BagId)
;перемещаем 1 шавт из пака в бэкпак
UO.MoveItem('findtype','1')
Wait(5000)
;делаем стрелу
UO.WaitMenu("What","Arrow")
UO.WaitTargetType('FeathersType')
UO.UseType('ShaftType')
Wait(5000)
If UO.Count('ArrowType') > 0 Then
UO.FindType(ArrowType,'-1')
UO.MoveItem('findtype','1','BagForArrowsId')
Wait(200)
Else
UO.Print('NO arrow for move')
Wait(200)
EndIf
Else
UO.Print('No feathers in your backpack')
Wait(5000)
EndIf
Else
UO.Print('No shafts in bag')
Wait(5000)
EndIf
Wend
endsub

и в конце ошибка..... т.е. 2 ошибки... (((

Re: Нужна хэлп...

Posted: 2008-01-27 16:48:28
by Kynep
GroundBeast wrote:Написал скрипт... И именно эта ошибка вылетает при прокрутке программы.... Причем, как ни странно, но ошибка вылетает в конце первого цикла, предварительно использовав макс. число онго из компонентов бля создания стрел... Причем, хотя в программе и говориться: брать и перетаскивать по одному шафту из пака в бэкпак, а потом юзать из бэкпака один шафт и кликать по перьям, но он все равно использует макс число, расходуя все перья и оставляя остаток шавтов... вот код:

Шавты валяются в мешочке, который валяется в бэкпаке, стрелы складываются в другой пак...

и в конце ошибка..... т.е. 2 ошибки... (((


Таксс что вот это?

Code: Select all

For i = 0 to 500

Чет я не разгледел next...

Это раз, два, в команде МувИтем, нужно ставить кол-во 2 и обязателно контейнер получатель:

Code: Select all

UO.MoveItem(тип_шафтов, '2', 'backpack')

Почему то по одному предмету из стопки не хочет брать ни одна команда, берет стопку. Так пока вроде все... Еще я не уверен насчет кол-ва If Then, все ли циклы закрыты, это лучше проверяется здесь. У меня все.
З.Ы. А это что такое?!?!?

Code: Select all

UO.MoveItem('findtype','1')

findtype - такова указателя не бывает, бывает finditem. Исправляем.

Posted: 2008-01-27 17:40:50
by GroundBeast
Пасибо.... но вот почему Rum time error вылетает?

UO.FindType(ShaftType,'-1',BagId) - тут.....

и нужно ли в начале программы описывать переменные, которые позже инициализируются, якобы, в функции UO.AddObject('BagForArrowsId')

написав эту функцию нужно ли мне инициализировать BagForArrowsId ?

Posted: 2008-01-27 18:33:21
by Kynep
GroundBeast wrote:Пасибо.... но вот почему Rum time error вылетает?

UO.FindType(ShaftType,'-1',BagId) - тут.....

и нужно ли в начале программы описывать переменные, которые позже инициализируются, якобы, в функции UO.AddObject('BagForArrowsId')

написав эту функцию нужно ли мне инициализировать BagForArrowsId ?


1)На самом деле она не там вылетает, а немнога пораньше, просто парсер так работает, примерно показывает, хотя иногда и попадает ), для верности в начале скрипт вставь функцию открывания всех мешков используемых скриптом, а то он не найдет ни чего.

2)Нет, объекты не переменные, их указывать не надо.

Posted: 2008-01-27 21:13:13
by GroundBeast
Огромное спасибо! Все работает... Причем стрелы по одной делаются... )))

Posted: 2008-01-27 21:22:43
by Kynep
GroundBeast wrote:Огромное спасибо! Все работает... Причем стрелы по одной делаются... )))


Ну вот и здорово ))) Не за что )

Posted: 2008-01-27 21:34:14
by Destruction
Отрезал от темы Unandled Exception..

Не нужно важные темы забивать кривыми скриптами.

Тем более, если делать ко всей прочей радости это без тэгов [ code ][ /code ]