Помогите разобраться

Ask for help

Moderators: Murderator+, Murderator

Post Reply
xplorer
Posts: 2
Joined: 2011-05-12 00:22:13

Помогите разобраться

Post by xplorer »

Есть такой скрипт. Собственно говоря ничего сверхестественного - крафтит бутылочки. Но вылетает через 5 минут unhadled parser error, или что-то похожее. Взял скрипт на тинкер из Top Quality, работает без проблем, делаю вывод - я что-то делаю не так. Визуальное сравнение двух скриптов (точнее частей отвечающих за крафт) ничего не принесло. Хочется очень разобраться в чем проблема, поможете? :) Заранее спасибо)

Code: Select all

sub tinker()
 while (0 == 0)
   uo.automenu('Tinkering','Tools')
   uo.automenu('Tools','bottle')
   uo.usetype('0x1EBC')
   uo.deletejournal()
   while not uo.injournal("failed") and not uo.injournal("You put")
      wait(500)
   wend
   wait(500)
wend
end sub


Upd: Ммм.... Попробовал исправить на

Code: Select all

sub tinker()
uo.automenu('Tinkering','Tools')
uo.automenu('Tools','bottle')
 while (0 == 0)
   uo.usetype('0x1EBC')
   uo.deletejournal()
   while not uo.injournal("failed") and not uo.injournal("You put")
      wait(500)
   wend
   wait(500)
wend
end sub


Тестю)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите разобраться

Post by Mirage »

Так чуть получше будет.

Code: Select all

sub tinker()
var LastTimer
var msg ='You put|положили|fail|не удалось|You broke|сломали'
UO.CancelMenu() ; сбрасываем меню
uo.automenu('Tinkering','Tools')
uo.automenu('Tools','bottle') ; внимательно с названием бутылок. Регистр ВАЖЕН!!!
   while not UO.Dead()
      UO.DeleteJournal()
      LastTimer=UO.Timer()
      uo.usetype('0x1EBC')
      repeat
         wait( 300 )
      until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
   wend
UO.CancelMenu() ; если умерли - сбрасываем меню.
end sub
xplorer
Posts: 2
Joined: 2011-05-12 00:22:13

Re: Помогите разобраться

Post by xplorer »

Да, получше, но смысл был в ошибке. Я так понял что она вылетала из-за неправильного использования uo.automenu(). К сожалению достаточно долго пока что потестить свою догадку не удалось :)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите разобраться

Post by Mirage »

автоменю "запоминается" в инжекте, отменяется UO.CancelMenu().
Вейтменю одноразовая команда. В твоем первом скрипте если бы ты воспользовался
UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'bottle' )
скрипт бы работал правильно. А так получилось что в память наваливается одна и таже команда каждый раз.
Потому и вылезала ошибка.
+ еще не было выхода из цикла (если сообщение удача/неудача не проскакивало)
Post Reply