Yoko
http://forum.yoko.com.ua/

Помогите - у меня кривой скрипт.
http://forum.yoko.com.ua/viewtopic.php?f=20&t=13138
Page 1 of 1

Author:  GroundBeast [ 2008-01-27 15:40:05 ]
Post subject:  Нужна хэлп...

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

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

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 ошибки... (((

Author:  Kynep [ 2008-01-27 16:48:28 ]
Post subject:  Re: Нужна хэлп...

GroundBeast wrote:
Написал скрипт... И именно эта ошибка вылетает при прокрутке программы.... Причем, как ни странно, но ошибка вылетает в конце первого цикла, предварительно использовав макс. число онго из компонентов бля создания стрел... Причем, хотя в программе и говориться: брать и перетаскивать по одному шафту из пака в бэкпак, а потом юзать из бэкпака один шафт и кликать по перьям, но он все равно использует макс число, расходуя все перья и оставляя остаток шавтов... вот код:

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

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


Таксс что вот это?
Code:
For i = 0 to 500

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

Это раз, два, в команде МувИтем, нужно ставить кол-во 2 и обязателно контейнер получатель:
Code:
UO.MoveItem(тип_шафтов, '2', 'backpack')

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

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

Author:  GroundBeast [ 2008-01-27 17:40:50 ]
Post subject: 

Пасибо.... но вот почему Rum time error вылетает?

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

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

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

Author:  Kynep [ 2008-01-27 18:33:21 ]
Post subject: 

GroundBeast wrote:
Пасибо.... но вот почему Rum time error вылетает?

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

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

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


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

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

Author:  GroundBeast [ 2008-01-27 21:13:13 ]
Post subject: 

Огромное спасибо! Все работает... Причем стрелы по одной делаются... )))

Author:  Kynep [ 2008-01-27 21:22:43 ]
Post subject: 

GroundBeast wrote:
Огромное спасибо! Все работает... Причем стрелы по одной делаются... )))


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

Author:  Destruction [ 2008-01-27 21:34:14 ]
Post subject: 

Отрезал от темы Unandled Exception..

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

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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/