Помогите. Почему перестал работать скрипт?
Сержант (527159)7 лет
Ranger
Сообщений: 230
Рег. 28.01.2017
26 июня 2017 13:57
Сообщение #1
Раньше всё работало. Сейчас же открывает меню с мешком и на этом останавливается.
может кто знает что случилось?

sub Bag()
   uo.exec('addobject sewingkit')
   while uo.targeting()
      wait(100)
   wend
   VAR Exit=0, LastTimer, cloth='0x1067'
   UO.AutoMenu('Leather','Miscellaneous');
   UO.AutoMenu('Miscellaneous','Bag');
   while Exit<>1
      UO.DeleteJournal()
      LastTimer=UO.Timer()
      uo.waittargettype(cloth)
      UO.UseObject('sewingkit')
      while NOT UO.InJournal("You put") AND NOT UO.InJournal("Tailoring failed")
         wait(100)
      wend
      If UO.InJournal("Tailoring failed") then
         repeat
            wait(100)
         until UO.Timer()>=LastTimer+100
      EndIf
   wend
end sub
Сержант (527159)7 лет
Ranger
Сообщений: 230
Рег. 28.01.2017
26 июня 2017 14:01
Сообщение #2
такой вариант тоже не срабатывает. останавливается в том же месте на меню с мешками.

sub Tail_Meshki()
   var SewKit = '0x0F9D'; sewing kit
   var Cloth = '0x1067';
   repeat
      
      UO.WaittargetType(Cloth)
      uo.usetype(SewKit)
      UO.WaitMenu('Leather','Miscellaneous','Miscellaneous','Bag')
      UO.DeleteJournal()
      repeat
         wait(500)
      until UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('destroyed')
   until uo.count(Cloth) < 5
end sub
Лейтенант (4548828)10 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
26 июня 2017 15:13
Сообщение #3
Всего скорее скилл просто подрос и стали доступны новые меню. Руками скрафть мешок и посмотри соответствуют ли менюшки тем что в скрипте.
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
26 июня 2017 22:17
Сообщение #4
Исправь вот так и попробуй

UO.WaitMenu('Miscellaneous','Bag')
Сержант (527159)7 лет
Ranger
Сообщений: 230
Рег. 28.01.2017
27 июня 2017 11:37
Сообщение #5
UO.AutoMenu('Leather','Miscellaneous');
UO.AutoMenu('Miscellaneous','Bag');
поставил паузу между этими строчками. всё заработало. странно, раньше работало без паузы отлично.
Лейтенант (4548828)10 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
27 июня 2017 14:31
Сообщение #6
Вот по этому я не люблю автоменю :) ХЗ где у него может что отвалиться.
UO.WaitMenu('Leather','Miscellaneous','Miscellaneous','Bag')
если его правильно поставить лучше работает.

ЗЫ а еще у тебя в скрипте с автоменюшкой нет команды UO.CancelMenu() которая "забывает" автоменю. Без неё вообще хз как у тебя оно работает :)
Сержант (527159)7 лет
Ranger
Сообщений: 230
Рег. 28.01.2017
15 июля 2017 13:41
Сообщение #7
Mirage,
Можно поподробнее, а то я в скриптах новичок.
В каком месте нужно вставлять UO.CancelMenu()
и как использовать правильно UO.WaitMenu
в чем отличие от автоменю?
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
16 июля 2017 10:12
Сообщение #8
UO.CancelMenu() ставится после завершения основной процедуры скрипта. В твоем случае перед end sub.
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
16 июля 2017 10:13
Сообщение #9
Каждое использование команды AutoMenu добавляет в специальный список очередной выбор в меню, после чего он остаётся активным всё время, до задания команды CancelMenu.
Использование команды WaitMenu включает ожидание определённой последовательности меню, причём ожидание прекращается по достижению последней пары в списке или возникновении несовпадения. Ожидание так же можно отменить командой CancelMenu. Список пар Prompt/Choice задаётся в параметрах. Допускается 1, 2 или 3 пары. Если вложеность меню глубже 3, попробуйте использовать команду AutoMenu.
Использование команды AutoMenu вообще более предпочтительно, так как более устойчиво к сбоям.
Сержант (527159)7 лет
Ranger
Сообщений: 230
Рег. 28.01.2017
17 июля 2017 08:36
Сообщение #10
Цитата: vovan
UO.CancelMenu() ставится после завершения основной процедуры скрипта. В твоем случае перед end sub.

Вопрос: может UO.CancelMenu() нужно ставить после изготовления каждого мешочка? Ведь он их делает пока кожа не кончится. Перед while Exit<>1 ?
Старший Сержант (960341)8 лет
Dragonstalker
Сообщений: 516
Рег. 9.03.2016
17 июля 2017 10:03
Сообщение #11
До цикла ставим automenu, выполняем работу, после цикла uo.cancelmenu().
Прапорщик (1724985)7 лет
Ranger
Сообщений: 275
Рег. 10.03.2017
17 июля 2017 10:06
Сообщение #12
Попробуй вот так. Должен заработать. В нем UO.CancelMenu() вообще не нужен.
sub Tail_Meshki()
   var SewKit = '0x0F9D'; sewing kit
   var Cloth = '0x1067';
   repeat
      
      UO.WaittargetType(Cloth)
      uo.usetype(SewKit)
      wait(200)
      UO.WaitMenu('Miscellaneous','Bag')
      UO.DeleteJournal()
      repeat
         wait(500)
      until UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('destroyed')
   until uo.count(Cloth) < 5
end sub
Последние посетители (0):

 
Сейчас: 19 апреля 2024 13:54